初次尝试使用IDAPro修改程序控制流程
生活随笔
收集整理的這篇文章主要介紹了
初次尝试使用IDAPro修改程序控制流程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先用VC6寫一個簡單程序;
如果在輸入框輸入 ABCdef ,單擊按鈕則彈出“密碼正確”,否則彈出“密碼錯誤”;
用IDAPro打開此exe;打開時有一些打開選項,例如選擇處理器類型,因為不同的處理器指令集不同,按二進制打開文件時選擇不同的指令集識別出的內容會不一樣;先都默認;
進到反匯編窗口,可以在文本模式和圖形模式之間切換;
切到文本模式;
從選項菜單調出如下對話框;把線框處改為16,這樣會顯示指令的機器碼;
看一下機器碼顯示了;
jnz指令的機器碼為75,如果改為74,就變為jz指令;
jnz,結果不為零(或不相等)則轉移; jz即零標志為1就跳轉;
這是最基本的破解原理,可以學習一下;干壞事是不好的;把75改為74,看一下是否產生輸入任何內容都彈出 密碼正確 的效果;
用文本搜索功能,搜到一個 75 ;
選擇如下菜單,Edit - Patch program - Change byte...;
在彈出對話框把75改為74;
看一下改了;
然后選擇如下菜單,應用改變到輸入文件;
OK,保存;
然后運行程序;并沒有改過來,還是要輸入正確的密碼才彈出 密碼正確;
改的可能不是地方;
看一下IDA Pro的函數窗口;這是識別出的MFC函數;雙擊AfxMessageBox,
定位到對應反匯編代碼處;看一下,這個if-else,應該是編譯為jmp,并沒有編譯為jnz;下回繼續;
?
總結
以上是生活随笔為你收集整理的初次尝试使用IDAPro修改程序控制流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SVN 图标和工具、wc.db学习
- 下一篇: Asp.Net用户控件编程实例