天天看點

OllyDebug使用1

Ollydebug界面上有四個視窗,分别是

1、反彙編視窗:位址,機器碼,反彙編代碼,注釋

2、寄存器視窗

3、資料視窗

4、堆棧視窗

L:log M:memory  W:window H:Handle C:cpu K:堆棧

調試:

F2設定删除斷點

F7,類似VC中的F10,進入代碼

F8:類似F11

F9:運作調試程式,直到斷點處

寄存器:

ESP:指向堆棧最頂端的位址

EIP:指向目前将要執行的指令

(可以通過右鍵modify修改這個值,然後在commanderbar中顯示AL AH BX等)

标志寄存器:

O:溢出标志,可以在反彙編視窗右鍵assemble修改指令,在寄存器視窗修改寄存器的值。

A:輔助進位标志

P:奇偶标志,1的總數為偶數,p置位0。eg;1100,1010,此時p為0。

Z:零标志,當結果為0時,被置位。為1

S:符号标志,當運算結果為負,設定成1

C:進位标志,無符号進位

PUSHAD指令把所有通用寄存器的内容按一定順序壓入到堆棧中,PUSHAD也就相當于

’PUSH EAX,PUSH ECX,PUSH EDX,PUSH EBX,PUSH ESP,PUSH EBP,PUSH ESI, PUSH EDI’。

POPAD

該指令與PUSHAD正好相反,它從堆棧中取值,并将它們放到相應的寄存器中。

POPAD等價于“POP EDI,POP ESI,POP ESP,POP ESP,POP EBX,POP EDX,POP ECX,POP EAX”。

PUSHAD-POPAD指令經常被使用,例如:某個時刻你需要儲存所有寄存器的内容,然後修改寄存器的值,或者進行堆棧的相關操作,然後使用POPAD恢複它們原來的狀态。

OD