本帖最后由 cqr2287 于 2016-10-15 14:26 编辑
最近闲的无聊,在家不能录视频,又有家长看管着,玩cm写帖子能增加技术含量。
160cm是从看雪老师的论坛上下的。我也玩玩。
现在分析001
(求救,分割线怎么用)
软件有两个验证。如下图
载入od,目测像个Delphi程序,懒得查壳,下按钮事件不方便,这软好多按钮。
先干第一个验证。第一个提示sorry,那么字符串搜索sorry。
[Asm] 纯文本查看 复制代码 0042FA4D A1 6C174300 mov eax,dword ptr ds:[0x43176C]
0042FA52 E8 D96EFDFF call Acid_bur.00406930
0042FA57 83F8 04 cmp eax,0x4
0042FA5A 7D 1D jge short Acid_bur.0042FA79
0042FA5C 6A 00 push 0x0
0042FA5E B9 74FB4200 mov ecx,Acid_bur.0042FB74 ; Try Again!
0042FA63 BA 80FB4200 mov edx,Acid_bur.0042FB80 ; Sorry , The serial is incorect !
0042FA68 A1 480A4300 mov eax,dword ptr ds:[0x430A48]
0042FA6D 8B00 mov eax,dword ptr ds:[eax]
try again是下一个验证的提示,所以这个不对。找下个字符串
[Asm] 纯文本查看 复制代码 0042FB07 B9 CCFB4200 mov ecx,Acid_bur.0042FBCC ; Congratz !!
0042FB0C BA D8FB4200 mov edx,Acid_bur.0042FBD8 ; Good job dude =)
0042FB11 A1 480A4300 mov eax,dword ptr ds:[0x430A48]
0042FB16 8B00 mov eax,dword ptr ds:[eax]
0042FB18 E8 53A6FFFF call Acid_bur.0042A170
0042FB1D EB 18 jmp short Acid_bur.0042FB37
0042FB1F 6A 00 push 0x0
0042FB21 B9 74FB4200 mov ecx,Acid_bur.0042FB74 ; Try Again!
0042FB26 BA 80FB4200 mov edx,Acid_bur.0042FB80 ; Sorry , The serial is incorect !
这个应该是了。因为第一个验证肯定不会调用第二个验证的失败提示,所以jge一定会跳。我们在jge后面下段
f9运行,输入假的注册码。
断下后,f8跟踪之。
此处算出真马。这个便是第一个验证的真马。
继续跟踪。
[Asm] 纯文本查看 复制代码 0042FB03 /75 1A jnz short Acid_bur.0042FB1F
0042FB05 |6A 00 push 0x0
0042FB07 |B9 CCFB4200 mov ecx,Acid_bur.0042FBCC ; Congratz !!
0042FB0C |BA D8FB4200 mov edx,Acid_bur.0042FBD8 ; Good job dude =)
0042FB11 |A1 480A4300 mov eax,dword ptr ds:[0x430A48]
0042FB16 |8B00 mov eax,dword ptr ds:[eax]
0042FB18 |E8 53A6FFFF call Acid_bur.0042A170
0042FB1D |EB 18 jmp short Acid_bur.0042FB37
0042FB1F \6A 00 push 0x0
0042FB21 B9 74FB4200 mov ecx,Acid_bur.0042FB74 ; Try Again!
0042FB26 BA 80FB4200 mov edx,Acid_bur.0042FB80 ; Sorry , The serial is incorect !
0042FB2B A1 480A4300 mov eax,dword ptr ds:[0x430A48]
0042FB30 8B00 mov eax,dword ptr ds:[eax]
0042FB32 E8 39A6FFFF call Acid_bur.0042A170
0042FB37 33C0 xor eax,eax
这个jnz跳过了成功。把jnz Nop掉即可爆破。
下面搞第二个验证
上面已经分析过,try again是第二个验证的信息内容。所以向上回溯
[Asm] 纯文本查看 复制代码 0042F9FE E8 55B0FEFF call Acid_bur.0041AA58
在push地下call下断点。
运行跟踪之。
what???那就在jge下断点。
一样没用。去找别的try again看看。
有2个。在第一个上面下端看看。
[Asm] 纯文本查看 复制代码 0042F4D0 E8 2745FDFF call Acid_bur.004039FC
0042F4D5 75 1A jnz short Acid_bur.0042F4F1
0042F4D7 6A 00 push 0x0
0042F4D9 B9 64F54200 mov ecx,Acid_bur.0042F564 ; Congratz!
0042F4DE BA 70F54200 mov edx,Acid_bur.0042F570 ; God Job dude !! =)
0042F4E3 A1 480A4300 mov eax,dword ptr ds:[0x430A48]
0042F4E8 8B00 mov eax,dword ptr ds:[eax]
0042F4EA E8 81ACFFFF call Acid_bur.0042A170
0042F4EF EB 18 jmp short Acid_bur.0042F509
0042F4F1 6A 00 push 0x0
0042F4F3 B9 84F54200 mov ecx,Acid_bur.0042F584 ; Failed!
0042F4F8 BA 8CF54200 mov edx,Acid_bur.0042F58C ; Try Again!!
0042F4FD A1 480A4300 mov eax,dword ptr ds:[0x430A48]
0042F502 8B00 mov eax,dword ptr ds:[eax]
0042F504 E8 67ACFFFF call Acid_bur.0042A170
0042F509 33C0 xor eax,eax
0042F50B 5A pop edx ; 0012FA2C
在第一个上面断下了。把jnz改成nop就成功爆破了。
想要追码,还需要向上回溯。
[Asm] 纯文本查看 复制代码 0042F46D C3 retn
0042F46E 8BC0 mov eax,eax
0042F470 55 push ebp
0042F471 8BEC mov ebp,esp
[Asm] 纯文本查看 复制代码 0042F46D C3 retn
0042F46E 8BC0 mov eax,eax
0042F470 55 push ebp
0042F471 8BEC mov ebp,esp
明白了吗?
试试。
啊哈,我英语不错滴。
好啦,吃早饭,各位88
|