飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2083|回复: 1

第七课的一个小练习

[复制链接]

该用户从未签到

发表于 2005-12-30 21:29:00 | 显示全部楼层 |阅读模式
【破文标题】魅影传说网络电视算法
【破文作者】Iceman
破解工具】OD
【破解平台】XP sp2
【软件名称】魅影传说网络电视
【原版下载】http://www.skycn.com/soft/17952.html
【软件简介】最好用的网络电视,最精彩的电影、电视剧,增加自动更新功能,更新版本后不需再次下载。最好用的网络电视,高速网络电视,高速

在线电视,高速卫星电视,快速网络电视,.....『魅影传说』全情演绎!!
  下载后安装,安装完成后在开始菜单中或桌面运行“魅影传说”即可。

------------------------------------------------------------------------
【破解过程】
   

下午,在一个群中,看见有人拿这个软件的破解版,想换龙族的邀请。我以为是什么好软件,就下来试试,装完后×&……×&……,实在无

语。既然下载了,就试下能不能破解,看它的算法怎样。

查下壳。ASPack 2.12 -> Alexey Solodovnikov [Overlay],手脱。

载入OD,运行。浮点运算错误,中断下来。忽略所有异常,重新运行,程序还没读完,死机。。。

重启电脑,载入OD,运行,还是死机。后来试了很多次,还是一样。没办法,找群里人帮忙。飘云兄试了下,没事。

汗,怎么回来。GHOST恢复系统,重新试,还是死机,换了很多版本的OD,结果还是一样。郁闷死了。

最后,跑去睡觉,可就是睡不了。换了台电脑,重新试。。。。。终于正常了。。。。浪费了好多时间。。。


下个rtcMsgBox,拦截下来

算法部分

00449AC2     8D4D AC         lea ecx,dword ptr ss:[ebp-54]
00449AC5     51              push ecx
00449AC6     8D55 DC         lea edx,dword ptr ss:[ebp-24]
00449AC9     52              push edx                                         //下断点
00449ACA     FF15 34114000   call dword ptr ds:[<&MSVBVM60.__vbaStrVarVal>]   ; MSVBVM60.__vbaStrVarVal
00449AD0     50              push eax                                         ; //机器码进栈。我的机器码为 08619201
00449AD1     FF15 F0114000   call dword ptr ds:[<&MSVBVM60.#581>]             ; MSVBVM60.rtcR8ValFromBstr
00449AD7     DC05 A0214000   fadd qword ptr ds:[4021A0]                       ; //机器码加上 51201314.00000000
00449ADD     DD5D A4         fstp qword ptr ss:[ebp-5C]
00449AE0     DFE0            fstsw ax
00449AE2     A8 0D           test al,0D
00449AE4     0F85 F4030000   jnz unpacked.00449EDE
00449AEA     C745 9C 0500000>mov dword ptr ss:[ebp-64],5
00449AF1     8D45 9C         lea eax,dword ptr ss:[ebp-64]
00449AF4     50              push eax
00449AF5     8D4D 8C         lea ecx,dword ptr ss:[ebp-74]
00449AF8     51              push ecx
00449AF9     FF15 9C104000   call dword ptr ds:[<&MSVBVM60.#520>]             ; MSVBVM60.rtcTrimVar
00449AFF     8B55 D4         mov edx,dword ptr ss:[ebp-2C]                    ;
00449B02     52              push edx
00449B03     8D45 8C         lea eax,dword ptr ss:[ebp-74]
00449B06     50              push eax
00449B07     8D4D D8         lea ecx,dword ptr ss:[ebp-28]
00449B0A     51              push ecx
00449B0B     FF15 34114000   call dword ptr ds:[<&MSVBVM60.__vbaStrVarVal>]   ; MSVBVM60.__vbaStrVarVal
00449B11     50              push eax
00449B12     FF15 14114000   call dword ptr ds:[<&MSVBVM60.#713>]             ; MSVBVM60.rtcStrReverse
00449B18     8BD0            mov edx,eax                                      ; //机器码+51201314后的结果反向输出
00449B1A     8D4D D0         lea ecx,dword ptr ss:[ebp-30]
00449B1D     FF15 C8114000   call dword ptr ds:[<&MSVBVM60.__vbaStrMove>]     ; MSVBVM60.__vbaStrMove
00449B23     50              push eax
00449B24     FF15 C0104000   call dword ptr ds:[<&MSVBVM60.__vbaStrCmp>]      ; MSVBVM60.__vbaStrCmp
00449B2A     F7D8            neg eax
00449B2C     1BC0            sbb eax,eax
00449B2E     40              inc eax
00449B2F     F7D8            neg eax
00449B31     66:8985 40FFFFF>mov word ptr ss:[ebp-C0],ax


软件作者用了双精度浮点运算,可算法相当简单,双精度的机器码+51201314.00000000的结果取整,然后反向输出

我的注册码 08619201.00000000+51201314.00000000=59820515  --》51502895


第七课的作业,还没弄明白,先发这个。呵呵

------------------------------------------------------------------------
【破解总结】

这软件的算法,比我做过的CRACKME的,简单很多,不清楚作者为什么要用浮点运算。

破解这个软件的时间,比解决死机问题的时间,少得多。。。。。。
------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢!
PYG19周年生日快乐!

该用户从未签到

发表于 2006-1-1 08:36:30 | 显示全部楼层
学习一下了
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表