国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 邏輯算法 > 正文

OllyDbg實用技巧六則

2019-09-10 09:02:32
字體:
來源:轉載
供稿:網(wǎng)友

 
OllyDbg實用技巧六則
dOSKEY lEE
關鍵詞: OllyDbg、OD、技巧

1、讓跳轉路徑顯示出來
打開Options/Debugging Option。彈出Debugging Option對話框,選擇CPU頁,選定
“Show direction to jumps”、“Show jump path”和“Show grayed path if jump is
not taken”。如此以來在Disassembler窗口就會顯示跳轉的路徑了。

2、讓OD顯示MFC42.DLL中的函數(shù)
如果程序是用MFC進行的動態(tài)編譯,那么在OD中將只能顯示MFC42.DLL中的函數(shù)為:
00410E40 |. E8 43000000 CALL <JMP.&MFC42.#1576>
1576是函數(shù)在MFC42.DLL中的序號。打開Debug/Select import libraries,單擊彈出的對話
框中“Add”,在彈出的打開文件對話框中選擇“MFC42.LIB”并打開,重新載入MFC程序,
你就可以看見函數(shù)名稱變?yōu)椋?
00410E40 |. E8 43000000 CALL <JMP.&MFC42.#1576_?AfxWinMain@@Y>
IDA中分析出了來的東西一樣了!呵呵,以后不用等待IDA的“細嚼慢咽”也可以輕松搞定
MFC程序了。其他的DLL類似,如果有序號,可以在VC的LIB目錄中找到相關的.LIB文件,加
到OD中便可。如果你沒有“MFC42.DLL”,你可以的到新論壇下載區(qū)找,我已經上傳到那
里了。

3、讓OD輕松躲過“ANTI-DEBUG”
很多“ANTI-DEBUG”的程序都是在程序開始時來檢查是否安裝調試器的。用這種特性我
們可以輕松的用OD的“Attach”繞過檢查部分。如“X語言”,如果你喲內TRW2K/S-ICE/OD
直接加載它的話,程序回警告你安裝了調試器并結束。但是我們在“X語言”開啟后再運行
OD,并用“Attach”系上它就就可以了,輕松通過檢查。而且在OD系上它后仍然可以用
CTRL+A進行分析。如此一來,快哉!:)

4、輕松對付調用“MessageBoxA”以及類似的模態(tài)對話框的程序
很多人都認為OD不好攔截“MessageBoxA”這類API函數(shù)。其實我們有個很簡單的辦法將
API攔截下來,并且快速找到比較地點/主算法地點。首先用OD加載目標程序,如果不能加載,
用上面的方法“Attach”目標程序。然后,F(xiàn)9運行目標程序,并且有意讓目標程序顯示“
MessageBox”,然后切換到OD中,F(xiàn)12暫停,如
0041201F |> 53 PUSH EBX ; /Style
00412020 |. 57 PUSH EDI ; |Title
00412021 |. FF75 08 PUSH [ARG.1] ; |Text
00412024 |. FF75 F4 PUSH [LOCAL.3] ; |hOwner
00412027 |. FF15 A8534100 CALL DWORD PTR DS:[4153A8] ; /MessageBoxA
0041202D |. 85F6 TEST ESI ESI ; 停在此處
0041202F |. 8BF8 MOV EDI EAX
00412031 |. 74 05 JE SHORT 1551-CRA.00412038
F8單步一下,切換到“MessageBox”中,確認,被OD中斷。我們可以看見上面的代碼41201F
處有一個“〉”,說明可以從某段代碼跳轉到此處,我們選擇41201F這一行,在
“Information”欄看見一句“JUMP FROM 412003”,右鍵單擊,選擇“GO TO JUMP FROM
412003”。回到412003,一般都是條件跳轉,上面的內容就是比較的地方啦。:)

5、使用OD的TRACK功能
OD擁有強大的TRACK功能,在分析算法時十分有用。首先我們要設定OD的TRACK緩沖區(qū)大
小,選擇Option/Debugging Option,在彈出的對話框中選擇TRACK頁,
“Size of run track buffer(byte/record)”,緩沖區(qū)大小,當然約大約好。其他的設置
在我以前的OLLYDBG.INI中都已經設置好了。然后,開啟目標程序,在DEBUG中選擇“Open
or clear run track”。然后我們就可以用CTRL+F11或CTRL+F12開啟“Track into”和“
Track over”了。當我們暫停程序的時候,可以用小鍵盤上的“+”,“-”,“*”來控制
TRACK功能了。
“Track into”和運行類似,但是記錄所有指令以及寄存器變化。并且會自動進入所有的
CALL中。
“Track over”和“Track into”類似,但是不進入CALL
“+”用來顯示TRACK緩沖區(qū)中的下一條指令
“-”用來顯示TRACK緩沖區(qū)中的上一條指令
“*”用來發(fā)返回當前指令

6、不是技巧的技巧
當你遇到花指令的時候一定會很頭痛。但是如果你用OD進行分析的時候就會輕松得多。
OD會自動標識出無效指令,即花指令。如果OD沒有正確識別,你還可以用CTRL+↑/↓來單個
字節(jié)的移動。可以很有效的識別出花指令的所在。

后記
本人腦袋不太好使,一時記不起所有內容,以后想起來再貼。轉貼時請保持本文的完整。

(編輯:天命孤獨)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 炎陵县| 克东县| 同德县| 平江县| 博罗县| 文水县| 青阳县| 富锦市| 吴江市| 丰县| 博湖县| 长白| 屏山县| 洪湖市| 松阳县| 克拉玛依市| 鄱阳县| 万宁市| 江陵县| 奈曼旗| 衡东县| 铜梁县| 皮山县| 黄平县| 荥阳市| 广安市| 连山| 云阳县| 阿合奇县| 南投县| 古丈县| 涞源县| 赤城县| 珠海市| 大荔县| 武功县| 永兴县| 平山县| 韶山市| 闵行区| 阳高县|