打开TRW2000,下断点bpx hmemcpy,点确定,被拦下。
Bc* 清断点,pmodule 回程序领空,然后按F12六次(七次就是出现注册失败框了),按F10来到:
:00405F43 8B44243C mov eax, dword ptr [esp+3C]
:00405F47 8B40F8 mov eax, dword ptr [eax-08]
:00405F4A 83F814 cmp eax, 00000014 ;注册码是否为20位
:00405F4D 7413 je 00405F62 ;不是就完,是就跳
:00405F4F 6A00 push 00000000
:00405F51 6A00 push 00000000
:00405F53 68C8E74700 push 0047E7C8
:00405F58 E8B9B20400 call 00451216 ;出现”对不起,注册号码不正确,您不是合法的注册用户!”
:00405F5D E983000000 jmp 00405FE5
:00405F62 56 push esi
:00405F63 57 push edi
:00405F64 33F6 xor esi, esi
:00405F66 8D7C2448 lea edi, dword ptr [esp+48]
:00405F6A 6A01 push 00000001
:00405F6C 8D4C2410 lea ecx, dword ptr [esp+10]
:00405F70 56 push esi
:00405F71 51 push ecx
:00405F72 8D4C2450 lea ecx, dword ptr [esp+50]
:00405F76 E847CF0300 call 00442EC2
:00405F7B 8B00 mov eax, dword ptr [eax]
:00405F7D 50 push eax
:00405F7E E8A2030300 call 00436325
:00405F83 83C404 add esp, 00000004
:00405F86 8D4C240C lea ecx, dword ptr [esp+0C]
:00405F8A 8907 mov dword ptr [edi], eax
:00405F8C E86CF50300 call 004454FD
:00405F91 46 inc esi
:00405F92 83C704 add edi, 00000004
:00405F95 83FE14 cmp esi, 00000014
:00405F98 7CD0 jl 00405F6A ;20次循环
:00405F9A 8D4C2410 lea ecx, dword ptr [esp+10]
:00405F9E E8ED5B0000 call 0040BB90 ;关键call,跟进去(见下)
:00405FA3 5F pop edi
:00405FA4 5E pop esi
:00405FA5 84C0 test al, al ;当al不等于零时,下面就跳,即成功
:00405FA7 6A00 push 00000000
:00405FA9 6A00 push 00000000
:00405FAB 7507 jne 00405FB ;关键跳,跳过去就成功
:00405FAD 68C8E74700 push 0047E7C8 ;出现”对不起,注册号码不正确,您不是合法的注册用户!”
:00405FB2 EB1C jmp 00405FD0 ;到此处就完!
:00405FB4 68A8E74700 push 0047E7A8
:00405FB9 E858B20400 call 00451216 ;出现”恭喜,您已经是合法的注册用户!”
:00405FBE 8D4C2408 lea ecx, dword ptr [esp+08]
:00405FC2 E8495D0000 call 0040BD10
:00405FC7 6A00 push 00000000
:00405FC9 6A00 push 00000000
:00405FCB 687CE74700 push 0047E77C ;出现”您需要退出后重新运行疯狂单词使注册生效!”
:00405FD0 E841B20400 call 00451216 ;调出提示框
======================================================================================
上面的:00405F9E E8ED5B0000 call 0040BB90 到这里:
:0040BB90 53 push ebx
:0040BB91 56 push esi
:0040BB92 8BF1 mov esi, ecx
:0040BB94 8D4608 lea eax, dword ptr [esi+08]
:0040BB97 8D4E34 lea ecx, dword ptr [esi+34]
:0040BB9A 50 push eax
:0040BB9B 51 push ecx
:0040BB9C 8BCE mov ecx, esi
:0040BB9E E88DFDFFFF call 0040B930 ;计算比较注册码,
:0040BBA3 8BCE mov ecx, esi
:0040BBA5 8AD8 mov bl, al ;将比较结果al放入bl
:0040BBA7 E864010000 call 0040BD10 ;此call好像是比较注册信息中有无opq98@263.net
;http://iceworld.126.com/等信息,防破解吧。
:0040BBAC 8AC3 mov al, bl ;将比较结果bl放回al
:0040BBAE 5E pop esi
:0040BBAF 5B pop ebx
:0040BBB0 C3 ret
==============================================
当然只在注册的地方改改跳转是没有用的,这软件在有限制的地方都计算比较注册码,本人又
无力算出注册码,革命尚未成功,还得继续努力……
比较了几个有限制的地方,发现都有 test al, al jne 语句 ,只要al不为零即可,
而且在test al, al前都有一个call,这些call的内容与上面的call 0040BB90差不多,看上面的
call: 只要最后的mov a1 ,bl 送入al的不为零即可,而从上面的计算bl肯定为零(除非瞎猫
碰到死耗子,注册码给蒙对了,我可没这么好的运气),分析:将有限制处的mov a1 ,bl 语句nop掉。
调起UltraEdit-32,查8BCE8AD8有八处,分别如下:
8AD8E8640100008AC3改为—–>8AD8E8640100009090
8AD8E8340100008AC3改为—–>8AD8E8340100009090
8AD8E8040100008AC3改为—–>8AD8E8040100009090
8AD8E8D40000008AC3改为—–>8AD8E8D40000009090
8AD8E8A40000008AC3改为—–>8AD8E8A40000009090
8AD8E8740000008AC3改为—–>8AD8E8740000009090
8AD8E8440000008AC3改为—–>8AD8E8440000009090
8AD8E8140000008AC3改为—–>8AD8E8140000009090
运行,哈!限制全没了。
爆破完成!
疯狂单词 爆破方法
打开TRW2000,下断点bpx hmemcpy,点确定,被拦下。Bc* 清断点,pmodule 回程序领空,…
本文来自网络,不代表加密狗技术网立场,转载请注明出处:http://www.crackgou.com/pojie/99.html