之前用的别人破解的WinRAR,最近更新到5.5后,居然弹出了广告,并且是在有注册文件的情况下。这一点就说明其简体中文的代理很黑,即便对于注册用户也想弹出广告赚取流量费。最近都在苦逼的搞开发,好久没玩过了,就拿它开开刀。
一、获取广告窗口类名
Visual Studio自带了一个名为spy++的窗口信息查看工具,搜索spyxx即可找到。这里要注意使用x64版本的,其文件名为spyxx_amd64.exe。打开该软件并开启WinRAR,广告窗口即刻蹦了出来:
按Ctrl+F后将查找工具的小图标拖到广告窗口上,可以看出,其注册的窗口类为”RarReminder”。
二、x64dbg追踪
由于这次调试的是x64版本的WinRAR,神器OllyDBG无法派上用场,好在有一个名为x64dbg的新晋调试器基本能够代替其功能。这次就用它来调试吧:
用x64dbg载入程序,默认断在了ntdll领空,F9跑起来后断在了程序OEP处:
直接右键——在当前模块查找字符串,输入“RarReminder”,共两处命中:
第一处是注册该广告窗口类:
第二处是创建该广告窗口:
2-1. 废掉广告窗口类注册动作
先在IDA中看看,第一处所在的函数应该是在集中注册窗口类,只要有一个注册失败整个程序就退出运行了。
.text:00000001400D8951 lea