程序調(diào)試?yán)鱋llydbg使用教程
大?。?/span>0.3 MB 人氣: 2017-10-09 需要積分:1
標(biāo)簽:ollydbg(1861)
?? 一、基礎(chǔ)知識1.1、Ollydbg
Ollydbg(簡稱OD)是Windows平臺下Ring3級的程序調(diào)試?yán)?。程序調(diào)試有靜態(tài)調(diào)試和動態(tài)調(diào)試兩種。靜態(tài)調(diào)試是指將程序源代碼編譯成可執(zhí)行程序之前,用手工或編譯程序等方法對程序源代碼進(jìn)行測試,來查找和修正程序中的語法錯誤和邏輯錯誤。動態(tài)調(diào)試則是在可執(zhí)行程序的運行過程中,來查找和修正程序中的語法錯誤和邏輯錯誤。隨著系統(tǒng)安全與逆向工程的不斷發(fā)展,程序調(diào)試已經(jīng)成為信息安全愛好者所必備的一種技術(shù)。OD結(jié)合了靜態(tài)調(diào)試和動態(tài)調(diào)試的方法,功能強(qiáng)大,已經(jīng)成為了Windows平臺下普通應(yīng)用程序的調(diào)試?yán)鳌?br /> 1.2、PE文件
PE文件的全稱是Portable Executable,意為可移植的可執(zhí)行的文件,常見的EXE、DLL、OCX、SYS、COM都是PE文件
1.3、寄存器
EAX 是”累加器”(accumulator), 它是很多加法乘法指令的缺省寄存器。
EBX 是”基地址”(base)寄存器, 在內(nèi)存尋址時存放基地址。
ECX 是計數(shù)器(counter), 是重復(fù)(REP)前綴指令和LOOP指令的內(nèi)定計數(shù)器。
EDX 則總是被用來放整數(shù)除法產(chǎn)生的余數(shù)。
ESI/EDI分別叫做”源/目標(biāo)索引寄存器”(source/destination index),因為在很多字符串操作指令中, DS:ESI指向源串,而ES:EDI指向目標(biāo)串。
EBP是”基址指針”(BASE POINTER), 它最經(jīng)常被用作高級語言函數(shù)調(diào)用的”框架指針”(frame pointer)。
二、OD的各個窗口
2.1、反匯編窗口
地址欄[Address] - 顯示距雙擊地址處的相對地址。再次雙擊基地址,則恢復(fù)為標(biāo)準(zhǔn)地址顯示模式; 十六進(jìn)制數(shù)據(jù)欄[Hex dump] - 設(shè)置或取消非條件斷點; 反匯編欄[Disassembly] - 調(diào)用匯編器,修改命令; 注釋欄[Comment] - 增加或修改與命令相關(guān)的注釋。
2.2、信息窗口
用于解碼反匯編窗口中選中的第一個命令的參數(shù),信息窗口也會顯示隱含的參數(shù)。
2.3、數(shù)據(jù)窗口
用于顯示內(nèi)存或文件的內(nèi)容??梢詮囊韵骂A(yù)處理格式中選擇一種顯示方式:字節(jié)[byte]、文本[text]、整數(shù)[integer]、浮點數(shù)[float]、地址[address],反匯編[disassembly]、PE頭[PE Header]。
2.4、寄存器窗口
用于顯示和解釋當(dāng)前所選線程的CPU寄存器中的內(nèi)容。該窗口同樣允許修改寄存器,并可以跟進(jìn)地址到其它CPU窗口。
2.5、堆棧窗口
用于顯示當(dāng)前線程的堆棧。當(dāng)被調(diào)試程序暫停運行時,堆棧窗口一般會自動滾動將當(dāng)前ESP指向的地址放在窗口的第一條。并且這個地址被高亮顯示。在某些情況下禁止?jié)L動會更方便一些,可以通過在堆棧窗口右鍵單擊[鎖定堆棧]來禁止堆棧自動滾動。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%