a070458 发表于 2014-10-23 22:43

【吾爱破解2014CrackMe大赛】【第三组】

本帖最后由 ximo 于 2014-10-25 23:00 编辑

CM1对码表混乱.混乱.混乱.
CM2不是E就是F   把检测代码都逆出来了都不懂怎么弄注册机果然是我的数学水平不够么{:1_906:}
被CM1 CM2虐后终于找到软柿子了~{:1_923:}



随便输入用户名 密码 保存,发现退出~
生产ny.key打开一目了然
载入OD F9发现软件重新打开自己~
粗略看看貌似找自身进程


以下跳转全部要跳

0040108C|. /0F85 05000000 jnz CrackMe3.00401097
00402828|. /0F85 3F000000 jnz CrackMe3.0040286D
00402871|. /0F85 C6000000 jnz CrackMe3.0040293D


0040294B|. /79 0D         jns short CrackMe3.0040295A
00402A60|. /0F84 47000000 je CrackMe3.00402AAD
00402AF7|. /0F85 0F000000 jnz CrackMe3.00402B0C







接着就到关键call 了004015B2
细心一根马上发现

下面简单分析以下

00401693|.E8 60020000   call CrackMe3.004018F8                  ;通过后密码 每2位变成16进制数值保存

我输入的密码是12345
就变成



004016B3|.FF75 FC       push                                                 //密码的hex
004016B6|.68 FAA24800   push CrackMe3.0048A2FA                        //一个字节集   

004016BB|.B9 02000000   mov ecx,0x2
004016C0|.E8 96FEFFFF   call CrackMe3.0040155B                     //经过此call 连接在一起

然后就是对这个字节集求MD5

然后就是用MD5对密码的hex进行des解密    跟进去发现调用易语言支持库代码 所以很容易发现


然后就是调用
004017A2    E8 891D0000   call CrackMe3.00403530                  ;
解压数据了(也是调用易语言支持库 ,所以很容易发现)
接着就是比较数据是否和用户名相等


004017FE|.50            push eax
004017FF|.FF75 F0       push
00401802|.E8 4BFAFFFF   call CrackMe3.00401252
00401807|.83C4 08       add esp,0x8
0040180A|.83F8 00       cmp eax,0x0
0040180D|.B8 00000000   mov eax,0x0
00401812|.0F94C0      sete al




源码如截图

附上keygen





a070458 发表于 2014-10-23 22:45

004016C0|.E8 96FEFFFF   call CrackMe3.0040155B此call 把 8 ,0 ,5 ,0和用户名连接起来 {:1_918:}这样说才对

L4Nce 发表于 2014-10-23 23:20

good job!

ximo 发表于 2014-10-25 22:59

最后成绩:16*2=32分
评委评价:keygen成功
谢谢参与,请继续加油。
页: [1]
查看完整版本: 【吾爱破解2014CrackMe大赛】【第三组】