學 習 目 標
◆ WinRAR5.40(64位)的彈框廣告去除。由於我的系統為x64版本,所以安裝了WinRAR(x64)版本。
◆ OD無法調試64位的程序,可以讓我熟悉x64dbg進行調試的界面。
◆ 其次是這玩意兒真是太蛋疼了,無休止彈廣告。
破 解 思 路
1)偷梁換柱
修改彙編函數段首為返回值(本次逆向破解採用的方法)
2)NOP掉整個函數內容
涉 及 知 識
x64dbg工具快捷鍵與OD無異
F9:運行
bp CreateWindowExW:在x64dbg底部輸入這行命令,對使用CreateWindowExW函數的位置斷點。
CreateWindowExW:該函數創建一個層疊式窗口、彈出式窗口或子窗口。
參數:
實現流程
【軟體名稱】:WinRar
【軟體版本】:5.4
【外殼保護】:無
【操作系統】:Windows 10
既然是彈出窗口,首先要知道彈窗窗口的窗口類名,我使用的是VS2015里自帶的工具Spy++ x64。
圖1 調出Spy++ x64
圖2 使用Spy++64查看WinRAR彈出的窗口類名為RarReminder
通過上訴步驟得到WinRAR的類名為RarReminder后,使用x64dbg工具載入WinRAR.exe。在命令的地方使用斷點命令【bp CreateWindowExW】,在CreateWindowEx函數斷下斷點。F9運行到各個斷點時觀察廣告窗口彈出的狀態變化。
圖3 使用斷點命令【bp CreateWindowExW】
F9運行到出現RarReminder字樣的地方,x64dbg這款工具還具備查看斷點觸發的次數的功能,通過【斷點】選項卡看到斷點共觸發了30次才到這裡。
圖4 斷點觸發的次數
在堆棧窗口在call指令的地方按回車鍵返回到用戶層函數。
圖5 堆棧窗口信息
返回到00007FF6780AD4E8這個地址處,向上看會看到「http://ad.winrar.com.cn/show_40.html?L=7&bl=7&v=540&a=64&src=wrr」這個很明顯的廣告地址。
彙編函數的代碼如下:
可以看到:
函數頭部地址為:00007FF6780AD078 | mov qword ptr ss:[rsp+8],rbx
函數尾部地址為:ret
修改之後,函數頭部地址為:00007FF6780AD078 | ret
圖6 修改函數頭部反彙編指令
修改之後,滑鼠右鍵選擇補丁-修補文件。
圖7 選擇補丁
圖8 修補文件
小功告成!再次打開rar彈窗廣告已經消失了。可是評估版本字樣還在,追求完美可以選擇使用資源管理工具去除字樣。
圖9 去除彈窗
我使用了Restorator這款資源修改軟體,不過使用這款軟體的少俠們可就小心了。因為這款資源軟體會自動修改.exe擴展名的關聯,請切記在虛擬機下運行。
圖10 導出資源文件.rc
導出資源文件.rc后,用notepad++打開.rc後綴的文件。修改【評估版本】為你想要修改的文字。然後再導入到資源中。操作比較簡單,就不贅述了!
圖11 大功告成!
本文由看雪論壇 lipss 原創,轉載請註明來自看雪社區
熱門閱讀
議題徵集 | 2017 安全開發者峰會
虛擬機保護技術淺談
一個lpk.dll病毒的分析報告
從 Android 源碼看 SO 的載入
【暴雷漏洞】CVE-2012-1889 個人漏洞分析報告
Safengine Shielden 2.3.8.0 脫殼 ∷之∷ 修復IAT