天天看點

DEBUG指令的應用

TAG:随筆雜記

下面對一些常用指令進行詳細剖析:

A (Assemble) 彙編指令

1,輸入彙編語句被彙編到記憶體的指定區段,此區段在開始時用A address 指定.

2,所有語句輸入完成後,按ENTER鍵傳回

3,完成輸入後,可以用U指令觀看它的機械碼

D (Dump) 顯示指令

1,從指定的位址開始顯示内容,如果沒有指定位址,則從前一個D指令繼續顯示.

2,如果沒指定位址并是第一次,則從DS:100處開始顯示.

G (Go) 轉移指令

1,執行正在調試的程式,當執行到指定的位址時停止,并顯示寄存器樗和下一條要執行的指令

2,G [=address].用于執行正在調試沒有斷點的程式.

3,程式運作結束,

DEBUG

顯示"Porgram terminated normally"

R (Register) 寄存器指令

1,顯示一個寄存器的十六進制内容,并可根據需要改變它們.

2,顯示8個字母的狀态标志,并可根據需要更改它們之中的任一個或全部

U (Unassemble) 反彙編指令

1,對指令進行反彙編,它們的位址和十六進制以類似于彙編語言的語句一起顯示出來.

2,單獨用U指令從CS:100處開始反彙編

3,U指令預設段位址包含CS寄存器中.

技巧應用

1,用

對子目錄加密

DOS在管理檔案目錄時,用32個位元組來儲存根目錄和子目錄的資訊,對子目錄而言,0~10位元組為子目錄域,第11位元組為屬性.我們隻要将子目錄屬性位元組的值從10H改為13H時,子目錄即具有拒絕DIR,TREE等指令的性能.例如:

對A盤的SUBDIK子目錄進行加密:

C:\>

-L 100 0 5 7 (将A盤中目錄讀入記憶體)

-S 100 FFF "SUBDIK" (搜尋子目錄)

-38EB:07c0 (搜尋到的子目錄位址)

-E 07CB (07C)+0B=07CB 為屬性位元組位址)

38EB:07CB 10.13 (修改完成)

-W 100 0 5 7 (目錄寫回A盤中)

-Q (退出)

2,解除BIOS密碼

-O 70 10

-O 71 11

重新啟動,BIOS密碼已被攻破

3,冷啟動實作

RESET.COM

-A 100

JMP FFFF:0000

INT 20

-RCX

00007

-W

-Q

4,熱啟動實作

C:\

BOOT.COM

-A 0100

MOV AX,0040

MOV DS,AX

MOV AX,1234

MOV SI,0072

MOV [SI],AX

JMP FFFF:0

0014

5。備份

mbr