一米丶阳光 发表于 2019-9-2 23:55

160CrackMe之001(Acid Burn)

此前一直从事iOS方面的逆向工作,有强烈的兴趣了解一下Windows逆向,所以就从这160个CM开始。
今天要分享的是160个CM第一个Acid burn,也算是对第一次Windows逆向分析的总结。话不多说,下面开始正文。

### 0x1 环境与工具
* 吾爱破解虚拟机2.0
* PEiD、吾爱破解版OD

### 0x2 查壳
* 注:作为CM的第一个程序,有壳的概率很小,但是逆向分析前查壳是个好习惯。

### 0x3 去除NAG窗口
* 双击程序启动会有如下的NAG窗口

* 用OD加载程序,然后F9使程序进入运行状态,程序会显示NAG窗口,然后F12暂停程序运行,Alt + F9使程序重回运行态,点击NAG窗口的【确定】按钮,程序将断下,并回到用户程序空间。
* 发现这里并没有爆破常用的点(跳转),因此沿着堆栈继续回溯。
0x42A1AE --> 0x42A170 --> 0x42F79C --> 0x42F784 --> 0x425643
* 回溯到0x425643时,可以在0x42562F处找到爆破点,修改je为jmp,NAG窗口成功去掉。

### 0x4 注册算法
* 随意输入用户名和序列号,点击【check】按钮,弹出错误提示对话框。采用去除NAG窗口的方式使程序断在用户程序空间。我们发现断点断在了NAG窗口相同的位置,所以我们推测,断下来的位置是对MessageBox的封装函数,回溯堆栈到上层。
0x42A1AE --> 0x42A170 --> 0x42FB32

* 回溯到0x42FB32时,我们可以在0x42FB03处找到关键跳转,那么我们推测0x42FAFE处为序列号验证函数。

* 我们在0x42FAFE处下断点,重新触发验证流程,我们在寄存器EAX和EDX中看到了两个可疑的字符串,EDX是我们输入的序列号,EAX我们猜测就是我们要找的序列号。

* 接下来我们重点关注EAX的来源,EAX来源于,上翻代码,看到0x42FAE5的调用,我们看到0x42FADD的传参与有关,那么我们在0x42FAE5下断点,然后在数据窗口监视的内存,F8观察数据窗口
* 至此我们确定了0x42FAE5为生成序列号的算法函数,但是这只是个拼装算法,观察堆栈,关键数据已经在堆栈中,我们查看数据来源于,继续上翻代码,在0x42FACD处看到了的传参,在0x42FACD处下断点调试。

* 经过调试,我们确定了0x42FACD处即为注册算法的函数调用。此处经过三次硬件断点能快速定位到0x406DDA,我们看到这里已经不是内存拷贝指令,而是寄存器mov到内存,所以我们猜测dl就是保存结果的寄存器。

* 此处代码对EAX的值进行10进制转化,执行的最终结果会保存在ESI指向的内存地址,正是我们要的结果,回溯代码寻找EAX的来源。
* 与查找关键算法点类似,经过三次硬件断点,可以找到以下位置0x42FA8A,此地即为计算EAX的值,结果保存在0x431750

* 至此,算法的破解完成。

### 0x5 序列号校验
* 这个类似于去除NAG窗口的过程,直接就能定位到爆破点,不再赘述。

### 总结
通过对Acid burn的分析,目前仍然遗留一个问题尚未解决,在爆破序列号校验的时候,爆破点如果选择下图的位置,重启应用会导致UI的文字全部消失,目前尚不知原因,如果有知道的朋友欢迎下面留言指导,不胜感激。


我叫蛋dan 发表于 2019-9-3 03:04

所以这个CM在哪里可以下载啊就哈哈哈哈

okmad 发表于 2019-9-3 06:53

下载链接呢.....

一米丶阳光 发表于 2019-9-3 09:25

附上坛内160个CM的收藏帖,里面有对应的下载链接 https://www.52pojie.cn/thread-709699-1-1.html

zjg1727 发表于 2019-9-3 09:28

我叫蛋dan 发表于 2019-9-3 03:04
所以这个CM在哪里可以下载啊就哈哈哈哈

论坛的教学培训区啊。

zjg1727 发表于 2019-9-3 10:33

堆栈回溯那块可以再详细介绍一下吗?

一米丶阳光 发表于 2019-9-3 11:36

zjg1727 发表于 2019-9-3 10:33
堆栈回溯那块可以再详细介绍一下吗?

回溯堆栈有两种方法
第一种 点击OD工具栏的K键,会显示堆栈窗口,这里列出了函数的调用堆栈
第二种 在堆栈窗口里查看栈帧,函数调用的返回地址会存储在栈帧里,一般右侧的注释窗口会提示『返回到xxx』直接在反汇编窗口跟随这个地址即可

一米丶阳光 发表于 2019-9-3 11:37

我叫蛋dan 发表于 2019-9-3 03:04
所以这个CM在哪里可以下载啊就哈哈哈哈

貌似我发错区了,这个区是提供CM的版块,这里附上下载贴


附上坛内160个CM的收藏帖,里面有对应的下载链接 https://www.52pojie.cn/thread-709699-1-1.html

一米丶阳光 发表于 2019-9-3 11:38

okmad 发表于 2019-9-3 06:53
下载链接呢.....


附上坛内160个CM的收藏帖,里面有对应的下载链接 https://www.52pojie.cn/thread-709699-1-1.html

okmad 发表于 2019-9-4 07:34

一米丶阳光 发表于 2019-9-3 11:38
附上坛内160个CM的收藏帖,里面有对应的下载链接 https://www.52pojie.cn/thread-709699-1-1.html

谢谢回复!!
页: [1] 2
查看完整版本: 160CrackMe之001(Acid Burn)