0.OD-基础操作
1.按F9運行程序
2.ctrl+G打開跟隨表達式窗口,輸入的Api大小寫敏感,函數名大小寫必須正確
3.Alt+B打開斷點窗口,Always表示斷點激活狀態,Disable表示斷點停用,按空格鍵可切換狀態
4.Alt+n打開輸入輸出表,Alt+C回到主窗口
5.Alt+F9回到調用函數的地方.
6.API函數基本采用_stdcall調用約定,參數按從右到左入棧,由被調用者清理棧中參數,返回值放在eax寄存器中,因此對API要分析其前的PUSH指令,這些指令將參數放進堆棧以傳送給API調用,
C代碼中的子程序采用C調用約定,同線參數按從右到左入棧,由調用者清理棧中的參數。
?7.int3指令,機器碼是CCH,又常稱為CC指令,也就是按F2下的斷點,雖然顯示的是下斷前的指令,但實際上已被替換成cc了.
8.硬件斷點原理是使用4個調試寄存器(DR0,DR1,DR2,DR3)來設定地址,因此最多只能設置4個斷點,右擊寄存器面板窗口,執行view debug registers,就可以看到DR0,DR1,DR2,DR3了,右鍵選breakpoint--->hardware,on execution(斷點/硬件執行)命令,按F9執行程序,程序中斷到硬件調試這一行,查看調試寄存器,會發現DR0的值和中斷點的內存地址一致。設置斷點后,實際就是把DR0,DR1,DR2,DR3其中一個設置為斷點的內存地址,刪除,單擊菜單"debug-->Hardware breakpoints(調試/硬件斷點)",打開硬件斷點面板,單擊delete刪除相應的硬件斷點.
9.F4,可以執行到光標所在的行,利用的就是調試寄存器原因,中斷后自動刪除,相當于一次性硬件斷點,硬件斷點的速度快,缺點是最多能使用4個斷點。
?
整理下基本快捷操作:
F2:設置斷點,只要在光標定位的位置(上圖中灰色條)按F2鍵即可,再按一次F2鍵則會刪除斷點。
F8:單步步過。每按一次這個鍵執行一條反匯編窗口中的一條指令,遇到?CALL?等子程序不進入其代碼。
F7:單步步入。功能同單步步過(F8)類似,區別是遇到?CALL?等子程序時會進入其中,進入后首先會停留在子程序的第一條指令上。
F4:運行到選定位置。作用就是直接運行到光標所在位置處暫停。
F9:運行。按下這個鍵如果沒有設置相應斷點的話,被調試的程序將直接開始運行。
CTR+F9:執行到返回。此命令在執行到一個?ret?(返回指令)指令時暫停,常用于從系統領空返回到我們調試的程序領空。
ALT+F9:執行到用戶代碼。可用于從系統領空快速返回到我們調試的程序領空。
ALT + F2 關閉被調試的程序。如果程序還在活動狀態,你會被詢問是否執行該操作。
總結
- 上一篇: CSocket详解
- 下一篇: 1.OD-破解MTS DashBoard