《第3期-14 注冊(cè)表返回值快速定位》學(xué)習(xí)筆記

用作例子的軟件是 HyperSnap 7 專業(yè)版


在未注冊(cè)時(shí),一打開(kāi)會(huì)提示注冊(cè),猜測(cè)這是從注冊(cè)表中讀取了注冊(cè)信息,所以可以對(duì)注冊(cè)表操作函數(shù)下斷點(diǎn),從而找到驗(yàn)證的關(guān)鍵代碼并進(jìn)行分析修改達(dá)到破解的目的。
一、
1、來(lái)到軟件主程序,右鍵——查找——所有模塊間調(diào)用


根據(jù)前面的經(jīng)驗(yàn),知道注冊(cè)表函數(shù)都以Reg開(kāi)頭,所以可以按鍵盤上的r e g鍵,這會(huì)自動(dòng)跳到以Reg開(kāi)頭的函數(shù)那里。


我們要尋找的是打開(kāi)注冊(cè)表的函數(shù),找到后右鍵,對(duì)每個(gè)調(diào)用下斷點(diǎn)。
2、重新載入程序并運(yùn)行,斷下來(lái)后觀察堆棧窗口中是否會(huì)出現(xiàn)和進(jìn)程名HyperSnap相似的字符串。
出現(xiàn)后就單步跟蹤,還可能得跳出call后繼續(xù)跟蹤。主要是看讀取注冊(cè)信息的代碼所在的call返回值是否是0或者1。
如果出call后發(fā)現(xiàn)返回值不是0也不是1,證明這個(gè)call就不是關(guān)鍵call,要么繼續(xù)出call;要么繼續(xù)F9,找下一個(gè)斷下來(lái)的。這是最要緊最難的一步了,也就是在這一步找到了關(guān)鍵call。
在第10次斷下來(lái)后,出call一次還得再出call一次,才找到了關(guān)鍵call。
在這一過(guò)程中,看到可疑的關(guān)鍵處,可以修改一下試試,看能夠達(dá)到破解目的。

004A0B5E  |.  E8 2DBA0800   call    0052C590                                  ;  這個(gè)就是關(guān)鍵call了。第2次出call會(huì)來(lái)到這里
004A0B63  |.  A3 F0B07200   mov     dword ptr ds:[0x72B0F0],eax               ;  關(guān)鍵處,eax的值影響了驗(yàn)證是否通過(guò)
004A0B68  |.  E8 53CD0900   call    0053D8C0

3、原本想直接修改關(guān)鍵call的返回值,但是OD提示重定位的問(wèn)題


那么只好對(duì)關(guān)鍵call進(jìn)行替換了

004A0B5E      B8 01000000                     mov     eax,0x1                                   ;  把關(guān)鍵call替換了
004A0B63  |.  A3 F0B07200                     mov     dword ptr ds:[0x72B0F0],eax               ;  關(guān)鍵處,eax的值影響了驗(yàn)證是否通過(guò)
004A0B68  |.  E8 53CD0900                     call    0053D8C0
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容