天天看點

歡迎使用CSDN-markdown編輯器一、OllyDbg基本界面二、部分快捷鍵介紹三、修改hello.exe 中MessageBox的内容

OllyDbg 使用筆記 (一)

參考

書:《加密與解密》

視訊:小甲魚 解密系列 視訊

ollydbg下載下傳位址:http://tools.pediy.com/debuggers.htm

hello.exe下載下傳位址:http://pan.baidu.com/s/1c0iYQOC

一、OllyDbg基本界面

圖檔1

歡迎使用CSDN-markdown編輯器一、OllyDbg基本界面二、部分快捷鍵介紹三、修改hello.exe 中MessageBox的内容
如果按視窗切換按鈕出現下面的情況,亂了,隻需要輕按兩下一個視窗讓它全屏就行了。

圖檔2

歡迎使用CSDN-markdown編輯器一、OllyDbg基本界面二、部分快捷鍵介紹三、修改hello.exe 中MessageBox的内容

二、部分快捷鍵介紹

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

歡迎使用CSDN-markdown編輯器一、OllyDbg基本界面二、部分快捷鍵介紹三、修改hello.exe 中MessageBox的内容

在OllyDbg中按F3打開hello.exe

按住F8 直到彈出hello視窗

單步運作到004010E9時會停下來,彈出一個MessageBox視窗。

圖檔4

歡迎使用CSDN-markdown編輯器一、OllyDbg基本界面二、部分快捷鍵介紹三、修改hello.exe 中MessageBox的内容

在這裡下一個斷點。

再按Ctrl+F2重新載入,再按F9運作到斷點處。在F7步進,進入函數中。

我們可以看到

圖檔5

歡迎使用CSDN-markdown編輯器一、OllyDbg基本界面二、部分快捷鍵介紹三、修改hello.exe 中MessageBox的内容

可以看到4個PUSH和一個CALL

四個PUSH就相當于參數。可以看到右邊的注解(OllDbg會根據dll自動注解),這其實是MessageBox的4個參數,由于VC++預設函數是__stdcall 是以參數進棧的順序是從右往左的。

我們可以看到MessageBox顯示的視窗和内容的字元串的位址。同過修改相應位址的内容就可以改變視窗的内容。

在資料面闆 按下Ctrl+G s 輸入 00406030

滑鼠選中要改的地方,按下空格鍵輸入要改動字元。

圖檔6

歡迎使用CSDN-markdown編輯器一、OllyDbg基本界面二、部分快捷鍵介紹三、修改hello.exe 中MessageBox的内容
由于是調用MessageBoxA(A代表ASCII),是以在ASCII中輸入想要字元,記得要以00結尾。例如輸入 “哈哈!!”

圖檔7

歡迎使用CSDN-markdown編輯器一、OllyDbg基本界面二、部分快捷鍵介紹三、修改hello.exe 中MessageBox的内容
再F8 運作程式,運作到call messagebox處,就可以看到MessageBox中的hello被改成了“哈哈!!”

這樣修改在重新載入後就會失效。如果想儲存到應用程式

選中改過的部分,右鍵選擇複制到可執行程式

圖檔8

歡迎使用CSDN-markdown編輯器一、OllyDbg基本界面二、部分快捷鍵介紹三、修改hello.exe 中MessageBox的内容
在彈出的視窗中右鍵選擇  備份–>儲存資料到檔案即可

圖檔9

歡迎使用CSDN-markdown編輯器一、OllyDbg基本界面二、部分快捷鍵介紹三、修改hello.exe 中MessageBox的内容