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