13. OD-内嵌补丁,过期的软件DVD Menu Studio破解,switch函数,break等于KillTimer
內(nèi)嵌補(bǔ)丁指在程序文件中把補(bǔ)丁代碼寫(xiě)入文件里面達(dá)到破解的目的。
?查詢KillTimer函數(shù),意思是break的意思
eax不能等于3,等于4就會(huì)進(jìn)入正確軌道
我們回溯cmp eax,3指令,回到跳轉(zhuǎn)該指令的位置
直到最開(kāi)始的switch位置,下斷點(diǎn)
?這里是賦值ax的地方,下圖
如果我們修改這行代碼未mov eax,4,那么這行代碼會(huì)覆蓋下面兩行代碼,因?yàn)樵?個(gè)字節(jié)的指令變成了4個(gè)字節(jié)的指令。
這時(shí)候,我們就需要學(xué)到 內(nèi)嵌補(bǔ)丁
拉到程序最后面
這些地方就是內(nèi)嵌補(bǔ)碼的書(shū)寫(xiě)位置
我們將mov eax,4寫(xiě)入這里,并把被覆蓋的代碼粘貼在這里
如何修改源代碼未jmp到我們補(bǔ)碼的位置 005E47D0
接下來(lái)內(nèi)嵌補(bǔ)丁結(jié)束也要返回去源位置
改完后發(fā)現(xiàn)一個(gè)問(wèn)題,程序進(jìn)入死循環(huán),永遠(yuǎn)退不出switch,無(wú)限彈出注冊(cè)成功對(duì)話框
F8調(diào)試,發(fā)現(xiàn)只有eax等于B,switch最后一個(gè)選項(xiàng)才可以正常退出,否則持續(xù)死循環(huán),必須找到break類似的退出
我們找到了跳出死循環(huán)的跳轉(zhuǎn)指令及參數(shù)?
我們修改代碼4改為0B
程序破解成功了。
?
第二種方法:
進(jìn)入
按暫停,打開(kāi)堆棧界面,K界面
因?yàn)橄壬山缑?#xff0c;后彈出neg窗口,使用我們判斷從最后一個(gè)開(kāi)始向前尋找條用的堆棧窗口。
按界面exit退出注冊(cè)界面斷點(diǎn)才開(kāi)始繼續(xù),否則斷點(diǎn)不會(huì)過(guò)call,判斷此call就是驗(yàn)證對(duì)話框的運(yùn)行函數(shù)體
確定此call就是驗(yàn)證對(duì)話框的函數(shù)體
然后我們向上尋找整個(gè)此函數(shù)體的開(kāi)始部分,尋找push ebp,下斷點(diǎn)
F8跟蹤運(yùn)行尋找關(guān)鍵跳轉(zhuǎn),跳出此驗(yàn)證對(duì)話框的跳轉(zhuǎn)點(diǎn),改為nop
破解成功
?
?
總結(jié):1. 內(nèi)嵌補(bǔ)丁是為了修改指令后覆蓋源碼的情況下,在最后面添加代碼做程序的補(bǔ)碼而使用的。
2. switch尋找跳出循環(huán)的break關(guān)鍵跳轉(zhuǎn)位置。
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的13. OD-内嵌补丁,过期的软件DVD Menu Studio破解,switch函数,break等于KillTimer的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python从excel中读取数据
- 下一篇: Airsim仿真