1

程序观察

使用 VC 编写,没有壳。
20191101161450.png

程序打开就是这个样子
20191101161301.png

点击 File 菜单的按钮就会出现弹窗
20191101161348.png

猜想这个和 Crackme041 一样,都是让人添加代码使程序可以正常运行。

程序分析

使用 OD 载入程序,搜索字符串,可以看到"Nope doesn't work yet"
20191101161812.png

跟进代码
20191101162432.png
20191101162455.png

其实使用 IDA 可以很直观的看出这几个函数的关系
20191101162610.png

程序首先调用 GetMenu 函数,然后将其返回结果进行处理,根据不同的值跳转到不同的代码段。

根据实验,点击 load 按钮,处理后的 eax 为 0;
点击 save 按钮,处理后的 eax 为 4;
点击 exit 按钮,处理后的 eax 为 2;
此时会跳转到最左边的代码段,调用 MessageBoxA 函数。

当点击 about 按钮,处理后的 eax 为 3,
此时会跳转到中间的代码段,调用 DialogBoxParamA 函数。

当什么也不点的时候,处理后的 eax 为 1,
此时跳转到最右边的代码段,调用 DefWindowProcA 函数。

知道了程序的逻辑,就可以添加代码让程序可以正常运行了,但由于本人是个代码苦手,实在不知道怎么写 Load按钮 和 Save按钮 的代码,只能写一个 exit按钮的,所以就不写代码了,只分析一下就好了。


snow
4 声望0 粉丝

多么美好!


« 上一篇
Crackme044
下一篇 »
Crackme050