【吾爱破解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
004016C0|.E8 96FEFFFF call CrackMe3.0040155B此call 把 8 ,0 ,5 ,0和用户名连接起来 {:1_918:}这样说才对 good job! 最后成绩:16*2=32分
评委评价:keygen成功
谢谢参与,请继续加油。
页:
[1]