逆向分析WINRAR去除广告弹窗

在打开WINRAR时总会出现弹窗广告

image-20240923201759681

使用spyxx定位广告窗口:

搜索=>搜索窗口=>移动图标到广告弹窗=>确定

image-20240923202557450

image-20240923202441573

image-20240923202616588

右键属性,标题WinRAR、窗口类RarReminder

image-20240923202810969

image-20240923202721176

Windows创建窗口:

RegisteClass创建窗口类 => 窗口类调用CreateWindow创建窗口

思路:找到RarReminder窗口类CreateWindow去除

使用APIMonitor监听CreateWindow函数:

Ctrl+F搜索CreateWindow,将函数进行勾选

image-20240923203234109

监视进程

image-20240923203340699

找到RarReminder窗口类

image-20240923203532725

通过调用堆栈窗口获得CreateWindow地址和偏移量:

1
2
address: 0x00007ff673defbf8
offset: 0xafbf8

image-20240923203721192

使用IDA打开WINRAR,找到address:

IDA与API Monitor分析的加载位置可能不一样,使用ProcExp分析加载基地址,再利用IDA进行rebase重定位

1
0x00007FF673D40000

image-20240923204712388

IDA rebase:

Edit=>Segments=>Rebase program

image-20240923204913706

快捷键g:跳转到CreateWindow地址:0x00007ff673defbf8

image-20240923205606174

F5反编译伪代码

image-20240923205739512

CreateWindow所在函数为sub_7FF673DEF7B8:7FF673DEF7B8为地址

image-20240923205829717

G跳转到函数开头位置

image-20240923205944206

Ctrl+X:看哪些地方在调用这个函数

image-20240923210035487

image-20240923210305300

image-20240923210248422

也可以从 API Monitor的调用堆栈窗口看出

image-20240923210338484

可以将函数调用行汇编的call指令替换为NOP指令,但可能会导致出现一些问题 => 直接去除CreateWindowExw和SetWindowPos =>将这两个函数机器码改为NOP 90

1
2
FF15C09E0700
FF15C29E0700

image-20240923211019384

WinHex搜索

image-20240923211905521

image-20240923212005809

成功去除广告弹窗,但又出现另一个弹窗,该窗口为对话框调用函数为DialogBox

image-20240923212042429

image-20240923212327799

同样在WinHex中去除

1
FF15FF9E0700

image-20240923212434660

经过修改后成功去除弹窗

image-20240923212507095

__END__