如果没有看过我之前文章的,请点击传送门
开始进入正题,此篇开始实战将WinRaR去除广告,可以自行上官网下载WinRAR,此篇使用的版本如下
我们在使用WinRAR时候,总是有弹出广告如下:
那么我们该如何将广告去除呢?
首先经过前面的逆向学习了解,我们已经掌握了修改ds数据段,cs代码段的数据,那么我们要将WinRAR的广告去除,则是将WinRAR调用广告弹窗的函数给去除了即可。
在汇编中调用函数方法使用的是call(之前有call打印helloworld反汇编),
广告弹窗的逻辑:
1、请求广告链接(一般都是http协议的)
2、将数据在弹窗显示
而广告是一个url连接,我们查看窗口可以发现窗口名称为WinRAR,且这个是一个弹框函数createWindowExw,根据这些信息,可以找到如下:
这里我把WinRAR的广告链接都粘贴出来了: http://ad.winrar.com.cn/show_2.html?L=7&bl=7&v=591personal&a=64&src=pe001%2
这里就不逐句分析汇编指令了,这段代码段无非就是请求http链接,得到广告,然后弹窗,这下逻辑已经很清晰了,只要将这些访问广告连接,弹框显示代码去除了,那么就OK了,那么开始动手,将00007FF7187D977C到00007FF7187D97C7的代码段使用nop填充(简单就是相当于删除了代码逻辑)
然后补丁导出保存为WinRAR1.exe(保存到原本的安装目录),此时双击打开WinRAR1.exe会发现没有广告了,将去除好广告的WinRAR1.exe重命名WinRAR.exe 替换原本的,你就可以使用无广告版本的WinRAR了。
但是会有以下弹框(如果是新下载安装的有试用期,所以没有以下弹框),
如果你是新安装的WinRAR那么可以调整系统时间,往前调2个月,那么再次启动WinRAR则可以看见会跳出该弹框,接下来则是该去除该弹框,
接下来直接使用x64Debug打开WinRAR1.exe,该弹框是模态框,我们可以在user32.dll下的DialogBoxParamW出下断点(如下图),那么程序执行到弹框时候就可以跟踪了
当程序运行到断点处时候,点击查看调用堆栈
可以找出上一个系统模块调用该弹框的地址00007FF6D0DF9842 | 48:8B8C24 70100000 | mov rcx,qword ptr ss:[rsp+1070] |
接下来直接nop填充它,补丁保存WinRAR2.exe,双击打开WinRAR2.exe 是不是发现没有广告,没有弹框了。
另外title上的评估版本,什么版本之类的,同理只要找到资源文件,修改了即可。最后请大家支持正版~~~
看了我的文字如果喜欢我,那么请关注我,多多评论,你们关注就是我的动力,谢谢大家!