使用ollydbg從零開(kāi)始cracking第二十一章-反調(diào)試之檢測(cè)od進(jìn)程,窗口類(lèi)名_第1頁(yè)
使用ollydbg從零開(kāi)始cracking第二十一章-反調(diào)試之檢測(cè)od進(jìn)程,窗口類(lèi)名_第2頁(yè)
使用ollydbg從零開(kāi)始cracking第二十一章-反調(diào)試之檢測(cè)od進(jìn)程,窗口類(lèi)名_第3頁(yè)
使用ollydbg從零開(kāi)始cracking第二十一章-反調(diào)試之檢測(cè)od進(jìn)程,窗口類(lèi)名_第4頁(yè)
使用ollydbg從零開(kāi)始cracking第二十一章-反調(diào)試之檢測(cè)od進(jìn)程,窗口類(lèi)名_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二十一章-OllyDbgOD進(jìn)程名,窗口類(lèi)名,本章我們繼續(xù)討論反調(diào)試,將我修改過(guò)的一個(gè)CrackMe該CrackMe的名字叫做buggers,OllyDbgAPI函數(shù),同時(shí)該CrackMe也涵蓋OllyDbg窗口標(biāo)題名以及窗口類(lèi)名等知識(shí)點(diǎn)。我們打開(kāi)原始的OllyDbg程序,不使用重命名的,因?yàn)楸菊聦?duì)上一章的檢測(cè)OD的方法進(jìn)行延伸,因此讓OD的文件名OD加載該CrackMe,HideDebugger123IsDebuggerPersentHideDebugger插件的配置如下IsDebuggerPresentODOllyDbg.exe,然后打開(kāi)任務(wù)管理器,的進(jìn)程名為好了,我們回到buggers3,API我的天啦!API列表中居然只是唯一的一個(gè)函數(shù)ExitProcess,其他API函數(shù)應(yīng)該都是通過(guò)GetProcAddress加載的但是我們?cè)囋囋诿顧谥休斎隻pGetProcAddress,斷在了GetProcAddress函數(shù)的處,程序調(diào)用GetProcAddress加載一些API函數(shù),如果我們對(duì)哪些API函數(shù)感,我們可以執(zhí)行到返回,就知道了該函數(shù)的地址了,然后使用bpEAX斷這個(gè)函數(shù),因?yàn)镋AX中保存了GetProcAddress獲取到的函數(shù)地址。這個(gè)函數(shù)我們不感,我直接按F9鍵運(yùn)行起來(lái)運(yùn)行幾次后,API函數(shù)CreateToolhelp32Snapshot,你可能會(huì)問(wèn),你是怎么知道的,因?yàn)槲抑肋@種檢測(cè)方法,所以我介紹它,APIOD。好了,Debug-Executetillreturn現(xiàn)在我們到了RET指令處,并且EAX保存了CreateToolhelp32SnapShot的函數(shù)地址,我們使用BPEAXAPI我們繼續(xù)運(yùn)行,API恩,OpenProcess這個(gè)函數(shù)也是一個(gè)可疑函數(shù),其可以獲取進(jìn)程的句柄(我們上一章節(jié)已經(jīng)討論過(guò)了),我們執(zhí)行到返回,接著使用BPEAX給該函數(shù)設(shè)置斷點(diǎn)。嘿嘿,Process32First又一個(gè)可疑的API函數(shù),我們同樣執(zhí)行到返回,然后BPEAX給該函數(shù)設(shè)置斷點(diǎn),Process32Next接下來(lái)是TerminateProcessOllyDbgOD進(jìn)程才會(huì)執(zhí)行該函數(shù),所以不必給該函數(shù)設(shè)置斷點(diǎn),但是為了安全起我們繼續(xù)F9鍵運(yùn)行就斷在了CreateToolhelp32SnapShot的處。堆棧情況如下MSDN該函數(shù)是該當(dāng)前機(jī)器上面運(yùn)行的所以進(jìn)程列表創(chuàng)建一個(gè)快照,但是返回給我們的僅僅是該快照的句柄,并且沒(méi)有什么用于保存進(jìn)程列表的緩沖區(qū)之類(lèi)的參數(shù)我們直接執(zhí)行到返回。EAX我們單擊上面H按鈕打開(kāi)句柄列表窗口2C這個(gè)句柄值,不過(guò)還好,我們成功了創(chuàng)建了進(jìn)程快照并獲取到了進(jìn)程快照的句柄,我們運(yùn)行起來(lái),看斷在了Process32First這個(gè)API函數(shù)的處,該函數(shù)配合Process32Next這個(gè)API函數(shù)可以進(jìn)程快照中所有正在運(yùn)行的進(jìn)程好了,MSDN這個(gè)函數(shù)僅僅是用來(lái)獲取第一個(gè)進(jìn)程的信息的,Process32Next我們?cè)跀?shù)據(jù)窗口中轉(zhuǎn)到PROCESSENTRY32結(jié)構(gòu)體的首地址處,我們可以看到第一個(gè)進(jìn)程的名稱(chēng),SystemProcess,嘿嘿,這里調(diào)用了FindWindowA,OllyDbg的窗口標(biāo)題名和窗口類(lèi)名是同名的,所以FindWindowA我們可以使用一個(gè)實(shí)用的小工具WinDowse來(lái)獲取窗口類(lèi)名(VC自帶的SPY++也可以

^*)OllyDbgWinDowse這款工具獲取的信息更加詳細(xì)一些,我們安裝這我們可以看到Window頁(yè)中顯示了OllyDbg的窗口標(biāo)題名并且Class頁(yè)中顯示其窗口類(lèi)名我們可以看到FindWindowA返回的是指定窗口的句柄,通過(guò)該窗口句柄,大家沒(méi)有必要同時(shí)設(shè)置窗口類(lèi)名和窗口標(biāo)題名,你只需要任選擇其一,NULL好了,現(xiàn)在我們執(zhí)行到返回,OD恩,正如我們所看到的,返回的窗口句柄值跟WinDowse上面顯示的窗口句柄值一致。好吧,我們繼續(xù)跟,OD的窗口句柄會(huì)干些什么。這里判斷獲取到的窗口句柄是否為空,如果窗口句柄為空,說(shuō)明不存在OllyDbg窗口,如果返回的窗口句柄非空,ExitProcess所以,我們需要FindWindowAEAX好了,我們現(xiàn)在知道如何手工繞過(guò)該反調(diào)試了,HideDebugger1.23版插件來(lái)繞過(guò)該反調(diào)試吧,我們來(lái)看看該插件的配我們可以看到第二個(gè)選項(xiàng),FindWindowEnumWindowsOD窗口方法,首先我們還是要知道如何手工繞過(guò)該反調(diào)試以及其原理是什么。好了,我們現(xiàn)在不設(shè)置該選項(xiàng),OD,ExitProcess代碼塊并且繼續(xù)執(zhí)行。我們雙擊零標(biāo)志位Z1,JNZJNZJMP指令跳過(guò)ExitProcess好了,我們繼續(xù),介紹如何繞過(guò)FindWindowA了,OD進(jìn)程名的方法,斷了下來(lái),現(xiàn)在調(diào)用的是Process32Next,獲取進(jìn)程快照中第二個(gè)進(jìn)程的相關(guān)信息,403134指向緩沖現(xiàn)在獲取到的是System進(jìn)程,PID4,lstrcmpAAPI函數(shù),它將“System”與“buggers3.exe”兩個(gè)字符串進(jìn)行比較,該CrackMe名稱(chēng),如果它們相等,MessageBoxA彈出notdebugged!沒(méi)有被調(diào)試的信息。這里,兩者并不相等,所以我們繼續(xù)上面兩個(gè)字符串不相等,所以比較結(jié)果為FFFFFFFF由于結(jié)果不為零,40119F這里,到了比較關(guān)鍵的地方了,OLLYDBG.EXE,如果是,JNZ條件跳轉(zhuǎn)將不會(huì)實(shí)現(xiàn),將會(huì)OpenProcessOD進(jìn)程的句柄,TerminateProcessOD進(jìn)程。跟上一章我們遇到的情況差不多。smss.exe進(jìn)程的PID,620,26C。恩,接下來(lái)該CrackMeOLLYDBG.EXE。的代碼,因此,我們需要將該JNZ指令修改為JMP指令,讓關(guān)閉OD的代碼得不到執(zhí)行好了,HideDebuggerFindWindowAOD窗口的檢測(cè),并且我們也可以將OLLYDBG.EXE重命名為PIRULO.EXEOLLYDBG這個(gè)進(jìn)程名。我們打開(kāi)PIRULO.EXE我們勾選上繞過(guò)FindWindow的選項(xiàng),我們加載buggers3之前,先來(lái)解決一個(gè)小問(wèn)題,WinDowse,WinDowseODOLLYDBG并沒(méi)有出現(xiàn)在標(biāo)題欄中,那OD的窗口類(lèi)名呢repair0.6,OLLYDBG的

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論