JoyChou 发表于 2013-8-5 23:41

某个比赛的CM

//Author: JoyChou
//Date : 2013年8月5日 23:39:56

觉得这CM东西比较多,所以分享下自己的经验。
VC sdk写的GUI

值得学习的地方:
1、利用CRC内存校验,达到int3断点检测。
2、利用windows SDK的WM_INITDIALOG消息,进行CRC .text断校验,效果比较好


简单分析:
消息循环
00401170    8B4424 08       mov eax,dword ptr ss:
00401174    83E8 10         sub eax,10                               ; // WM_CLOSE :0X10
00401177    74 4B         je short CrackMe3.004011C4
00401179    2D 00010000   sub eax,100                              ; // WM_INITDIALOG: 0X110
0040117E    74 2A         je short CrackMe3.004011AA
00401180    48            dec eax                                  ; // WM_COMMAND : 0X111
00401181    75 4E         jnz short CrackMe3.004011D1



nop掉WM_INITDIALOG下面的je


然后就可以搜索字符串,在字符串处下断,进行算法,算法口算即可。
0x5789 ^ 0x1234转十进制= 17853


总结:
WM_INITDIALOG:        //0x110
WM_COMMAND:    //0x111
WM_CLOSE             // 0X10
最后从main函数一步一步开始分析,少用字符串插件,
就像这个程序逆出源码是完全没有问题的。

常规windows SDK解法:
直接搜索字符串,在字符串处下断,因为一般字符串都会在WM_COMMAND消息里面,而且是响应的按钮哦,亲


附件:

L4Nce 发表于 2013-8-5 23:59

jc真是努力呀

alexjeniks 发表于 2013-8-6 00:39

存盘把玩一下,谢谢大牛。

1354669803 发表于 2013-8-6 01:34

膜拜JC师傅

Cari丶 发表于 2013-8-6 02:08

虚拟机测试

silent_grief 发表于 2013-8-6 04:06

大牛的简介总是特别独到。

txke 发表于 2013-8-6 08:05

膜拜JC大牛,研究一下

qaz789a4 发表于 2013-8-6 10:01

JC大牛威武

我是用户 发表于 2013-8-6 11:23

L4Nce 发表于 2013-8-5 23:59 static/image/common/back.gif
jc真是努力呀

你潜水潜的够深的{:17_1061:}

L4Nce 发表于 2013-8-6 15:10

我是用户 发表于 2013-8-6 11:23 static/image/common/back.gif
你潜水潜的够深的

用户大牛,漫漫长夜无法入睡,你懂的
页: [1] 2
查看完整版本: 某个比赛的CM