一直在使用WinRAR解壓文件,感覺非常的好用,可是現在WinRAR添加了廣告,每次打開壓縮包都會彈出廣告,有時候甚至在解壓的時候彈出來,而每次彈出廣告都會卡頓一下,忍了很長時間今天實在是受夠了,准備嘗試去廣告,故把過程記錄下來,這里我使用的是最新版 5.71.
免責聲明:該教程僅用於技術交流,並無任何商業目的,您不得將下述內容用於商業或者非法用途,否則后果自負,如果您喜歡該程序,請支持正版軟件,購買注冊 ,得到更好的正版服務,如有侵權請郵件聯系作者!
通過API函數去廣告 (x32位)
1.首先我的思路如下,程序在運行后因為會彈出窗體,而廣告從某種程度上說也是一種窗體,所以猜測是否會調用 CreateWindowEx這個函數來創建窗體呢,經過使用IDA驗證,果然調用了這個函數。

2.接着使用OD載入WinRAR程序,下一個 CreateWindowExW 函數斷點。

3.接着我們直接 【F9】運行程序,然后程序會斷下,觀察第一次斷下的結果,其堆棧如下,我們需要注意 WindowName這一欄,很明顯這個不是。

4.繼續按下【F9】運行程序,當按下5-6次F9后,堆棧中顯示出了WinRAR相關的字眼,這里需要注意,馬上就是主窗體創建代碼了。

5.此時我們在堆棧窗口,右擊選擇反匯編窗口中跟隨,並在【00D516D1】的位置下斷點並去除多余斷點,然后重新載入程序。

6.重新載入程序以后運行程序,並單步F8慢慢向下走。

7.當走到【00D51AB9】的位置的時候,程序會卡頓一下,然后接着就會彈出廣告,由此我們可以肯定這個CALL就是廣告彈出的關鍵CALL

8.此時我們記下這個CALL的地址【call 00D153A0】,搜索所有常量,並分別將這幾處CALL調用替換成NOP指令。

9.保存文件,保存所有修改,然后運行即可完美去廣告。

### 通過窗口句柄去廣告 (x64)
1.打開x64dbg,直接F9讓程序跑起來,並等待程序出現彈窗,然后切換到句柄,在窗口中選擇彈窗窗體類,並記下類名稱 RarReminder。

2.接着在反匯編窗口中搜索字符串,並查找 RarReminder 類名。

3.找到類名后,在所有的類名上設置斷點。

4.重新加載程序,並F9直接運行,此處需要運行兩次,會發現是創建窗體的過程,我們這里需要修改一處地址,使創建窗體失效。

5.此處將原有指令修改為lea rdx, ds:[0x00007FF70A5FFFFF] 這樣CreateWindowEx函數就會失效,從而不去創建彈窗。

6.保存文件,並運行看看效果,發現已經完美屏蔽廣告了,嘎嘎!

去廣告后可以壓縮一份,以后直接解壓就能使用。
