Nx3sdHy 发表于 2014-10-24 11:07

crackme破解笔记(4)

本帖最后由 Nx3sdHy 于 2014-10-24 11:13 编辑

说明:

此文为逆向cm的一个笔记,记录一路的成长,因为我本身就是一个新手,所以笔记会从一个新手的角度出发,所以适合和我一样刚接触逆向的新手学习。

由于本人工作原因及水平有限,有可能每天更新,也有可能每周更新,每月,每年。。 请见谅。

笔记中有任何错误的地方也请大家多多指正!

笔记中用到的cm大部分来自适合新手逆向的160个cm。

这个cm好像也是咱们论坛第二期的cm,好了,进入正题。。
首先peid查壳,无壳,Delphi的程序,那我们打开cm来看一看是什么样子的:


我们输入完用户名点击注册,诶,尼玛的注册呢?没有注册按钮,什么按钮都没有,到这我们来猜想一下,它是如何来验证的呢?根据cm的文本提示,我们知道,当用户名和注册码正确的时候,下面会出现一张朱菌的照片,那应该是利用时间周期来控制检查注册码的?还是当我们点击图片那个框时检查注册码?还是我们的光标离开注册码输入框再检查的?

让我们的小汽车(dede)登场吧,dede是一个针对于Delphi和Mfc程序的反编译工具,通过这个工具我们可以查看程序的一些模块和过程,像我一样的新手可能不知道模块和过程的意思,这里以我本人的理解来解释一下:
模块:程序中控制输入,输出等一些执行操作功能或调用进程的地方。
过程:程序执行的一些事件或触发某个事件的过程。

ok,我们用小汽车载入程序:


载入成功后会提示转储成功,之后还会弹出两个英文的对话框,我们都点击NO(否),注意,dede这个工具是不能分析带壳程序的,若遇到带壳的程序,我们需要脱壳后再载入。


我们可以看到模块有n多,这样找起来很麻烦,而检查注册码应该是我们触发了某些事件或时间周期来控制的,我们直接来到过程:


这里我们可以看到一个chkcode事件,为什么我们要看chkcode事件呢,chk我们字面可以理解为check检查,code就是我们输入的数据,哈哈,所以说有些英语基础对于学习来说还是好的!我们右键chkcode--复制rav地址到剪切板,这样我们就复制了检查注册码这个地方的的地址。
我们用od载入程序来到这个地址:


诶,上面好像就看到了一些可疑的字符串,看来没找错,我们在段首下个断点,运行程序,输入注册名和用户码,这时程序断了下来,我们f8单步走,遇到向上的跳转就在下面f4跳过,在途中看到了很多可以的字符串,我们都记下来,没多久在00457C96处看到了我们输入的用户名,看来离注册码不远了!


我们继续单步,没多久我们就看到了一串非常像注册码的字符串,因为他看起来又复杂又长,又和我们段首上面的字符串有联系,我们记录下来。


继续f8继续记录,没多久程序出call运行了起来,我们把上面记录的字符串输入进注册码,成功!


总结:
dede的对Delphi反汇编简单使用。
对无按钮事件注册的检查简单猜想。
枯燥的f8单步




笔记中的任何问题可以私聊我交流,欢迎大家与我交流。

方白 发表于 2014-10-24 11:16

小丸子 发表于 2014-10-24 11:35

{:6_221:}为什么我输入真码 他就是不出现图片呢

Nx3sdHy 发表于 2014-10-24 11:38

小丸子 发表于 2014-10-24 11:35
为什么我输入真码 他就是不出现图片呢

这个事情我也遇到了,一顿乱点等一会就好了哈哈!不知道是什么原因。

微笑的耗子 发表于 2014-10-24 13:09

感谢分享!!

bigeorry 发表于 2014-10-24 13:21

感谢楼主分享经验

王尼玛 发表于 2014-10-24 14:00

感谢分享,

起凡第一华佗 发表于 2014-10-24 14:38

都是大牛啊

zx2cwf 发表于 2014-10-24 20:26

写的相当不错赞一个

81824901 发表于 2018-2-16 14:17

写的相当不错赞一个
页: [1] 2
查看完整版本: crackme逆向笔记(4)