|
     
- 威望
- 1520
- 金钱
- 0
- 在线时间
- 847 小时
- 最后登录
- 2010-4-14

|
32楼
发表于 2009-6-16 10:49
| 只看该作者
本帖最后由 东方阿姨 于 2009-6-16 10:51 编辑
密码:UnpackMe
脱壳不用说直接单步就好了.
004013A0 . 51 PUSH ECX //断点
004013A1 . 53 PUSH EBX
004013A2 . 56 PUSH ESI
004013A3 . 57 PUSH EDI
004013A4 . 8BF1 MOV ESI,ECX
004013A6 . 6A 01 PUSH 1
004013A8 . E8 31860100 CALL c.004199DE
004013AD . 8B46 5C MOV EAX,DWORD PTR DS:[ESI+5C]
004013B0 . BB 01000000 MOV EBX,1
004013B5 . 8378 F8 08 CMP DWORD PTR DS:[EAX-8],8 //判断输入的注册码是否为8位.
004013B9 . 74 02 JE SHORT c.004013BD //如果是则跳
004013BB . 33DB XOR EBX,EBX
004013BD > 33FF XOR EDI,EDI //edi清零
004013BF > 85DB TEST EBX,EBX
004013C1 . 74 07 JE SHORT c.004013CA
004013C3 . B8 08000000 MOV EAX,8
004013C8 . EB 06 JMP SHORT c.004013D0
004013CA > 8B4E 5C MOV ECX,DWORD PTR DS:[ESI+5C]
004013CD . 8B41 F8 MOV EAX,DWORD PTR DS:[ECX-8]
004013D0 > 3BF8 CMP EDI,EAX //判断比较了好多位.
004013D2 . 7D 1F JGE SHORT c.004013F3
004013D4 . 8B56 5C MOV EDX,DWORD PTR DS:[ESI+5C]
004013D7 . 57 PUSH EDI
004013D8 . 8A0417 MOV AL,BYTE PTR DS:[EDI+EDX] //取第edi位输入的注册码到al.
004013DB . 884424 10 MOV BYTE PTR SS:[ESP+10],AL
004013DF . 8B4C24 10 MOV ECX,DWORD PTR SS:[ESP+10]
004013E3 . 51 PUSH ECX
004013E4 . E8 97FFFFFF CALL c.00401380 //子程序功能是取输入的注册码第edi位与真正的注册码相应位数比较.如果相等返回值在eax里为1.否则eax为零
004013E9 . 83C4 08 ADD ESP,8
004013EC . 85C0 TEST EAX,EAX
004013EE . 74 1F JE SHORT c.0040140F //判断eax是否为零不为零继续下一位比较
004013F0 . 47 INC EDI //edi加一准备比较下一位.
004013F1 .^ EB CC JMP SHORT c.004013BF //回跳比较下一位.
004013F3 > 85DB TEST EBX,EBX
004013F5 . 74 18 JE SHORT c.0040140F
004013F7 . 6A 00 PUSH 0
004013F9 . 68 F8B04200 PUSH c.0042B0F8 ; OK
004013FE . 68 E0B04200 PUSH c.0042B0E0 ; 恭喜! 你所填的即为KEY!
00401403 . 8BCE MOV ECX,ESI
00401405 . E8 787E0100 CALL c.00419282
0040140A . 5F POP EDI
0040140B . 5E POP ESI
0040140C . 5B POP EBX
0040140D . 59 POP ECX
0040140E . C3 RETN
0040140F > 6A 00 PUSH 0
00401411 . 68 D8B04200 PUSH c.0042B0D8 ; ERROR
00401416 . 68 CCB04200 PUSH c.0042B0CC ; KEY不正确!
0040141B . 8BCE MOV ECX,ESI
0040141D . E8 607E0100 CALL c.00419282
00401422 . 5F POP EDI
00401423 . 5E POP ESI
00401424 . 5B POP EBX
00401425 . 59 POP ECX
00401426 . C3 RETN
=======================================================================
00401380 /$ 8B4424 08 MOV EAX,DWORD PTR SS:[ESP+8]
00401384 |. 8A5424 04 MOV DL,BYTE PTR SS:[ESP+4]
00401388 |. 8A88 C0B04200 MOV CL,BYTE PTR DS:[EAX+42B0C0]
0040138E |. 33C0 XOR EAX,EAX
00401390 |. 80F1 44 XOR CL,44
00401393 |. FEC9 DEC CL
00401395 |. 3AD1 CMP DL,CL //上面子程序关键之处.DL里保存的是一位输入的注册码,CL里保存的是一位真正的注册码.
00401397 |. 0F94C0 SETE AL
0040139A \. C3 RETN |
-
-
13_C.rar
(172.47 KB)
|