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