首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

組合語言 DEBUG 命令速查:G、D、U、R、T、A、E 完整說明

     編輯:程式設計疑難解答

DEBUG 常用命令對照表

命令功能範例
R檢視/修改 CPU 暫存器`R AX` 顯示 AX;`R AX=1234` 設定 AX
D顯示記憶體內容`D 1000:0` 顯示 1000:0 起 128 位元組
E修改記憶體內容`E 1000:0 48 65 6C 6C 6F` 寫入 "Hello"
U反組譯:機器碼 → 組語`U 1000:0` 或 `U IP` 反組譯當前指令流
T單步執行一條機器指令`T` 執行 CS:IP 指令,自動更新暫存器
A以組語語法寫入機器指令`A 1000:0` 進入輸入模式,輸入 `MOV AX, 1` 等
G執行程式(可設中斷點)`G 1000:10` 從 CS:IP 執行至 1000:10 停下

G 命令對 D/U 的影響

  • G 執行程式,會改變 CS:IP、暫存器、記憶體狀態。
  • D/U 是檢視命令,不改變狀態,但若在 G 執行後再用 D/U,看到的是執行後的新狀態。
  • 若在 G 之前用 D/U 記錄初始狀態,執行 G 後再對比,即可分析程式行為。

實戰流程範例

  1. 啟動 `debug` 進入提示符 `-`。
  2. `A 100` 輸入組語程式(以空行結束)。
  3. `U 100` 確認反組譯正確。
  4. `R` 檢視初始暫存器。
  5. `G 10A` 執行至特定位址停下。
  6. `R`、`D` 檢視結果。

結語

DEBUG 是 16 位元即時模式下的「瑞士刀」。熟練掌握 R/D/E/U/T/A/G 七大命令,即可完成從寫入、執行、單步、檢視到修改的完整逆向/教學循環。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved