![使用OllyDbg從零開始Cracking 第四十章OllyDbg腳本的編寫_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/2/59b7d142-a876-4b6e-aae6-d66ba5f0fc0d/59b7d142-a876-4b6e-aae6-d66ba5f0fc0d1.gif)
![使用OllyDbg從零開始Cracking 第四十章OllyDbg腳本的編寫_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/2/59b7d142-a876-4b6e-aae6-d66ba5f0fc0d/59b7d142-a876-4b6e-aae6-d66ba5f0fc0d2.gif)
![使用OllyDbg從零開始Cracking 第四十章OllyDbg腳本的編寫_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/2/59b7d142-a876-4b6e-aae6-d66ba5f0fc0d/59b7d142-a876-4b6e-aae6-d66ba5f0fc0d3.gif)
![使用OllyDbg從零開始Cracking 第四十章OllyDbg腳本的編寫_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/2/59b7d142-a876-4b6e-aae6-d66ba5f0fc0d/59b7d142-a876-4b6e-aae6-d66ba5f0fc0d4.gif)
![使用OllyDbg從零開始Cracking 第四十章OllyDbg腳本的編寫_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/2/59b7d142-a876-4b6e-aae6-d66ba5f0fc0d/59b7d142-a876-4b6e-aae6-d66ba5f0fc0d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 第四十章本章在修復(fù)PELock的IAT,AntiDump之前,我們先來討論知識點(diǎn),第一個知識點(diǎn)我們上一章已經(jīng)碰到了,只不過沒有展開講而已,第二個知識點(diǎn)就是如何繞過PELock或者類似軟件對硬件斷點(diǎn)的檢測。知識點(diǎn)1在上一章節(jié)我們遇到過,大家可能沒有在意,大家是否還記得上一章節(jié)中,OD加載目標(biāo)程序以后,直接運(yùn)行起來會彈出一個錯誤框,提示不知道該如何處理xxx處的非法指令。為了解決這個問題,我們需要用到Patched4這個程序(又一個打過補(bǔ)丁的OD),我們將其置于原OD所在的文件夾中,因?yàn)樵鍻D在處理非法指令的時候有個BUG,就算我們勾選上調(diào)試選項(xiàng)中的忽略非法指令異常,當(dāng)OD遇到非法指令的時候還
2、是會彈出一個錯誤框,Patched4這個OD修復(fù)了這個BUG。大家將Patch4這個OD跟原版OD放到同一個文件夾下面,下面我們分析PELock的時候需要用到。好,再來給大家解釋一遍(PS:老外比較細(xì)心,也比較啰嗦,嘿嘿)。原版OD處理非法指令的時候有個BUG,勾選上調(diào)試選項(xiàng)中忽略非法指令異常,加載UnPackMe_PELock1.06,接著運(yùn)行起來。我們可以看到彈出了一個錯誤框,但是我們用Patch4這個OD來加載UnPackMe_PELock1.06的話,就可以完美運(yùn)行。我們來看看日志信息。我們可以看到最后一次異常是一個非法指令異常,現(xiàn)在我們不勾選的忽略非法指令異常選項(xiàng)。這里我們?nèi)サ鬒nv
3、aild or privileged instruction這個選項(xiàng)的對勾,加載UnPackMe_PELock1.06,運(yùn)行起來。斷在了異常處,如果我們按Shift + F9也可以繼續(xù)運(yùn)行下去。也就是原版OD是就算你勾選了忽略非法指令異常這一項(xiàng),OD并沒有自動忽略。如果是僅僅有一個這類異常,我們按一下Shift + F9也沒什么。但是如果目標(biāo)程序會產(chǎn)生200或者300個這樣的異常,難道我們也手工去按Shift + F9不成(PS:連續(xù)按Shift + F9 200多次,那還不得瘋掉哇,哈哈)。我們再次勾選上Invaild or privileged instruction這個選項(xiàng),運(yùn)行起來,再
4、次彈出了錯誤框。下面我們來嘗試修復(fù)OD的這個BUG,再新開一個OD。選擇新的OD主菜單中的File-Attach。定位到彈出錯誤框的OD所在的進(jìn)程。定位到彈出錯誤框OD所在的進(jìn)程,單擊Attach(附加)。斷在了這里,我們運(yùn)行起來。接著我們來看一下區(qū)段列表窗口。現(xiàn)在我們可以看到OllyDbg的各個區(qū)段情況,接下來我們給MessageBoxA這個API函數(shù)設(shè)置一個斷點(diǎn)。由于我們單擊錯誤消息框上面的OK按鈕,就到達(dá)MessageBoxA函數(shù)的RET指令處,我們給該RET指令處也設(shè)置一個斷點(diǎn)。彈出錯誤消息框后,我們單擊Aceptar(OK)按鈕。就會斷在MessageBoxA這個API函數(shù)的返回RE
5、T指令處,我們單擊F7鍵單步。下面我們查看一下字符串列表,看看有沒有消息框提示的錯誤信息字符串。我們看看有沒有字符串里面含有bypass這個單詞。我們可以看到我們要找到字符串在這里,我們在這個字符串上面雙擊。我們可以看到這里有幾處JNZ可以跳過彈出錯誤消息框的代碼,這里我們將435260處的JE修改為JMP 43528D,保存到文件中。接下來我們看看Patched4這個OD該處的代碼是怎么樣的。這里我們可以看到435260處的條件跳轉(zhuǎn)被修改為無條件跳轉(zhuǎn),即修改為了JMP 43528D,這樣就能跳過填出錯誤消息框的代碼。這就是Patched4修復(fù)非法指令這個BUG的原理。大家可以自行給OD打補(bǔ)丁
6、也可以直接用Patched4 這個OD。知識點(diǎn)2就是要給大家演示如何編寫腳本,我們需要用到OllyScript0.92.dll這個插件,將其放到OD的插件目錄下。打開Patched4這個OD。我們可以看到主菜單中出現(xiàn)OllyScript的插件子菜單項(xiàng)。現(xiàn)在我們加載UnPackMe_PELock1.06,下面我們編寫一個簡單的腳本讓該殼無法檢測到我們設(shè)置的硬件斷點(diǎn)。關(guān)于這個插件的使用說明大家可以參考插件文件夾下面的readme.txt。這個腳本的思路很簡單:每次異常觸發(fā)后都會斷在KiUserExceptionDispatcher,接下來就會由操作系統(tǒng)去調(diào)用異常處理函數(shù),這個時候我們設(shè)置硬件斷點(diǎn)可
7、以被檢測到,所以這個腳本要做的就是當(dāng)前斷在KiUserExceptionDispatcher時,清除掉硬件斷點(diǎn),當(dāng)斷在下面的CALL ZwContinue時再將硬件斷點(diǎn)恢復(fù)。由于這是我們要編寫的第一個腳本,所以不會讓大家寫太難的。首先給KiUserExceptionDispatcher和ZwContinue分別設(shè)置斷點(diǎn)?,F(xiàn)在我們開始編寫腳本。一般來說腳本都有一個開始標(biāo)簽:beginning:設(shè)置這個標(biāo)簽可以讓我們方便的JMP beginning,接下來我們來設(shè)置硬件斷點(diǎn),舉個例子:bphws 12ffc4, “r”bphws <BreakPoint HardWare Set> -
8、該命令可以對指定地址設(shè)置硬件斷點(diǎn),這里是對12ffc4設(shè)置硬件斷點(diǎn), “r”表示讀取,”w”表示寫入,”x”表示執(zhí)行。beginning:bphws 12ffc4,“r”work:設(shè)置完硬件斷點(diǎn)以后我們再來添加一個work標(biāo)簽。beginning:bphws 12ffc4,“r”work:eob to_processrun這里的eob,<Execution On BreakPoint>-表示在下次中斷發(fā)生時,跳轉(zhuǎn)到指定標(biāo)簽處,這里該標(biāo)簽是to_process,即當(dāng)程序中斷下來時將跳轉(zhuǎn)到to_process標(biāo)簽處,接下來run命令表示運(yùn)行起來。這里就是關(guān)鍵的部分了,當(dāng)前OD中斷后,我
9、們就需要檢查是否斷在了KiUserExceptionDispatcher入口處,所以我們在to_process標(biāo)簽下面來進(jìn)行檢查。to_process:cmp eip,7C91EAECje to_clearcmp eip,7C91EB03je to_recoverjmp to_final我這里7C91EAEC是KiUserExceptionDispatcher的入口地址,當(dāng)斷在KiUserExceptionDispatcher入口處時,eip為7C91EAEC,所以跳轉(zhuǎn)到to_clear標(biāo)簽處清除硬件斷點(diǎn),接下來當(dāng)斷在CALL ZwContinue指令處時,就跳轉(zhuǎn)到to_recover標(biāo)簽處恢
10、復(fù)硬件斷點(diǎn)。清除內(nèi)存斷點(diǎn)如下:to_clear:bphwc 12ffc4jmp work當(dāng)前跳轉(zhuǎn)到to_clear標(biāo)簽以后,通過bphwc <BreakPoint HardWare Clear>命令刪除12ffc4處的硬件斷點(diǎn),接著跳轉(zhuǎn)到work標(biāo)簽處繼續(xù)運(yùn)行程序。另外一個to_recover標(biāo)簽處是當(dāng)斷在CALL ZwContinue處時重新設(shè)置硬件斷點(diǎn)的。to_recover:jmp beginning接下來就是直接跳轉(zhuǎn)到開頭beginning標(biāo)簽處了,也就是將重新設(shè)置硬件斷點(diǎn)。接下來就是程序斷在硬件斷點(diǎn)處時,也就是jmp final。to_process:cmp eip,7C
11、91EAECje to_clearcmp eip,7C91EB03je to_recoverjmp final最后是:final:MSGYN “是否繼續(xù)?”cmp $RESULT,1je beginningret這里的MSGYN <Message Yes or No>命令會將指定消息,顯示到一個對話框中,這個對話框上面有”是”,”否”按鈕。如果點(diǎn)擊”是”,保留變量$RESULT等于1,否則保留變量$RESULT等于0。如果我們想繼續(xù)的話,就單擊”是”,這樣就會跳轉(zhuǎn)beginning標(biāo)簽處繼續(xù)執(zhí)行腳本,如果我們不想繼續(xù),就單擊”否”,這樣就會直接ret,腳本就執(zhí)行完畢了,OD就會停在
12、硬件斷點(diǎn)處。整個腳本就是這樣的:beginning:bphws 12ffc4,“r”work:eob to_processrunto_process:cmp eip,7C91EAECje to_clearcmp eip,7C91EB03je to_recoverjmp to_finalto_clear:bphwc 12ffc4jmp workto_recover:jmp beginningfinal:MSGYN “是否繼續(xù)?”cmp $RESULT,1je beginningret該腳本的整個執(zhí)行流程,大家可以參考下圖中的解釋,這里我就不再贅述了。我們將上面的腳本保存到一個txt文本中,接著用OD加載UnPackMe_PELock1.06,然后給KiUserExceptionDisp
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省護(hù)士心理彈性和失眠障礙對負(fù)性情緒的影響因素研究
- 獸醫(yī)的申請書
- 基于深度學(xué)習(xí)的虛假評論識別方法研究
- 2025年高速彈力絲加捻機(jī)配件行業(yè)深度研究分析報告
- 中國可視電話行業(yè)發(fā)展趨勢預(yù)測及投資戰(zhàn)略咨詢報告
- 畢業(yè)作品《暗·涌》中“五聲化十二音”技法應(yīng)用研究
- 中國液壓支架行業(yè)市場全景調(diào)研及投資規(guī)劃建議報告
- 柜員專用驗(yàn)鈔機(jī)行業(yè)深度研究報告
- 2025年方型低頻電源變壓器項(xiàng)目投資可行性研究分析報告
- 生態(tài)旅游區(qū)中的多模式交通規(guī)劃
- 學(xué)校小賣部承包合同范文
- 普外腹腔鏡手術(shù)護(hù)理常規(guī)
- 2025年湖南鐵道職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- 2024年全國職業(yè)院校技能大賽(礦井災(zāi)害應(yīng)急救援賽項(xiàng))考試題庫(含答案)
- 《預(yù)制高強(qiáng)混凝土風(fēng)電塔筒生產(chǎn)技術(shù)規(guī)程》文本附編制說明
- 2025年浙江省溫州樂清市融媒體中心招聘4人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年煤礦探放水證考試題庫
- C語言程序設(shè)計 教案
- 農(nóng)業(yè)機(jī)械設(shè)備運(yùn)輸及調(diào)試方案
- 2025新譯林版英語七年級下單詞表
- 海洋工程設(shè)備保溫保冷方案
評論
0/150
提交評論