首页
社区
课程
招聘
[原创][第三回]CrackMe破解提交
发表于: 2009-9-9 13:50 4032

[原创][第三回]CrackMe破解提交

2009-9-9 13:50
4032
因为这个程序没有对字符串进行加密,所以很容易的就来得到了注册算法的位置:
0040186B    .  E8 28AE0000             CALL unpack2.0040C698
00401870    .  8B43 5C                 MOV EAX,DWORD PTR DS:[EBX+5C]
00401873    .  8B48 F8                 MOV ECX,DWORD PTR DS:[EAX-8]
00401876    .  85C9                    TEST ECX,ECX
00401878       75 11                   JNZ SHORT unpack2.0040188B
0040187A    .  51                      PUSH ECX                                ; /Arg3 = 0012FFB0
0040187B    .  51                      PUSH ECX                                ; |Arg2 = 0012FFB0
0040187C    .  68 D4604100             PUSH unpack2.004160D4                   ; |用户名不能为空!
00401881    .  E8 B6CD0000             CALL unpack2.0040E63C                   ; \unpack2.0040E63C
00401886    .  E9 BB030000             JMP unpack2.00401C46
0040188B    >  8B53 60                 MOV EDX,DWORD PTR DS:[EBX+60]
0040188E    .  8B72 F8                 MOV ESI,DWORD PTR DS:[EDX-8]
00401891    .  85F6                    TEST ESI,ESI
00401893       75 11                   JNZ SHORT unpack2.004018A6
00401895    .  56                      PUSH ESI                                ; /Arg3 = FFFFFFFF
00401896    .  56                      PUSH ESI                                ; |Arg2 = FFFFFFFF
00401897    .  68 C4604100             PUSH unpack2.004160C4                   ; |密码不能为空!
0040189C    .  E8 9BCD0000             CALL unpack2.0040E63C                   ; \unpack2.0040E63C
-----
00401878      /75 11                   JNZ SHORT unpack2.0040188B
对是否输入name 的判断
00401893      /75 11                   JNZ SHORT unpack2.004018A6
对 numbers 的判断

0040189C    .  E8 9BCD0000             CALL unpack2.0040E63C                   ; \unpack2.0040E63C
这个是对输入的内容的判断,接下来的跳改为
004018A1    . /E9 A0030000             JMP unpack2.00401C46
就可以通过这一次的校验了,接下来一直走,因为是爆破,中间的一些分析就没在意

00401AAD       83EE 02                 SUB ESI,2
00401AB0       0F88 08010000           JS CrackMe.00401BBE                     ;  不能让他跳
他通过标志位判断一些注册信息的情况,可以 nop 它

接下来的这个CALL 是判断时候好像是对内存的分配的,nop 它
00401ACB    .  E8 F07D0000             CALL CrackMe.004098C0

当来到这里是
00401B57      /75 65                   JNZ SHORT CrackMe.00401BBE              ;  不能让他跳

当来到这里:
00401BBC      /74 1C                   JE SHORT CrackMe.00401BDA               ;  必须跳

注册信息:

x敏m
123456789

然后就可以了,因为是新手,很多地方没弄明白,只是简单的改改,失误的地方很多。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
2
时长:110Min
得分:39.81
2009-9-11 12:03
0
游客
登录 | 注册 方可回帖
返回
//