OllyDBG使用說(shuō)明
一、基礎(chǔ)知識(shí)
1.1、基礎(chǔ)使用
該軟件是Windows平臺(tái)下Ring3級(jí)的程序調(diào)試?yán)?。程序調(diào)試有靜態(tài)調(diào)試和動(dòng)態(tài)調(diào)試兩種。靜態(tài)調(diào)試是指將程序源代碼編譯成可執(zhí)行程序之前,用手工或編譯程序等方法對(duì)程序源代碼進(jìn)行測(cè)試,來(lái)查找和修正程序中的語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤。動(dòng)態(tài)調(diào)試則是在可執(zhí)行程序的運(yùn)行過(guò)程中,來(lái)查找和修正程序中的語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤。隨著系統(tǒng)安全與逆向工程的不斷發(fā)展,程序調(diào)試已經(jīng)成為信息安全愛(ài)好者所必備的一種技術(shù)。OD結(jié)合了靜態(tài)調(diào)試和動(dòng)態(tài)調(diào)試的方法,功能強(qiáng)大,已經(jīng)成為了Windows平臺(tái)下普通應(yīng)用程序的調(diào)試?yán)鳌?
1.2、PE文件
PE文件的全稱是Portable Executable,意為可移植的可執(zhí)行的文件,常見(jiàn)的EXE、DLL、OCX、SYS、COM都是PE文件
1.3、寄存器
EAX 是”累加器”(accumulator), 它是很多加法乘法指令的缺省寄存器。
EBX 是”基地址”(base)寄存器, 在內(nèi)存尋址時(shí)存放基地址。
ECX 是計(jì)數(shù)器(counter), 是重復(fù)(REP)前綴指令和LOOP指令的內(nèi)定計(jì)數(shù)器。
EDX 則總是被用來(lái)放整數(shù)除法產(chǎn)生的余數(shù)。
ESI/EDI分別叫做”源/目標(biāo)索引寄存器”(source/destination index),因?yàn)樵诤芏嘧址僮髦噶钪? DS:ESI指向源串,而ES:EDI指向目標(biāo)串。
EBP是”基址指針”(BASE POINTER), 它最經(jīng)常被用作高級(jí)語(yǔ)言函數(shù)調(diào)用的”框架指針”(frame pointer)。
二、OD的各個(gè)窗口

2.1、反匯編窗口

2.2、信息窗口

2.3、數(shù)據(jù)窗口
用于顯示內(nèi)存或文件的內(nèi)容。可以從以下預(yù)處理格式中選擇一種顯示方式:字節(jié)[byte]、文本[text]、整數(shù)[integer]、浮點(diǎn)數(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)行時(shí),堆棧窗口一般會(huì)自動(dòng)滾動(dòng)將當(dāng)前ESP指向的地址放在窗口的第一條。并且這個(gè)地址被高亮顯示。在某些情況下禁止?jié)L動(dòng)會(huì)更方便一些,可以通過(guò)在堆棧窗口右鍵單擊[鎖定堆棧]來(lái)禁止堆棧自動(dòng)滾動(dòng)。
2.6、其他窗口

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