五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動(dòng)態(tài)

Getright 5 手動(dòng)脫殼和重建IAT--第二部分(圖)

發(fā)布日期:2022-01-01 16:53 | 文章來源:gibhub

在本參考教程的第一部分我們學(xué)習(xí)了如何正確地轉(zhuǎn)儲(chǔ)(dump)Getright 5. 現(xiàn)在我們將要去找神奇跳轉(zhuǎn),這樣IAT會(huì)被正確地轉(zhuǎn)儲(chǔ)下來,而不用手工修復(fù)了. 要完成這一點(diǎn),我們需要打敗程序中的一些陷阱, 并使它們即使在檢測(cè)到被執(zhí)行脫殼時(shí)也無所作為.
讓我們開始吧!
第一步:如何找到IAT的起始點(diǎn)和終點(diǎn)
在我們開始之前,先在安全的地方保存一份我們?cè)谙惹暗谝徊糠纸坛讨械玫降霓D(zhuǎn)儲(chǔ)文件的副本. 我將它命名為TUTE.exe記住這個(gè)名字.
用Ollydbg載入TUTE.exe. 我們將要去尋找IAT.

正如我們?cè)谏蠄D中看到的,如果我們稍加跟蹤,我們很容易發(fā)現(xiàn)一個(gè)
CALL [xxxxxx] 或者 JMP [xxxxxx] 間接地帶有它們即將跳往IAT中某處的內(nèi)存地址值.在這張圖中,我們可以看到 CALL [5e9d94]. 那意味著這個(gè)call將要前往這個(gè)內(nèi)存地址,實(shí)際上就是IAT表的入口值.在它的右邊我們可以看到"kernel32.Getversion" (黃色). 這就意味著這是一個(gè)可以在IMPORT RECONTRUCTOR上被找到的正確的入口值.
讓我們看一下轉(zhuǎn)儲(chǔ)(DUMP)窗口.在轉(zhuǎn)儲(chǔ)(DUMP)窗口右擊,選擇"前往 表達(dá) 5E9D94".

這就是看上去很不錯(cuò)的IAT. 正如你所看到的入口5E9D94指向77E5D142,那個(gè)值在我的機(jī)器里是API GetVersion.這個(gè)入口是正確的,此入口周圍的其它一些入口也是指向類似7xxxxxxx的值.
注意在其它的機(jī)器上值7xxxxxx可能會(huì)有所不同.但是這些值都是相互類似的. 現(xiàn)在我們稍微往上看一看,去找此表的起始點(diǎn).我們到達(dá)這里:

紅線標(biāo)記了此表的起始點(diǎn).在此線的上面沒有其它任何API值了.現(xiàn)在我們知道表從哪兒開始了
TABLE STARTS= 5E99EC
現(xiàn)在到右下角轉(zhuǎn)儲(chǔ)區(qū)去找IAT表的終止點(diǎn).正如我們?cè)趫D中看到的有兩個(gè)可能的終止點(diǎn). 如果我們吃不準(zhǔn)最好選后面那個(gè).但是我們有更好的方法.

選擇任何一個(gè)不確認(rèn)的值,然后將表向上翻頁(yè).停在401000.我們必須去找一個(gè)CALL [xxxxx]或者一個(gè)JMP [xxxxx].右擊鼠標(biāo)并選擇SEARCH FOR BINARY STRING

我們將要去尋找那些不確認(rèn)的入口中的一個(gè),讓我們?cè)囋?EA25C.記住逆序?qū)戇@個(gè)值如下圖所示.

到了這里

稍稍往上翻一下

我們看到那兒有一個(gè)使用此值的CALL,所以那些不確認(rèn)的值也都是屬于IAT的.
現(xiàn)在我們知道了
END OF TABLE= 5EA2BC
終點(diǎn)值是用來計(jì)算表的長(zhǎng)度的.這是很簡(jiǎn)單的一步:
LENGTH= END-START
LENGTH=5EA2BC-5E99EC
LENGTH= 8D0
在紙上寫下OEP,表的起始點(diǎn)和長(zhǎng)度,在使用import reconstructor時(shí)你將用到這些值.
第二步:找出那些不指向任何API的錯(cuò)值.
當(dāng)GETRIGHT.exe正在進(jìn)行轉(zhuǎn)儲(chǔ)時(shí),這個(gè)問題變的很容易.然后選擇VIEW-MEMORY你將看到哪些入口指向了dlls而哪些則指向了錯(cuò)誤的地方.
無論如何如果我們嘗試用revirgin或import reconstructor則會(huì)有很多入口無法解決.這就是我們?yōu)槭裁凑?qǐng)出哈里波特帶來一些魔法.

正如在表中看到的,還存在一些(黃色標(biāo)記)沒有解決的入口.通常對(duì)付這種情況的方法是從我開始轉(zhuǎn)儲(chǔ)起就跟蹤,然后追蹤每一個(gè)調(diào)用API的call,寫下名字最后用Import Reconstructor.
如果自由很少幾處沒有解決的入口這樣做將非常簡(jiǎn)便,但是如果有很多的話,這項(xiàng)工作將令人難以忍受,所以讓我們看看另一種方法.
第三步:如何去找出MAGIC JUMP
這里說明一點(diǎn):我們已經(jīng)知道程序的父進(jìn)程和他的子進(jìn)程是相同文件,但要用不同的句柄裝入兩次,所以他們變成兩個(gè)不同的進(jìn)程。一方面父進(jìn)程的OEP是5F90B9,父進(jìn)程從這里開始運(yùn)行.

另一方面我們知道當(dāng)子進(jìn)程被轉(zhuǎn)儲(chǔ)時(shí)其OEP是534E90,但我也要告訴你,子進(jìn)程也是以相同的父進(jìn)程的入口點(diǎn)5F80B9開始運(yùn)行.子進(jìn)程運(yùn)行并且解出自己的IAT然后跳到子進(jìn)程引起錯(cuò)誤的OEP,我希望你記住這一點(diǎn),我在第一部分曾經(jīng)講過.
如果你相信以上所說,我告訴你,跟蹤父進(jìn)程直到父進(jìn)程開始轉(zhuǎn)變?yōu)閮蓚€(gè)進(jìn)程,父進(jìn)程和子進(jìn)程,找到那個(gè)地方,那非常有用.我已經(jīng)找到了那個(gè)地方,那是個(gè)條件跳轉(zhuǎn),至于如何找到的,我以后再告訴你.
順便一提它不是從父進(jìn)程那復(fù)制 IAT 到它的子進(jìn)程,卻是從子進(jìn)程那解出自己的 IAT。這應(yīng)該是一大麻煩,因?yàn)槲覀儾荒茉谒麖母高M(jìn)程脫離前用 OllyDbg 進(jìn)入子進(jìn)程。
這是個(gè)煩惱,因?yàn)槲也恢廊绾芜M(jìn)入子進(jìn)程去觀察它如何解出自己的IAT.
首先我嘗試著從轉(zhuǎn)儲(chǔ)程序TUTE.exe中找一個(gè)錯(cuò)誤的entry.

我選擇了5E9C34但是你可以選擇其它任何錯(cuò)誤的entry.正如你所看到的,它的值為DF5070.
按老規(guī)矩記住要將 IsDebuggerPresent 的值設(shè)為零,清除所有以前的 BPX、BP WaitForDebugEvent 然后單擊運(yùn)行.
我們將停在此斷點(diǎn)或者某個(gè)例外上.那時(shí),打開PUPE選擇進(jìn)程中2個(gè)進(jìn)程中的上面一個(gè)(因?yàn)樗亲舆M(jìn)程,是我們需要的).右擊進(jìn)入parcheando窗口選擇4字節(jié),如圖在地址里填入錯(cuò)誤的entry offset 5E9C34.然后點(diǎn)擊BUSCAR. 你將會(huì)看到?jīng)]什么變化,因?yàn)樗兄刀际橇?

然后不斷的在OD中點(diǎn)擊運(yùn)行、在PUPE中點(diǎn)擊BUSCAR,并檢查字節(jié)窗口中的值.
上一頁(yè)12 3 4 下一頁(yè) 閱讀全文

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部