小甲魚OD知識_第1頁
小甲魚OD知識_第2頁
小甲魚OD知識_第3頁
小甲魚OD知識_第4頁
小甲魚OD知識_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、ODOD基本快捷鍵及功能基本快捷鍵及功能加載目標文件調(diào)試加載目標文件調(diào)試設(shè)置OllyDbg中斷在程序的入口點。名詞注釋 S y s t e m b r e a k p o i n t : 系 統(tǒng) 斷 點 , O l l y D b g 用 C r e a t e P r o c e s s A 加 載DEBUG_ONLY_THIS_PROCESS參數(shù)執(zhí)行,程序運行之后會觸發(fā)一個INT13,在系統(tǒng)空間里。 Entry point of main module:主模塊的入口點,即文件的入口點。 WinMain:程序的WinMain()函數(shù)入口點。加載目標文件調(diào)試加載目標文件調(diào)試1.虛擬地址:一般情

2、況下,同一程序的同一條指令在不同系統(tǒng)環(huán)境下此值相同。2.機器碼:這就是CPU執(zhí)行的機器代碼。3.匯編指令:和機器碼對應(yīng)的程序代碼。調(diào)試技巧總結(jié)調(diào)試技巧總結(jié)1.F2下斷點,Alt+b打開斷點編輯器,可編輯所有下過的斷點,空格鍵可快速切換斷點狀態(tài)。2.當位于某個CALL中,這時想返回到調(diào)用這個CALL的地方時,可以按“Ctrl+F9”快捷鍵執(zhí)行返回功能。這樣OD就會停在遇到的第一個返回命令(如RET、RETF或IRET)。3.如果跟進系統(tǒng)DLL提供的API函數(shù)中,此時想返回到應(yīng)用程序領(lǐng)空里,可以按快捷鍵“Alt+F9”執(zhí)行返回到用戶代碼命令。調(diào)試技巧總結(jié)調(diào)試技巧總結(jié)4.所謂領(lǐng)空,實際上就是指在某一

3、時刻,CPU執(zhí)行的指令所在的某段代碼的所有者。5.如004013F7這類地址一般是可執(zhí)行文件領(lǐng)空,7C8114AB這類大地址一般是系統(tǒng)DLL所在的地址空間。6.程序通常讀取文本框內(nèi)容的字符串用的是以下兩個函數(shù): GetDlgItemTextA(GetDlgItemTextW) GetWindowTextA(GetWindowTextW)調(diào)試技巧總結(jié)調(diào)試技巧總結(jié)7.一般我們要結(jié)合經(jīng)驗通過猜測的方式多嘗試幾遍設(shè)陷阱,找出相關(guān)的函數(shù)。8.按“Ctrl+G”鍵打開跟隨表達式的窗口。9.也可以通過“Ctrl+N”鍵打開應(yīng)用程序的導(dǎo)入表(輸入表),然后查看應(yīng)用程序總共導(dǎo)入了哪些函數(shù)來以此推斷需要在哪里挖坑

4、下陷阱!10.關(guān)于返回值,匯編代碼的返回值約定是存放在eax這個寄存器里邊的,如果32位的eax不夠存放返回值,系統(tǒng)會將返回值放在內(nèi)存某個位置并把該位置的地址放在eax返回。關(guān)于寄存器關(guān)于寄存器寄存器就好比是CPU身上的口袋,方便CPU隨時從里邊拿出需要的東西來使用。今天的程序中我們涉及到九個寄存器: EAX:擴展累加寄存器 EBX:擴展基址寄存器 ECX:擴展計數(shù)寄存器 EDX:擴展數(shù)據(jù)寄存器 ESI:擴展來源寄存器 EDI:擴展目標寄存器關(guān)于寄存器關(guān)于寄存器寄存器就好比是CPU身上的口袋,方便CPU隨時從里邊拿出需要的東西來使用。今天的程序中我們涉及到九個寄存器: EAX:擴展累加寄存器

5、EBX:擴展基址寄存器 ECX:擴展計數(shù)寄存器 EDX:擴展數(shù)據(jù)寄存器 ESI:擴展來源寄存器 EDI:擴展目標寄存器關(guān)于關(guān)于CALLCALL指令指令很多朋友都問過如何“找CALL”,但很遺憾,從沒有朋友問過為什么要“找CALL”。call XXX; 等于 push eip; 然后 jmp XXX;call有以下幾種方式: call 404000h ;直接跳到函數(shù)或過程的地址 call eax ;函數(shù)或過程地址存放在eax call dword ptr eax關(guān)于關(guān)于CALLCALL call dword ptr eax+5 call dword ptr ;執(zhí)行一個系統(tǒng)API關(guān)于關(guān)于movmo

6、v指令指令mov指令格式:mov dest, src這是一個很容易理解的指令,mov指令將src的內(nèi)容拷貝到dest,mov指令總共有以下幾種擴展: movs/movsb/movsw/movsd edi,esi:這些變體按串/字節(jié)/字/雙字為單位將esi寄存器指向的數(shù)據(jù)復(fù)制到edi寄存器指向的空間。 movsx符號位擴展,byte-word,word-dword (擴展后高位全用符號位填充),然后實現(xiàn)mov。 movzx零擴展,byte-word,word-dword(擴展后高位全用0填充),然后實現(xiàn)mov。關(guān)于關(guān)于cmpcmp指令指令cmp指令格式:cmp dest, srccmp指令比較d

7、est和src兩個操作數(shù),并通過比較結(jié)果設(shè)置C/O/Z標志位。cmp指令大概有以下幾種格式: cmp eax, ebx ;如果相等,Z標志位置1,否則0. cmp eax, 404000 ;將eax和404000地址處的dword型數(shù)據(jù)相比較并同上置位。 cmp 404000, eax ;同上。標志位標志位在逆向中,你真正需要關(guān)心的標志位只有三個,也就是cmp指令能修改的那三個:Z/O/C。 Z標志位(0標志),這個標志位是最常用的,運算結(jié)果為0時候,Z標志位置1,否則置0。 O標志位(溢出標志),在運行過程中,如操作數(shù)超出了機器能表示的范圍則稱為溢出,此時OF位置1,否則置0。 C標志位(進

8、位標志),記錄運算時從最高有效位產(chǎn)生的進位值。例如執(zhí)行加法指令時,最高有效位有進位時置1,否則置0。邏輯運算邏輯運算關(guān)于關(guān)于testtest指令指令test指令格式:test dest, src這個指令和and指令一樣,對兩個操作數(shù)進行按位的與運算,唯一不同之處是不將與的結(jié)果保存到dest。即本指令對兩個操作數(shù)的內(nèi)容均不進行修改,僅是在邏輯與操作后,對標志位重新置位。小甲魚很負責任地告訴大家該指令的實戰(zhàn)形態(tài)百分之九十九是醬紫:test eax, eax(如果eax的值為0,則Z標志位置1)關(guān)于條件跳轉(zhuǎn)指令關(guān)于條件跳轉(zhuǎn)指令條件跳轉(zhuǎn)指令,就是根據(jù)各種不同標志位的條件判斷是否成立,條件成立則跳轉(zhuǎn)。N

9、o picture you say a j8patchpatchpatch也就是我們平時所說的補丁。所謂給程序打補丁就是我們對程序破解所進行的修改,就是說像我們衣服破了,如果沒有打補丁,就會走光的意思。OllyDBG的“/”可以查看所有打過的補丁。PEPE文件結(jié)構(gòu)文件結(jié)構(gòu)PE文件結(jié)構(gòu): DOS header DOS stub PE File Header Image Optional Header Section Table Data Directories SectionsNo picture you say a J8小結(jié)小結(jié)GetModuleHandleA這個API函數(shù)用于獲取程序的Ima

10、geBase(基址)這個程序的MessageBox的OwnerHandle(父窗口句柄)為0(NULL),我們可以將這個值改為一個不存在的值,例如1,這樣它就找不到老豆,就不會被顯示出來。名詞注釋: VA(VirtualAddress,虛擬地址) RVA(RelativeVirtualAddress,相對虛擬地址) EP(EntryPoint,程序入口點)關(guān)于關(guān)于SEHSEHSEH(Structured Exception Handling),即結(jié)構(gòu)化異常處理。SEH是Windows操作系統(tǒng)提供的功能,跟開發(fā)工具無關(guān)。Windows程序設(shè)計中最重要的理念就是消息傳遞,事件驅(qū)動。當GUI應(yīng)用程序

11、觸發(fā)一個消息時,系統(tǒng)將把該消息放入消息隊列,然后去查找并調(diào)用窗體的消息處理函數(shù)(CALLBACK),傳遞的參數(shù)當然就是這個消息。關(guān)于關(guān)于SEHSEH我們同樣可以把異常也當作是一種消息,應(yīng)用程序發(fā)生異常時就觸發(fā)了該消息并告知系統(tǒng)。系統(tǒng)接收后同樣會找它的“回調(diào)函數(shù)”,也就是我們的異常處理例程。當然,如果我們在程序中沒有做異常處理的話,系統(tǒng)也不會置之不理,它將彈出我們常見的應(yīng)用程序錯誤框,然后結(jié)束該程序。所以,當我們改變思維方式,以CALLBACK 的思想來看待 SEH,SEH 將不再神秘。VBVB破解的關(guān)鍵破解的關(guān)鍵針對變量:_vbaVarTstEq_vbaVarTstEq_vbaVarTstNe

12、_vbaVarCompEq _vbaVarCompEq _vbaVarCompLe _vbaVarCompLt _vbaVarCompGe _vbaVarCompGt _vbaVarCompNe 針對字符串:_vbaStrCmp_vbaStrCmp_vbaStrComp_vbaStrCompVar_vbaStrLike_vbaStrTextComp_vbaStrTextLikeODOD使用教程使用教程1818創(chuàng)建模態(tài)對話框是由調(diào)用DialogBoxParam 函數(shù)實現(xiàn)的,而創(chuàng)建非模態(tài)對話框是調(diào)用CreateDialogParam函數(shù)實現(xiàn)。它們的原型分別是: HWND DialogBoxParam (HINSTANCE hlnstance, LPCTSTR IpTemplateNa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論