[無用][Trick]CheatEngine秒爆軟體收費請求核心檢測點.(以某知名壓縮軟體為例)

為什麼會有這篇文呢...
純粹因為要去某某學校講場Talk可是怕沒東西Demo撐時間
所以就拿在網路上被拆到爛掉的WinRAR介紹一下惹XD
PS:有興趣的人可以用OllyICE手動暴力跟跟看,會發現跟不進去XD
※這篇文一點都不黑、不技術、純學術唷,學術型駭客正夯呢!
首先,本文主角是某壓縮軟體試用版
點選試用版的WINRAR x32bit
裝完試用版後有免費試用40天的期限
不過因為要等四十天才能繼續寫文章....
請把右下角的Windows時間調整到四十天以後XD
在開啟一次WinRAR.exe就會像這樣:
會噴出這個很煩人的窗窗...
OK,接著我們開啟工具Cheat Enigne
然後用CreateProcess的方式選擇到WinRAR.exe,按下開啟舊擋
就會看到CE幫你把Main Thread做了暫停並且視窗停在入口點囉

接下來
要介紹怎麼秒爆WinRAR的商業收費時間檢測點
首先我們知道,如果日期一超過四十天,雖然不知道它怎麼計算的
但是確切知道的是:它會彈出一個視窗告訴你該繳摳摳囉

所以我們就來在下一個BreakPoint下在SetWindowPos+14的返回點上
咦?你說不知道為啥要Hook這個很奇怪的點?看起來很難記嗎?XD
其實你可以翻到上一層
其實它是SetForegroundWindow這個API準備進入Ring0層的接口
可是它不像一般其他API都有NT函數,
而是獨立一個很奇怪的位置在SetWindowPos+14這個位置,沒有給正式的函數名

至於我怎麼撈出來的...
不要問...這算是經驗吧(?)暴力跟出來的XD
基本上涉及到窗體焦點...etc很多類型都會調用到這個

下好斷點後,準備開始瘋狂F9的旅程

一直F9、F9、F9、F9...會終於等到那個試用的訊息窗終於跳出來了
此時把返回點的BreakPoint拿掉(這很重要XD,不然你會進入很基巴的死迴圈)
接著可以做第一層的往上層跟蹤(Shift+F8)
會發現來到User32內的Call中Call
但是實在不是確實的比對點...繼續往上爬(Shift+F8)
爬到這裡就可以發現原來它的試用訊息是用DialogBoxIndirectParamAorW噴出來der
接著把試用訊息的提示視窗關閉後,就會把控制權交回CE惹
在往上跟一層
往上跟蹤到DialogBoxParamW是用這個做Create的~~
繼續往上跟

將將將將~~超級無敵容易就爬到檢測點了
在上面做了一個test al,al如果al為空就表示不需要跳出試用訊息

找到惹核心檢測點在Winrar.exe+9A2CB這邊的Test Al,Al要讓它下一個強跳
開啟OD,載入WinRAR找到這個位置
送它一記強跳OWO
然後存起來
手動打開這個Cracked版看看
成功啦~~從此以後都不會在彈那個試用訊息惹

PS:那個關鍵點往上爬一層就可以看到付費版檢測的方式不過感覺付費版應該沒跟試用版差多少功能,所以有興趣的可以再從al暫存器繼續做跟蹤,應該可以成功Patch成付費版

留言

這個網誌中的熱門文章

[C#] Lambda花式應用噁爛寫法(跨UI委派秒幹、多線程處理...etc)

[Windows] 逆向工程 C++ 中入口函數參數 main(argc, argv) 與如何正確的進行參數劫持

重建天堂之門:從 32 位元地獄一路打回天堂聖地(上)深度逆向工程 WOW64 設計