广告去弹窗

参考网址:https://bbs.pediy.com/thread-223105.htm

软件下载网址:http://www.winrar.com.cn/download-55032scp.html

本文前言部分摘自蓝色淡风的文章《一次去除广告弹窗的经历》。

一、前言

逆向一个程序,大致有3种方法。

1.       自上而下分析方法

从程序入口点(OEP)开始分析,模拟程序运行的整个流程,对程序进行分析,但是这种方法一般不适用于比较大的程序,(如果一个程序有几十兆,几百兆,乃至更大,按这种方法就不道要到猴年马月才能完成了,呵呵)

2.       自下而上分析

运行程序,观察其行为特征,找到关键API,栈回溯分析,比如程序弹出了一个对话框,程序就很有可能用了MessageA/W,然后 从弹框栈回溯分析;如果找到窗口回调函数,也可以从窗口回调函数开始分析

3.       字符串分析

根据弹窗提示的字符串,在调试器中查找,定位关键代码,再分析

二、分析

使用spy++获取广告窗口的句柄,标题名,类名等信息。

广告去弹窗_第1张图片

图1:广告窗口信息

弹出来的广告窗口不是模态对话框,所以不寻找MessageBox以及DialogBox,寻找CreateWindow下断点。

bp CreateWindowExA

bp CreateWindowExW

F9运行多次之后,断在了窗口名为WinRAR,类名为RarReminder的窗口创建处,此函数会创建广告窗口。

广告去弹窗_第2张图片

图:2:窗口名为WinRAR类名为RarReminder创建广告窗口

Alt+k查看堆栈,找到此函数在主模块中的位置。

广告去弹窗_第3张图片

图3:广告弹出窗口在主模块中的位置

在0x4A4DD5处下断点,重新加载程序之后,断到了0x4A4DD5,此时,“winrar(评估版本)”的窗口已经弹出了,单步执行之后,发现广告窗口弹出,确定此处函数为弹出广告窗口的函数。

广告去弹窗_第4张图片

图4:弹出广告窗口

参考文章中是在参数压栈开始处修改代码,JMP到了函数调用结束。我直接把这个函数调用NOP掉了,保存之后,打开软件,已经没有了广告弹窗。

三、总结

本人从官网上下载的个人免费版,只有广告弹窗,无需购买,因此去掉广告弹窗之后就可以正常使用了。

       此类弹窗的解决方法类似,找到弹出窗口的代码,JMP或是NOP掉。

你可能感兴趣的:(逆向)