- OD 支持哪些調(diào)試方式传透?
① 支持拖拽
② 支持菜單-文件-打開凉唐,打開的時候可以添加命令行參數(shù)
③ 支持右鍵菜單打開
④ 支持附加調(diào)試
⑤ 支持 DLL 調(diào)試
⑥ 支持多線程調(diào)試 - OD 中的斷點有哪些?分別原理是什么湿痢?
① 軟件斷點涝缝,F(xiàn)2,修改代碼處為 int3譬重,異常觸發(fā)再還原
② 硬件斷點拒逮,寄存器設(shè)置地址到 dr0~dr3,dr6, 觸發(fā)單步異常
③ 內(nèi)存斷點臀规,修改內(nèi)存屬性(VirtualProtectEx)
④ 條件斷點滩援,Shift+F2, 與軟件斷點一樣
⑤ 消息斷點,在條件斷點基礎(chǔ)上增加了宏定義
⑥ 記錄斷點塔嬉,利用跟蹤記錄玩徊,然后設(shè)置條件,可以斷下 - OD 快捷鍵有哪些谨究?
F7 單步步入
F2 斷點
F8 單步步過
Ctrl+P 補丁
F9 執(zhí)行
Ctrl+F2 重新加載
F3 打開文件
Ctrl+G 打開跳轉(zhuǎn)窗口
Alt+B 查看所有斷點
Ctrl+F9 執(zhí)行到返回
Ctrl+T 設(shè)置條件
Alt+X 退出
Ctrl+A 分析模塊
-/+ 上一步.下一步
Ctrl+S 命令搜索
Ctrl+E 打開編輯窗口
ESC 返回上一步
F4 運行到光標(biāo)處
Alt+E 打開模塊列表
Alt+K 查看調(diào)用棧
Ctrl+F7 自動步進(jìn)
Ctrl+F8 自動步過
Ctrl+ +/- 跳轉(zhuǎn)到上/下一個函數(shù)
Alt+C 打開 CPU 窗口
恩袱; 注釋
Alt+F4 退出 OD
Alt+M 查看內(nèi)存
Alt+L 查看記錄
Ctrl+B 查詢二進(jìn)制數(shù)據(jù)
空格 打開匯編窗口
Ctrl+L 查詢下一條數(shù)據(jù)
Alt+O 調(diào)試設(shè)置
Ctrl+F11 跟蹤記錄
匯編指令
push eax
等價于:
①
sub esp, 4
mov [esp],eax
②
dec esp
dec esp
dec esp
dec esp
mov [esp],eax
VS 函數(shù)
- CheckESP
調(diào)用之前 是 cmp xxx,esp 指令,call 內(nèi)部是 jnz xxx
函數(shù)一般是在函數(shù)結(jié)束時胶哲、call 調(diào)用完之后出現(xiàn) - CheckStackVars
調(diào)用之前 是 lea edx,xxxxx 指令畔塔,call 內(nèi)部是對 0Xcccccccc 進(jìn)行判斷
函數(shù)一般在函數(shù)末尾。
- security_check_cookie
調(diào)用之前是 xor exx, ebp 指令纪吮,call 內(nèi)部是對參數(shù)與安全 cookie 進(jìn)行判斷俩檬。
IDA 中轉(zhuǎn)換數(shù)據(jù)為浮點數(shù)
源碼到 main 函數(shù)流程