byh3025 发表于 2017-3-18 13:08

调试一个CM的记录

本帖最后由 byh3025 于 2017-3-18 13:12 编辑




昨天晚上见有人发了一个CM,想拿它练练手,先打开看看是什么东东,怎么回事?直接弹错。

我可什么也没输入啊,况且也没看到有地方输入注册码,这时我看到文件夹内有一个KEY,莫非是在这里面输入?姑且试试吧,打开,然后在里面输入假码

好了,载入OD,然后去401000处,看样子像易语言,那我们就试试秒杀易语言大法吧

查找命令,输入TEST EDX,3

好,找到了,下断吧,F9运行,运行几次后我们就看到了真假码对比

下面我们来爆破它,CTRL+F9到段尾,记住返回值是0XFFFFFFFF,等一下我们有用

F8出CALL,这是什么鬼?没关系,我们右键,分析,从模块中删除分析就好了,这时我们看到一条指令:SETE AL它受上面CMP的影响,相等为真,EAX=1,反之为假,EAX=0

第一,我们可以把上面的MOV EAX,0改为MOV EAX,1,再把SETE ALNOP掉,就实现了爆破,如下图所示

第二,我们已经知道此时EAX=0XFFFFFFFF,那么我们就可以把CMP EAX,0X0 改为CMP EAX,0XFFFFFFFF,如下图所示,也实现了爆破的目的

当然,我们还可以用赋值法给EAX赋值为0,效果都是一样的,下面我们主要讲一下另类的爆破,由于搜索不到字符串,昨天看了一个调试易语言 的教程,就借用他的方法,下面看图吧,载入OD然后F9运行,直接弹错,别管它,F12暂停,查看-窗口,找到弹错的提示,右键-在CLASSPROC上设置消息断点,来到如下界面,点确定

下好断以后,重新加载程序,F9几次后我们在堆栈窗口看到了错误提示的内容,

这时我们取消断点,ALT+F9返回到程序领空,就是弹错的地方

单步F8出CALL,我们一眼就看到了一个JNZ能跳过它,那就改为JMP吧,改好后F9运行,我们发现成功了

由于是小白,当中难免会有许多不足之处,望路过的大年多多指教,其实我刚开始是相从正确提示入手的,由于昨天晚上弄得太晚了,头昏脑胀的,成功一次后忘记怎么弄的了,结果到现在也弄不好了。还有一个很诡异的地方,无论是错误提示返回还是正确提示返回,结果都是在一个地方,所以如果保存的话应该是不会成功的

0047F9F5   /75 16         jnz short 测试加密.0047FA0D
0047F9F7|. |FF75 10       push
0047F9FA|. |8B06          mov eax,dword ptr ds:               ;测试加密.004B402C
0047F9FC|. |8BCE          mov ecx,esi
0047F9FE|. |FF75 0C       push
0047FA01|. |FF75 08       push
0047FA04|. |FF90 A0000000 call dword ptr ds:…………………………………正确提示框
0047FA0A|. |8945 FC       mov ,eax
0047FA0D|> \8B45 FC       mov eax,
0047FA10|.5E            pop esi
0047FA11|.C9            leave
0047FA12\.C2 0C00       retn 0xC



0047F9F5      75 16         jnz short 测试加密.0047FA0D
0047F9F7|.FF75 10       push
0047F9FA|.8B06          mov eax,dword ptr ds:               ;测试加密.004B3820
0047F9FC|.8BCE          mov ecx,esi
0047F9FE|.FF75 0C       push
0047FA01|.FF75 08       push
0047FA04|.FF90 A0000000 call dword ptr ds:…………………………………………错误提示框
0047FA0A|.8945 FC       mov ,eax
0047FA0D|>8B45 FC       mov eax,
0047FA10|.5E            pop esi
0047FA11|.C9            leave
0047FA12\.C2 0C00       retn 0xC




byh3025 发表于 2017-3-18 14:20

我的图怎么没有了啊,第一次发帖,可能哪里没弄好,编辑时是有的,看看咋回事,回来再补吧

byh3025 发表于 2017-4-25 10:20

本帖最后由 byh3025 于 2017-4-25 10:23 编辑

图片没有了本来想弄下的,结果没弄好

ladybe 发表于 2017-4-28 14:21

没图片结合看起来云里雾里的呀

panwanpeng 发表于 2017-6-18 17:06

{:6_221:}看了你的教程,感觉你好厉害

名字取不对 发表于 2017-7-19 12:42

看了你的教程感觉像是看戏{:5_118:}

别管我了行 发表于 2022-4-20 04:33

haier8917 发表于 2022-12-12 22:04

好久不见,呵呵

byh3025 发表于 2022-12-13 10:51

haier8917 发表于 2022-12-12 22:04
好久不见,呵呵

大佬你好,昨天又看到了你的教程

曾经沧海 发表于 2023-1-6 13:14

感谢分享,正好需要,,,,
页: [1] 2
查看完整版本: 调试一个CM的记录