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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

9、o picture you say a j8patchpatchpatch也就是我們平時(shí)所說(shuō)的補(bǔ)丁。所謂給程序打補(bǔ)丁就是我們對(duì)程序破解所進(jìn)行的修改,就是說(shuō)像我們衣服破了,如果沒有打補(bǔ)丁,就會(huì)走光的意思。OllyDBG的“/”可以查看所有打過(guò)的補(bǔ)丁。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這個(gè)API函數(shù)用于獲取程序的Ima

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論