1. 程式人生 > >OD載入程式的方式

OD載入程式的方式

1. OllyDbg可以用兩種方式載入被除錯的目標程式,一是通過CreateProcess建立程序,二是用函式DebugActiveProcess將OD     繫結到一個正在執行的程式上。     1.1 用CreateProcess建立程序           1.1.1  單擊選單“File / Open” 或 快捷鍵F3開啟要除錯的可執行程式,OD會呼叫CreateProcess建立一個用以除錯的新程序。                    OD將接收新程序發生的除錯事件,而對新程序建立的子程序的除錯事件不予理會。           1.1.2 如何除錯需要帶命令列引數的程式:                   用1.1.1中方法開啟可執行程式時,在開啟對話方塊中的“Arguments”欄中輸入需要的引數即可。     1.2 把OD附加到一個正在執行的程式上           1.2.1 用偵錯程式除錯一個正在執行的程式叫附加(Attach)。其原理是利用DebugActiveProcee函式可以把偵錯程式 繫結到一                    個正在執行的程式上。           1.2.2 方法是單擊選單“File/Attach”開啟附加對話方塊,在正在執行的程序列表中選擇要除錯的程序,再單擊Attach按鈕即可。                     附加後,目標程序會暫停在Ntdll.dll中的DbgBreakPoint處,按 F9 或 Shift + F9即可讓程式繼續執行。           1.2.3 附加到隱藏程序。                    OD有一個命令列啟動引數  -p ,先用其它工具獲取到隱藏程序的pid,再在命令列上用 -p 引數附加即可。                     > OllyDbg.exe  -p  pid   

                   (注意:pid是十進位制的值)     1.3 用OD的即時偵錯程式功能來除錯。            1.3.1 設定OD為即時偵錯程式                      單擊 “ Options/Just-in-time debugging”。

            1.3.2 舉例說明:                       有兩個exe檔案:A.exe 和 B.exe,執行A.exe時,其會呼叫B.exe,此時用OD附加B.exe,OD無法除錯B.exe。                       若將B.exe的程式入口點處指令改為0xCC,再執行A.exe,當其呼叫B.exe時會產生INT 3 ( 0xCC )異常,此時                       OD將作為即時偵錯程式除錯B.exe,將INT 3指令恢復為原始指令後進行除錯。