OllyDBG使用說明
一、基礎(chǔ)知識
1.1、基礎(chǔ)使用
該軟件是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í)行程序的運(yùn)行過程中,來查找和修正程序中的語法錯誤和邏輯錯誤。隨著系統(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)鳌?
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、反匯編窗口
2.2、信息窗口
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)試程序暫停運(yùn)行時,堆棧窗口一般會自動滾動將當(dāng)前ESP指向的地址放在窗口的第一條。并且這個地址被高亮顯示。在某些情況下禁止?jié)L動會更方便一些,可以通過在堆棧窗口右鍵單擊[鎖定堆棧]來禁止堆棧自動滾動。
2.6、其他窗口
L -> 日志窗口
E -> 顯示程序運(yùn)行使用的模塊
M -> 顯示我們程序映射到內(nèi)存的信息
T -> 顯示程序的線程窗口
W -> Windows顯示程序窗口
H -> 句柄窗口
C -> 回到主窗口,CPU窗口
P -> 如果程序經(jīng)過了修改,這里顯示修改的信息
K -> 顯示調(diào)用堆棧的窗口信息
B -> 顯示程序普通斷點的列表窗口
R -> Reference 參考窗口,顯示我們在軟件中搜索的結(jié)果。
… -> 顯示 RUN TRACE(RUN 跟蹤)命令的結(jié)果
OllyDBG軟件功能
1、多語言圖形用戶界面
2、支持AVS指令
3、調(diào)用堆棧窗口
4、SEH和VEH鏈條
5、多字節(jié)字符轉(zhuǎn)儲
6、在轉(zhuǎn)儲中搜索整數(shù)和浮點數(shù)
7、使用int1、hlt、cli、sti或insb而不是int3的軟件斷點
8、對ntfs流的有限支持
9、支持重復(fù)計數(shù)
10、立即數(shù)據(jù)語句的匯編(db xx等)
11、突出顯示運(yùn)行中跟蹤
12、更復(fù)雜的代碼序列
13、顯示可用內(nèi)存。
OllyDBG軟件特色
配置:有多達(dá)百余個選項用來設(shè)置 OllyDbg 的外觀和運(yùn)行。
完全支持Unicode:幾乎所有支持 ASCⅡ 的操作同時也支持 UNICODE,反之亦然。
調(diào)試DLLs:您可以利用OllyDbg調(diào)試標(biāo)準(zhǔn)動態(tài)鏈接庫(DLLs)。OllyDbg 會自動運(yùn)行一個可執(zhí)行程序。這個程序會加載鏈接庫,并允許您調(diào)用鏈接庫的輸出函數(shù)。
源碼級調(diào)試:OllyDbg 可以識別所有 Borland 和 Microsoft 格式的調(diào)試信息。這些信息包括源代碼、函數(shù)名、標(biāo)簽、全局變量、靜態(tài)變量。有限度的支持動態(tài)(棧)變量和結(jié)構(gòu)。
數(shù)據(jù)格式:OllyDbg 的數(shù)據(jù)窗口能夠顯示的所有數(shù)據(jù)格式:HEX、ASCII、UNICODE、 16/32位有/無符號/HEX整數(shù)、32/64/80位浮點數(shù)、地址、反匯編(MASM、IDEAL或是HLA)、PE文件頭或線程數(shù)據(jù)塊。
啟動:您可以采用命令行的形式指定可執(zhí)行文件、也可以從菜單中選擇,或直接拖放到OllyDbg中,或者重新啟動上一個被調(diào)試程序,或是掛接[Attach]一個正在運(yùn)行的程序。OllyDbg支持即時調(diào)試。OllyDbg根本不需要安裝,可直接在軟盤中運(yùn)行。
OllyDBG更新日志
1.修復(fù)部分bug
2.優(yōu)化了部分功能
華軍小編推薦:
當(dāng)然我們?nèi)A軍軟件園除了OllyDBG這樣一款非常方便的編程工具軟件,還有AlphaEbot動作編輯軟件、河小象編程客戶端、自動化測試工具AutoRunner、Easy GUI、小海龜LOGO語言等相關(guān)軟件提供下載,有需要的小伙伴請點擊下載使用。




















您的評論需要經(jīng)過審核才能顯示
有用
有用
有用