OllyDbg 使用筆記 (一)
參考
書:《加密與解密》
視訊:小甲魚 解密系列 視訊
ollydbg下載下傳位址:http://tools.pediy.com/debuggers.htm
hello.exe下載下傳位址:http://pan.baidu.com/s/1c0iYQOC
一、OllyDbg基本界面
圖檔1
如果按視窗切換按鈕出現下面的情況,亂了,隻需要輕按兩下一個視窗讓它全屏就行了。
圖檔2
二、部分快捷鍵介紹
F3 : 打開目标檔案
F2 : 設定斷點
F7:單步步進,遇到CALL跟進
F8:單步步過,遇到CALL路過,不跟進
F9:運作調試程式,直到運作到斷點處
F4:運作調試程式,直到運作到光标處
Ctrl+F7/F8 相當于一直按F7/F8
Ctrl+F9 快速跳出函數
Alt+F9 快速跳出系統函數
Ctrl+F2 重新載入程式
在反彙編面闆中
;鍵:寫注解
空格鍵:改變目前的指令
資料面闆中
Ctrl+G:打開位址視窗
空格:編輯資料
三、修改hello.exe 中MessageBox的内容
此程式下載下傳位址見 blog開頭。
更改下面這個程式的标題和内容
圖檔3
在OllyDbg中按F3打開hello.exe
按住F8 直到彈出hello視窗
單步運作到004010E9時會停下來,彈出一個MessageBox視窗。
圖檔4
在這裡下一個斷點。
再按Ctrl+F2重新載入,再按F9運作到斷點處。在F7步進,進入函數中。
我們可以看到
圖檔5
可以看到4個PUSH和一個CALL
四個PUSH就相當于參數。可以看到右邊的注解(OllDbg會根據dll自動注解),這其實是MessageBox的4個參數,由于VC++預設函數是__stdcall 是以參數進棧的順序是從右往左的。
我們可以看到MessageBox顯示的視窗和内容的字元串的位址。同過修改相應位址的内容就可以改變視窗的内容。
在資料面闆 按下Ctrl+G s 輸入 00406030
滑鼠選中要改的地方,按下空格鍵輸入要改動字元。
圖檔6
由于是調用MessageBoxA(A代表ASCII),是以在ASCII中輸入想要字元,記得要以00結尾。例如輸入 “哈哈!!”
圖檔7
再F8 運作程式,運作到call messagebox處,就可以看到MessageBox中的hello被改成了“哈哈!!”
這樣修改在重新載入後就會失效。如果想儲存到應用程式
選中改過的部分,右鍵選擇複制到可執行程式
圖檔8
在彈出的視窗中右鍵選擇 備份–>儲存資料到檔案即可
圖檔9