跳到主要內容

OllyDbg教學(一) -- 基本操作

這篇簡單介紹一下OllyDbg的用法,還有一些使用上的技巧,這邊假設讀者對程式的執行已經有一定的了解。

OllyDbg 1 主頁
OllyDbg 2 主頁

要用OllyDbg來debug一個程式有兩種方法,第一種是直接以OllyDbg啟動程式,另一種則是先啟動程式,在用OllyDbg附加到執行中的程式。一般用第一種方法就可以成功,第二種方法通常用於一些需要特殊啟動環境的程式。

啟動程式後,如圖:

幾個常用的快捷鍵:
繼續執行: F9
執行到函式返回: Ctrl + F9
單步跳過: F8
單步跟進: F7
INT3斷點: F2
編輯標籤: :(冒號)
編輯註解: ;(分號)

要開啟某個程式時,從File->Open即可選擇執行檔,若要附加到一個正在執行的程序,
則從File->Attach即可選擇一個process進行debug。

debug時,正要執行(尚未執行)的那條指令,為只會反白為黑色。

暫存器視窗中,列出了所有暫存器的值,odg會將在上 一條指令中,被改值的暫存器高亮為紅色。另外,若要改變某個暫存器的值,只要雙按那個暫存器的值就會跳出修改視窗。

這裡特別講一下標籤的用法。OllyDbg中,標籤跟組合語言中的label有相同的意義,代表的是一個記憶體的位址,若我們想要將某個函式重新命名時,只要再函是第一個指令處重新編輯標籤,之後所有參考到這個函式的地方,都會自動以你所命名的名字顯示,使用效果如下:
使用前:

使用後:

有了這些工具,就可以開始追蹤程式了。

留言

  1. 版大您好,我有一個exe壓縮檔,忘記壓縮密碼,可以請您幫忙用od看看嗎??
    如果可以請您回覆給我,我並將檔案寄給您好嗎??
    david_lin1214@hotmail.com
    先跟您說聲謝謝了!!

    david

    回覆刪除

張貼留言

這個網誌中的熱門文章

OllyDbg教學(二) -- Hello, World!解析

這次我們的目標是透過觀察Hello World程式,來了解使用OllyDbg的一般流程。 原始程式代碼如下: 編譯指令: gcc -o main.exe main.c 原始碼 main.c: 編譯後產生的main.exe,直接用OllyDbg載入即可。

Galgame引擎概論

作為我的第一篇文章,先來談談galgame引擎的由來。 何謂galgame引擎? 那我們先從以製作galgame的角度說起。 最原始的想法就是直接使用任何一種支援GUI的程式語言,直接以程式碼寫出遊戲的流程以及各項功能。這項工作並不難,其實galgame程序的複雜度,在所有遊戲當中算是相當低的。

BGI引擎概論

BGI全名 Buriko General Interpreter,別名Ethornell,為Buriko公司所開發的遊戲引擎。 較著名的例子有: Lump of Sugar全系列 SMEE近期新作 AUGUST近期新作 HOOKSOFT近期新作 由於沒有公開SDK,網路上幾乎沒有正式的相關內部資訊。 若要做漢化,這篇是很好的入門: Galgame 汉化破解初级教程:以 BGI 为例,从解包到测试