在虚拟机里用winrar作为解压缩软件时,它的广告弹窗很烦人的,做个小实验关掉它!
在winrar官网下载x86安装包:https://www.winrar.com.cn/
下载完成后,在win7 x86虚拟机中安装。
随意双击一个rar文件,都会有弹窗广告。
这个怎么破解呢?
找到winrar的安装目录,用OD调试器打开WinRAR.exe,开始调试之旅。
我们知道,Windows创建新窗口的函数是CreateWindowExW
或CreateWindowExA
,所以我们Ctrl + G
分别对其下断点。
然后F9进入调试。
断点命中后,Windows右下角会显示详细的参数信息。
我们关心的是WinRAR的,所以忽略无关的,继续F9。
第一次出现WinRAR相关的调用是:
这次是创建winrar主窗口的调用,但此时窗口还未显示,因为各项资源还没准备完全。
可以通过栈回溯定位一下它的调用点,不过也没有太多关键的信息。
接下来有很多次调用,因为要初始化窗口上的资源,像ComboLBox、ScrollBar、Toolbar等等都会触发CreateWindowExW
的调用,这些都可以过滤掉。
初始化完成之后,主窗口就弹出了。按理说接下来就应该准备弹出广告窗口了。
我们发现,此时右下角的调用又是一个WinRAR,栈回溯看一下调用点:
发现在函数调用上方有个链接,这正是内嵌在广告窗口中的链接。
验证一下,再F9几次(初始化广告弹窗),广告弹窗出现了!
OK!这样就定位到了广告弹窗的那次CreateWindowsEx!
那怎么关闭弹窗呢,自然就是删除这次调用。
第一次尝试的时候,把这块指定全部填充成了nop。
保存后发现,中间部分指定被填充成了其他值,这是因为这些指令有重定位。那这个方法就有点风险了,可能会执行崩溃。
于是换了第二种方法,用jmp指令直接跳过这几行。
保存并替换原文件,再双击就会发现广告弹窗不见了!