Getright 5 手動脫殼和重建IAT--第二部分(圖)
互聯(lián)網(wǎng) 發(fā)布時間:2008-10-08 19:05:33 作者:佚名
我要評論

在本參考教程的第一部分我們學(xué)習(xí)了如何正確地轉(zhuǎn)儲(dump)Getright 5. 現(xiàn)在我們將要去找神奇跳轉(zhuǎn),這樣IAT會被正確地轉(zhuǎn)儲下來,而不用手工修復(fù)了. 要完成這一點,我們需要打敗程序中的一些陷阱, 并使它們即使在檢測到被執(zhí)行脫殼時也無所作為.
讓我們開始吧!
第一步:如
第一次變化可能會很久才發(fā)生, 但是記住不斷的在OllyDbg運行、在PUPE中點擊BUSCAR,并檢查字節(jié)窗口中的值,直到字節(jié)窗口中的值從零開始變化.
如圖所示,那個值變化了. 現(xiàn)在再重復(fù)幾次,你將會看到:
子進程已經(jīng)完全解出并賦值IAT. 我們必須在那個值第一次變化之后子進程賦值之前進入子進程. 這是個問題,但我耍了一個把戲解決了.
我們將要重復(fù)上述過程.關(guān)閉Parcheando--PUPE的窗口,因為當重啟后進程的句柄會變.
重復(fù)上述過程直到你在PUPE的窗口中觀察到那個值的第一次變化.你應(yīng)該看到類似這樣的東西:
很難找到一種好方法, 所以我決定在某個API上制造一個死循環(huán).就選GetProcAddress吧.所以現(xiàn)在我們要去父進程中找到它.選擇VIEW-EJECUTABLE MODULE 查找KERNEL32.dll 這是GetProcAddress所屬的dll.
右擊VIEW-NAMES查找api GetProcAddress
寫下這個地址(紅箭頭).現(xiàn)在在PUPE中選擇子進程,讓它去找search (BUSCAR)這個地址值. 不同的機器這個值會不同. 我的是77E5B332.在字節(jié)窗口你會看到前兩個字節(jié)是55 8B,所以在紙上寫下,并在PUPE中將其改為EB FE然后按下PARCHEAR
在那兒現(xiàn)在子進程將會處于死循環(huán)中,我們可以說它已經(jīng)睡著了. 我們現(xiàn)在必須把它從它的父進程那兒unhook下來.
在父進程窗口任意處點擊鼠標右鍵,選擇"新建起源"然后寫下下面的代碼
PUSH (son’shandle)
Call DebugActiveProcessStop
Nop (在這兒BPX并檢查是否EAX=1)
在0042F00A 下中斷,然后運行一下停在0042F00A 處??纯醇拇嫫鞔翱诘腅AX值,如果這個值=01就表示子進程和父進程分離了。如果=00那么可能是子進程的句柄填錯了, 你可以在下面重新寫入代碼再次運行,直到EAX=01時就可以關(guān)閉OllyDbg了(殺掉父進程?。┤缓缶涂梢赃M入子進程了。
重新運行Ollydbg(不要加載程序)附加上子進程.
再次在PUPE中恢復(fù)原來的代碼 55 8B并按 "Parchear" 再看看程序中的代碼又還原成了77E5B332.
程序?qū)袛?就像你在下圖中看到的.
讓我們看一下那個錯誤的entry,右擊轉(zhuǎn)儲dump窗口選擇GOTO EXPRESSION 5E9C34.
Bp GetProcAddress 然后按RUN. 你可以看到當中斷時錯誤的entry已經(jīng)被重寫了,但是表并不完整. 重新打開一個ollydbg載入tute.exe.如果在5e9c8c下面還有一個錯誤的entry就看那兒.
以5E9c98處的錯值為例,因為那兒將會被寫入DF513C.
回到Getright.exe (第一個ollydbg)看一下堆棧. 那兒的API被Df4cB2處的called調(diào)用并將會返回到DF4cB8.
在主窗口中選擇GOTO EXPRESSION 0Df4cb8.

如圖所示,那個值變化了. 現(xiàn)在再重復(fù)幾次,你將會看到:

子進程已經(jīng)完全解出并賦值IAT. 我們必須在那個值第一次變化之后子進程賦值之前進入子進程. 這是個問題,但我耍了一個把戲解決了.
我們將要重復(fù)上述過程.關(guān)閉Parcheando--PUPE的窗口,因為當重啟后進程的句柄會變.
重復(fù)上述過程直到你在PUPE的窗口中觀察到那個值的第一次變化.你應(yīng)該看到類似這樣的東西:

很難找到一種好方法, 所以我決定在某個API上制造一個死循環(huán).就選GetProcAddress吧.所以現(xiàn)在我們要去父進程中找到它.選擇VIEW-EJECUTABLE MODULE 查找KERNEL32.dll 這是GetProcAddress所屬的dll.

右擊VIEW-NAMES查找api GetProcAddress

寫下這個地址(紅箭頭).現(xiàn)在在PUPE中選擇子進程,讓它去找search (BUSCAR)這個地址值. 不同的機器這個值會不同. 我的是77E5B332.在字節(jié)窗口你會看到前兩個字節(jié)是55 8B,所以在紙上寫下,并在PUPE中將其改為EB FE然后按下PARCHEAR

在那兒現(xiàn)在子進程將會處于死循環(huán)中,我們可以說它已經(jīng)睡著了. 我們現(xiàn)在必須把它從它的父進程那兒unhook下來.
在父進程窗口任意處點擊鼠標右鍵,選擇"新建起源"然后寫下下面的代碼
PUSH (son’shandle)
Call DebugActiveProcessStop
Nop (在這兒BPX并檢查是否EAX=1)

在0042F00A 下中斷,然后運行一下停在0042F00A 處??纯醇拇嫫鞔翱诘腅AX值,如果這個值=01就表示子進程和父進程分離了。如果=00那么可能是子進程的句柄填錯了, 你可以在下面重新寫入代碼再次運行,直到EAX=01時就可以關(guān)閉OllyDbg了(殺掉父進程?。┤缓缶涂梢赃M入子進程了。
重新運行Ollydbg(不要加載程序)附加上子進程.
再次在PUPE中恢復(fù)原來的代碼 55 8B并按 "Parchear" 再看看程序中的代碼又還原成了77E5B332.

程序?qū)袛?就像你在下圖中看到的.

讓我們看一下那個錯誤的entry,右擊轉(zhuǎn)儲dump窗口選擇GOTO EXPRESSION 5E9C34.

Bp GetProcAddress 然后按RUN. 你可以看到當中斷時錯誤的entry已經(jīng)被重寫了,但是表并不完整. 重新打開一個ollydbg載入tute.exe.如果在5e9c8c下面還有一個錯誤的entry就看那兒.

以5E9c98處的錯值為例,因為那兒將會被寫入DF513C.

回到Getright.exe (第一個ollydbg)看一下堆棧. 那兒的API被Df4cB2處的called調(diào)用并將會返回到DF4cB8.
在主窗口中選擇GOTO EXPRESSION 0Df4cb8.

相關(guān)文章
- “CMOS密碼”就是通常所說的“開機密碼”,主要是為了防止別人使用自已的計算機,設(shè)置的一個屏障2023-08-01
QQScreenShot之逆向并提取QQ截圖--OCR和其他功能
上一篇文章逆向并提取QQ截圖沒有提取OCR功能, 再次逆向我發(fā)現(xiàn)是可以本地調(diào)用QQ的OCR的,但翻譯按鈕確實沒啥用, 于是Patch了翻譯按鈕事件, 改為了將截圖用百度以圖搜圖搜索.2023-02-04- QQ截圖是我用過的最好用的截圖工具, 由于基本不在電腦上登QQ了, 于是就想將其提取出獨立版目前除了屏幕錄制功能其他都逆出來了, 在此分享一下2023-02-04
非系統(tǒng)分區(qū)使用BitLocker加密導(dǎo)致軟件無法安裝的解決方法
很多電腦用戶在考慮自己電腦磁盤分區(qū)安全時會采用 Windows 自帶的 BitLocker 加密工具對電腦磁盤分區(qū)進行加密。但有些人加密后就會忘記自己設(shè)置的密碼從而導(dǎo)致在安裝其它軟2020-11-25防止離職員工帶走客戶、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生
這篇文章為大家詳細介紹了如何才能防止離職員工帶走客戶、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-27徹底防止計算機泄密、重要涉密人員離職泄密、涉密人員離崗離職前防范舉
近些年企業(yè)商業(yè)機密泄漏的事件屢有發(fā)生,這篇文章主要教大家如何徹底防止計算機泄密、重要涉密人員離職泄密、告訴大家涉密人員離崗離職前的防范舉措,具有一定的參考價值,2017-06-27- 最近有電腦用戶反應(yīng)量子計算機可以破解下載的所有的加密算法嗎?其實也不是不可以,下面虛擬就為大家講解買臺量子計算機,如何分分鐘破解加密算法2016-09-26
怎么破解Webshell密碼 Burpsuite破解Webshell密碼圖文教程
webshell是以asp、php、jsp或者cgi等網(wǎng)頁文件形式存在的一種命令執(zhí)行環(huán)境,一種網(wǎng)頁后門。黑客通常會通過它控制別人網(wǎng)絡(luò)服務(wù)器,那么怎么破解webshell密碼呢?一起來看看吧2016-09-19- 本文討論了針對Linux系統(tǒng)全盤加密的冷啟動攻擊,大家都認為這種攻擊是可行的,但執(zhí)行這么一次攻擊有多難?攻擊的可行性有多少呢?需要的朋友可以參考下2015-12-28
防止泄露公司機密、企業(yè)數(shù)據(jù)防泄密軟件排名、電腦文件加密軟件排行
面對日漸嚴重的內(nèi)部泄密事件,我們?nèi)绾问刈o企業(yè)的核心信息,如何防止內(nèi)部泄密也就成了擺在各個企業(yè)領(lǐng)導(dǎo)面前的一大問題。其實,針對內(nèi)網(wǎng)安全,防止內(nèi)部信息泄漏早已有了比較2015-12-17