文章目錄
- 一、CPU窗口
- 1、反匯編窗口
- 2、寄存器窗口
- 3、棧地址窗口
- 4、十六進制數據窗口
- 5、堆棧參數解析窗口
- 二、常用快捷鍵
- 三、字符串檢索功能
- 四、調試功能
- 1、上一步
一、CPU窗口
1、反匯編窗口
2、寄存器窗口
寄存器窗口
用于顯示和解釋當前線程環境下CPU寄存器的各種狀態值和內容,并且讀者可以通過雙擊
這些寄存器組來對其進行動態的調整參數
寄存器 | 描述 |
---|---|
EAX | 通用寄存器,用于存放函數返回值、算術運算結果等。 |
EBX | 通用寄存器,用于存放內存地址或其他通用數據。 |
ECX | 通用寄存器,用于存放函數參數。 |
EDX | 通用寄存器,用于存放內存地址或其他通用數據。 |
ESI | 通用寄存器,用于存放源數據的地址,例如字符串拷貝等操作。 |
EDI | 通用寄存器,用于存放目標數據的地址,例如字符串拷貝等操作。 |
EBP | 基址指針,用于存放當前棧幀的基址。 |
ESP | 堆棧指針,用于存放當前堆棧頂部的地址。 |
EIP | 指令指針,用于存放當前正在執行的指令的地址。 |
EFLAGS | 標志寄存器,用于存放CPU的狀態標志,例如進位標志、零標志、符號標志等。 |
標志寄存器(EFLAGS)是一個16位的寄存器,用于存儲CPU運算的狀態標志,例如進位標志、零標志、符號標志等。下面列出了x86架構CPU中的標志寄存器以及它們的含義:
標志位 | 中文名稱 | 描述 |
---|---|---|
CF | 進位標志 | 當無符號整數加法或減法的結果超出了寄存器的寬度時,該標志位會被設置為1。CF=1表示有進位發生,CF=0表示無進位發生。 |
PF | 奇偶標志 | 當一個操作的結果中有偶數個二進制位為1時,該標志位會被設置為1。PF=1表示結果中有偶數個1,PF=0表示結果中有奇數個1。 |
AF | 調整標志 | 當一個二進制算術操作(例如加法或減法)中低4位產生了進位或借位時,該標志位會被設置為1。AF=1表示有進位或借位發生,AF=0表示無進位或借位發生。 |
ZF | 零標志 | 當一個操作的結果為零時,該標志位會被設置為1。ZF=1表示結果為零,ZF=0表示結果不為零。 |
SF | 符號標志 | 當一個操作的結果為負數時,該標志位會被設置為1。SF=1表示結果為負數,SF=0表示結果為非負數。 |
TF | 陷阱標志 | 該標志位用于單步調試,當TF=1時,CPU會在每個指令執行后暫停并等待調試器的命令。 |
IF | 中斷標志 | 該標志位用于控制CPU是否響應中斷請求。當IF=1時,CPU允許中斷請求;當IF=0時,CPU禁止中斷請求。 |
DF | 方向標志 | 該標志位用于控制字符串操作的方向,當DF=1時,字符串操作是從高地址向低地址進行的;當DF=0時,字符串操作是從低地址向高地址進行的。 |
OF | 溢出標志 | 當有符號整數加法或減法的結果超出了寄存器的寬度時,該標志位會被設置為1。OF=1表示有溢出發生,OF=0表示無溢出發生。 |
3、棧地址窗口
4、十六進制數據窗口
5、堆棧參數解析窗口
二、常用快捷鍵
通過選項快捷鍵來設置快捷鍵,下面是常用快捷鍵
調試控制
F2:開始/停止調試
F3:單步執行
F7:進入函數調用
F8:跳過函數調用
F9:繼續執行
F12:暫停/繼續執行
斷點
F5:添加/刪除斷點
Ctrl + F5:添加/刪除硬件斷點
F6:添加/刪除條件斷點
F9:啟用/禁用斷點
Ctrl + F9:啟用/禁用所有斷點
寄存器
Ctrl + R:打開/關閉寄存器窗口
Ctrl + G:跳轉到指定地址
F2/F4/F6:在寄存器窗口中修改寄存器的值
內存
Ctrl + M:打開/關閉內存窗口
Ctrl + E:打開/關閉表達式窗口
Ctrl + F:查找指定字節序列
Ctrl + Shift + F:查找指定指令序列
Ctrl + D:將內存中的數據以十六進制形式導出到文件中
三、字符串檢索功能
開始調試后,右鍵選擇搜索,再選擇所有模塊,選擇字符串。
就會檢索出所有模塊的字符串,結果如下。
四、調試功能
1、上一步
當運行到消息盒子時,此時事件在等待確認按鈕關閉消息盒子。此時可以不點擊確定關閉消息盒子,可以通過上一步去查看,相關的邏輯判斷代碼。