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

這是一篇Armadillo加殼軟件Getright 5.01的脫殼譯文,我是參照Ricardo Narvaja的“Getright 5 脫殼和重建IAT”的文章以及Bighead[DFCG][YCG]的譯文,一邊實踐一邊再次翻譯的。感謝Ricardo Narvaja和Bighead[DFCG][YCG]。
Armadillo for Dummies: Getright 5 手動脫殼
這是一篇Armadillo加殼軟件Getright 5.01的脫殼譯文,我是參照Ricardo Narvaja的“Getright 5 脫殼和重建IAT”的文章以及Bighead[DFCG][YCG]的譯文,一邊實踐一邊再次翻譯的。感謝Ricardo Narvaja和Bighead[DFCG][YCG]。
Armadillo for Dummies: Getright 5 手動脫殼和重建 IAT (第一部分)
因為Armadillo實在是太復雜了,以至于人們已經(jīng)不得不沿用下面這個手動的方法去脫殼armadillo,這不是我的過錯,只是因為armadillo實在是太難脫殼了,然后我將會在這個文檔中一步一步地去完成脫殼,同時配上很多圖片,只是想讓它變得盡量容易理解.我并不想寫一個10兆大的參考教程,所以我把這個文檔分成兩部分.第一部分主要講如何轉(zhuǎn)儲(dump)armadillo保護的程序,然后我會在第二部分中提及一些以前在其它任何教程中都未曾見過的東西,那就是輸入表(import table)的redirection和rebuilding.
在我們開始之前,我必須聲明這篇參考教程只在Windows XP上測試.請不要在 windows98或者2000中嘗試.原因是只有Windows xp才擁有必要的API,能夠把子進程(child)從它的父進程father那兒脫鉤下來.
這次練習,我們找到的自愿者是Getright 5 final. Crusader曾經(jīng)寫過關(guān)于這個軟件的某一個版本的參考教程,但是這篇參考教程在很多方面都不同于crusader寫的那篇.
crusader寫的那篇參考教程(原版)----附(1)
crusader寫的那篇參考教程(FTBirthday翻譯版本)----附(2)
你可以從以下連接下載GetRight 5.不管怎樣我在我的ftp中保存了一個副本,所以你可以從那兒下載,就不用去管它在網(wǎng)上被放在哪兒了.
http://www.getright.com/
抓起你的鼠標,安裝好Getright然后準備作戰(zhàn).Armadillo將會變得軟弱無力.
如何脫殼(UNPACK)以及轉(zhuǎn)儲(DUMP)Getright 5
在OLLYBG中載入GETRIGHT.exe然后整裝待發(fā).我將按照以下的步驟,很容易記住的,你可以在其它任何armadillo保護軟件中按部就班.
第一步:重新設置檢測ISDEBUGGERPRESENT API的字節(jié)
我將要解釋如何在任何電腦中去尋找這個字節(jié).
首先從這個連接下載命令行插件:
http://dd.x-eye.net/file/cmdbar10802.zip
解壓它然后復制dll到OLLYDBG文件夾.只要你運行Ollydbg你將會在調(diào)試窗口的左下角看到一個白色的輸入框,在那兒你可以鍵入很多命令.讓我們鍵入:
Bp IsDebuggerPresent
我們將要使用BP而不是BPX,因為BP可以直接在API上下斷點,那正是我們所需要的.
我們必須準確地鍵入Bp IsDebuggerPresent.記住我們必須保證大小寫的順序,因為如果我們鍵入了任何不同于以上形式的命令,那么一個錯誤提示(UNKNOWN COMMAND)將在命令行的右邊產(chǎn)生.所以正確地鍵入BP IsDebuggerPresent然后按回車. 如果在按回車后沒有錯誤提示出現(xiàn),那就說明這個BP已經(jīng)生效.
現(xiàn)在按F9運行程序,它將會中斷在API IsDebuggerPresent

在這張圖中我們可以看到OllyDBG中斷在API IsDebuggerPresent(紅色), 然后按F7步進到第三行(白色)
77E52749 0FB640 02 MOVZX EAX,BYTE PTR DS:[EAX 2]
一旦到達那兒,看一下disassembly,在那兒我們可以看到如下圖的內(nèi)容:

這兒我們可以看到在我的機器中偏移是7ffdf002,包含了值01.這個地址在其它機器中可能會不同. 值01意味著調(diào)試器被檢測到了,所以寫下這個地址,在任何時候我們在ollydbg中運行程序,都必須把它修改為00,從而避免被packer檢測到.記住在ollydbg中運行或重運行程序的任何時候修改此值為00.
我們將以重啟ollydbg (ctrl F2)來結(jié)束第一步,到轉(zhuǎn)儲窗口(DUMP)單擊右鍵選擇"前往 表達" 7ffdf002或者其它任何先前你記下的地址,然后把它的值從01修改為00.


把它改為00.

第二步:BP WAITFORDEBUGEVENT
這一步并非必要,但卻是一個好的選擇,當它停止時在轉(zhuǎn)儲(DUMP)區(qū)看到report.讓我們看看該怎樣做.
首先我們需要在命令行輸入BP WaitForDebugEvent,和我們輸入IsDebuggerPresent的方法是相同的.
現(xiàn)在運行它,當它停下時我們可以在堆棧窗口(Stack window)看到關(guān)于這個API的所有參數(shù)信息.

看一下第二行.那兒我們可以看到它將在哪兒顯示report,所以到轉(zhuǎn)儲窗口(dump window), 右鍵選擇 "前往 表達"= 12EFF8.注意這個值在一些機器上可能會不同,所以前往你的機器顯示的值.

我們在上面的圖中看到的是我們將要稱之為"API report"的東西.主程序(讓我們把它稱為Father)通過那里得知secondary program(讓我們把它稱為son)發(fā)生了什么.
現(xiàn)在我們可以很容易地通過在命令行輸入BC WaitForDebugEvent來刪除這個斷點.
所有的操作都是為了在轉(zhuǎn)儲窗口(dump window)看到report,在這個report中我們可以看到入口點OEP(entry point).
第三步: BP WRITEPROCESSMEMORY

像圖中一樣設置這個斷點然后點擊"運行".也許你會在一些例外(exceptions)處停下,但是你可以通過按SHIFT F9很容易地走過.一旦我們停在了WriteProcessMemory API不要做任何事情,看下圖:
正如我們在下圖中看到的, father將要復制給son的第一個塊(block)的所有信息,都可以在堆棧窗口(STACK window)看到.

FTBirthday:由經(jīng)驗,我覺得很難走到這一步,但是我知道是在005F949E處call了WriteProcessMemory如圖:

我通過一遍遍試驗,得出了最好的方法:等到前兩次在別處call了WriteProcessMemory后,左手一直按住shift, 右手連續(xù)按F9大約31次,就可以順利到達.
相關(guān)文章
- “CMOS密碼”就是通常所說的“開機密碼”,主要是為了防止別人使用自已的計算機,設置的一個屏障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加密導致軟件無法安裝的解決方法
很多電腦用戶在考慮自己電腦磁盤分區(qū)安全時會采用 Windows 自帶的 BitLocker 加密工具對電腦磁盤分區(qū)進行加密。但有些人加密后就會忘記自己設置的密碼從而導致在安裝其它軟2020-11-25防止離職員工帶走客戶、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生
這篇文章為大家詳細介紹了如何才能防止離職員工帶走客戶、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-27徹底防止計算機泄密、重要涉密人員離職泄密、涉密人員離崗離職前防范舉
近些年企業(yè)商業(yè)機密泄漏的事件屢有發(fā)生,這篇文章主要教大家如何徹底防止計算機泄密、重要涉密人員離職泄密、告訴大家涉密人員離崗離職前的防范舉措,具有一定的參考價值,2017-06-27- 最近有電腦用戶反應量子計算機可以破解下載的所有的加密算法嗎?其實也不是不可以,下面虛擬就為大家講解買臺量子計算機,如何分分鐘破解加密算法2016-09-26
怎么破解Webshell密碼 Burpsuite破解Webshell密碼圖文教程
webshell是以asp、php、jsp或者cgi等網(wǎng)頁文件形式存在的一種命令執(zhí)行環(huán)境,一種網(wǎng)頁后門。黑客通常會通過它控制別人網(wǎng)絡服務器,那么怎么破解webshell密碼呢?一起來看看吧2016-09-19- 本文討論了針對Linux系統(tǒng)全盤加密的冷啟動攻擊,大家都認為這種攻擊是可行的,但執(zhí)行這么一次攻擊有多難?攻擊的可行性有多少呢?需要的朋友可以參考下2015-12-28
防止泄露公司機密、企業(yè)數(shù)據(jù)防泄密軟件排名、電腦文件加密軟件排行
面對日漸嚴重的內(nèi)部泄密事件,我們?nèi)绾问刈o企業(yè)的核心信息,如何防止內(nèi)部泄密也就成了擺在各個企業(yè)領導面前的一大問題。其實,針對內(nèi)網(wǎng)安全,防止內(nèi)部信息泄漏早已有了比較2015-12-17