初步分析
首先,打开文件,进行文件初步探索。
然后,点击OK发现删除本界面并跳转到新的界面,并且需要我们去除弹出的窗口。
正式分析
拖拽进IDA Pro 和OllyDbg中进行分析。
根据我们初步测试的结果,我们知道一个重要线索:首先退出初始界面,然后弹出新界面。
所以我们尝试寻找退出界面和弹出界面的交界的地方。
遍历观察IDA给的反汇编代码。
通过这个图片,我们观察到两个重要函数:LoadIconA 和 DestroyWindow 。
可以猜测,LoadIconA 函数是创建新的界面的时候创建按钮的函数,而 DestroyWindow 函数则是用来销毁初始界面的函数。所以这里就是关键代码存在的地方。
为了观察清楚,我拖拽了代码逻辑的位置:
如图所示,正如我们初步测试时观察的一样,首先销毁了初始界面,然后创建了新的界面。
而且创建新的界面的关键跳转代码是:jz short loc_401166 。所以我们尝试修改这段代码。
这段代码位于401112
尝试解决
使用OllyDbg修改这一行代码
运行程序,发现没有弹窗了!
回顾反思
本题解题思路,和上一题思路差不多,都是通过逆向推理。需要注意的是,初步探索过程有时候很重要,可以直接影响接下来解决问题的思路。