9.OD-断点、命令
生活随笔
收集整理的這篇文章主要介紹了
9.OD-断点、命令
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
BP
表達式
?[,
條件
]
在指定地址設置
?INT3
斷點
?BP EAX+10BP 410010, EAX==WM_CLOSEBP Kernel32.GetProcAddress
BPX? 標簽 在當前模塊每一個對外部標簽的調用設置斷點 ?BPX CreateFileA
BC? 表達式 刪除指定地址的斷點 ?BC 410010
MR? 表達式 1 [, 表達式 2] 設置指定范圍的內存訪問斷點 ?
MW? 表達式 1 [, 表達式 2] 設置指定范圍的內存寫斷點 Set?
MD? 移除內存斷點 ?
HR? 表達式 設置 1 字節的硬斷點,當訪問該地址時中斷 ?
HW? 表達式 設置 1 字節的硬斷點,當寫該地址時中斷 ?
HE? 表達式 設置硬斷點,當執行該地址時中斷 ?
HD [ 表達式 ] 移除指定地址處的硬斷點
附內存中斷小結:
OD中內存斷點小結
內存,小結,斷點
[cpp]?view plaincopy 0040EE67??????90?????????????????nop??????????????????????????????//假設此處為EIP??? 0040EE68??????90?????????????????nop?? 0040EE69??????90?????????????????nop?? 0040EE6A??????A0?C4FF1200????????mov?????al,?byte?ptr?[12FFC4]?? 0040EE6F??????90?????????????????nop?? 0040EE70?>????90?????????????????nop?? 0040EE71??????90?????????????????nop?? 0040EE72??????90?????????????????nop?? 0040EE73??????90?????????????????nop?? 0040EE74??????90?????????????????nop?? 0040EE75??????C605?C5FF1200?11???mov?????byte?ptr?[12FFC5],?11?? 0040EE7C??????90?????????????????nop?? 0040EE7D??????90?????????????????nop?? 0040EE7E??????90????
12FFC4 11 11
1. 內存訪問斷點 設置 12FFC4 一個字節為內存訪問斷點 ?F9 運行程序 ?OD 會停在 0040EE6A
原理: OD 會設置 12FFC4 地址訪問權限為不可讀 大小為一字節 ? ? 任何試圖讀取該地址的操作 都會引發異常 ?OD 會捕獲這個異常 并等待用戶處理 現象就是 運行到 ?mov? ???al, byte ptr [12FFC4] 當指令試圖讀取該地址內容 并給 AL 賦值的時候 ?OD 斷了下來 ?
2. 硬件訪問斷點 設置 12FFC4 一個字節為硬件訪問斷點 ?F9 運行程序 ?OD 會停在 0040EE6F
原理: OD 會設置調試寄存器 ?DR0-DR3? 其中一個為 12FFC4 并設置 DR7 相關標記 這個實現依靠 CPU 特性 當設置了改地址為硬件訪問斷點后 任何試圖訪問該地址的操作 都會引發異常 ?OD 會捕獲這個異常 并等待用戶處理 現象就是 運行到 ?mov? ???al, byte ptr [12FFC4] 當指令試圖讀取該地址內容 并給 AL 賦值的時候 ?OD 斷了下來 ?
3. 內存寫入斷點 設置 12FFC5 一個字節為內存寫入斷點 ?F9 運行程序 ?OD 會停在 0040EE75
原理: OD 會設置 12FFC5 地址訪問權限為不可寫 大小為一字節 ? ? 任何試圖寫入該地址的操作 都會引發異常 ?OD 會捕獲這個異常 并等待用戶處理 ?? 現象就是 運行到 ?mov? ???byte ptr [12FFC5], 11 當指令試圖寫入該地址內容 ??OD 斷了下來
4. 硬件寫入斷點 設置 12FFC5 一個字節為硬件寫入斷點 ?F9 運行程序 ?OD 會停在 0040EE7C
原理: OD 會設置調試寄存器 ?DR0-DR3? 其中一個為 12FFC5 并設置 DR7 相關標記 這個實現依靠 CPU 特性 當設置了改地址為硬件訪問寫入后 任何試圖寫入該地址的操作 都會引發異常 ?OD 會捕獲這個異常 并等待用戶處理 現象就是 運行到 ?mov? ???byte ptr [12FFC5], 11 當指令試圖寫入該地址的時候 ?OD 斷了下來 ?
至于內存斷點斷在當前指令 硬件斷點斷在當前指令的下一條 取決于 OD 的實現
BPX? 標簽 在當前模塊每一個對外部標簽的調用設置斷點 ?BPX CreateFileA
BC? 表達式 刪除指定地址的斷點 ?BC 410010
MR? 表達式 1 [, 表達式 2] 設置指定范圍的內存訪問斷點 ?
MW? 表達式 1 [, 表達式 2] 設置指定范圍的內存寫斷點 Set?
MD? 移除內存斷點 ?
HR? 表達式 設置 1 字節的硬斷點,當訪問該地址時中斷 ?
HW? 表達式 設置 1 字節的硬斷點,當寫該地址時中斷 ?
HE? 表達式 設置硬斷點,當執行該地址時中斷 ?
HD [ 表達式 ] 移除指定地址處的硬斷點
附內存中斷小結:
OD中內存斷點小結
內存,小結,斷點
[cpp]?view plaincopy
12FFC4 11 11
1. 內存訪問斷點 設置 12FFC4 一個字節為內存訪問斷點 ?F9 運行程序 ?OD 會停在 0040EE6A
原理: OD 會設置 12FFC4 地址訪問權限為不可讀 大小為一字節 ? ? 任何試圖讀取該地址的操作 都會引發異常 ?OD 會捕獲這個異常 并等待用戶處理 現象就是 運行到 ?mov? ???al, byte ptr [12FFC4] 當指令試圖讀取該地址內容 并給 AL 賦值的時候 ?OD 斷了下來 ?
2. 硬件訪問斷點 設置 12FFC4 一個字節為硬件訪問斷點 ?F9 運行程序 ?OD 會停在 0040EE6F
原理: OD 會設置調試寄存器 ?DR0-DR3? 其中一個為 12FFC4 并設置 DR7 相關標記 這個實現依靠 CPU 特性 當設置了改地址為硬件訪問斷點后 任何試圖訪問該地址的操作 都會引發異常 ?OD 會捕獲這個異常 并等待用戶處理 現象就是 運行到 ?mov? ???al, byte ptr [12FFC4] 當指令試圖讀取該地址內容 并給 AL 賦值的時候 ?OD 斷了下來 ?
3. 內存寫入斷點 設置 12FFC5 一個字節為內存寫入斷點 ?F9 運行程序 ?OD 會停在 0040EE75
原理: OD 會設置 12FFC5 地址訪問權限為不可寫 大小為一字節 ? ? 任何試圖寫入該地址的操作 都會引發異常 ?OD 會捕獲這個異常 并等待用戶處理 ?? 現象就是 運行到 ?mov? ???byte ptr [12FFC5], 11 當指令試圖寫入該地址內容 ??OD 斷了下來
4. 硬件寫入斷點 設置 12FFC5 一個字節為硬件寫入斷點 ?F9 運行程序 ?OD 會停在 0040EE7C
原理: OD 會設置調試寄存器 ?DR0-DR3? 其中一個為 12FFC5 并設置 DR7 相關標記 這個實現依靠 CPU 特性 當設置了改地址為硬件訪問寫入后 任何試圖寫入該地址的操作 都會引發異常 ?OD 會捕獲這個異常 并等待用戶處理 現象就是 運行到 ?mov? ???byte ptr [12FFC5], 11 當指令試圖寫入該地址的時候 ?OD 斷了下來 ?
至于內存斷點斷在當前指令 硬件斷點斷在當前指令的下一條 取決于 OD 的實現
總結
以上是生活随笔為你收集整理的9.OD-断点、命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8.OD--函数参考
- 下一篇: 10.OD-强制在OEP前加载dll