欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

互聯(lián)網(wǎng)   發(fā)布時(shí)間:2008-10-08 19:05:36   作者:佚名   我要評(píng)論
這是一篇Armadillo加殼軟件Getright 5.01的脫殼譯文,我是參照Ricardo Narvaja的“Getright 5 脫殼和重建IAT”的文章以及Bighead[DFCG][YCG]的譯文,一邊實(shí)踐一邊再次翻譯的。感謝Ricardo Narvaja和Bighead[DFCG][YCG]。 Armadillo for Dummies: Getright 5 手動(dòng)脫殼
這些信息被保存在父進(jìn)程的一個(gè)緩沖區(qū)從3B8FB0開始,然后它會(huì)復(fù)制給子進(jìn)程一個(gè)從538000開始的 1000 bytes (BYTES TO WRITE)的塊(block),所以如果我們到了這一步,我們可以很容易理解child的第一個(gè)section是完全空的,所以當(dāng)它試圖執(zhí)行到OEP時(shí),它報(bào)告一個(gè)error因?yàn)槟莾簺]有任何東西,所以 father得到了通知正如我們可以在father的report中看到的,所以它停止了運(yùn)行,復(fù)制必要的數(shù)據(jù)塊,然后繼續(xù)運(yùn)行直到下一個(gè)error.被復(fù)制的數(shù)據(jù)塊的大小是1000 bytes,所以當(dāng)程序試圖執(zhí)行任何超過這個(gè)大小的block外的指令時(shí), 另一個(gè)error將會(huì)發(fā)生,然后這個(gè)error會(huì)被通知給father, father會(huì)復(fù)制另外1000 bytes的塊block然后繼續(xù).
順便說一下,我們可以假設(shè)第一個(gè)error發(fā)生是因?yàn)閟on (壞小子)call了它的入口點(diǎn)OEP,它的值應(yīng)該就在 report上.顯然OEP的值必定在第一個(gè)block,father復(fù)制過去來解決son報(bào)告的error.
這個(gè)塊從538000開始知道538fff.OEP值必定在這些值中. 讓我們看一下REPORT.看轉(zhuǎn)儲(chǔ)窗口(DUMP window) 我們先前已經(jīng)知道了指向report的指針12EFF8.

太好了!在那兒我們至少看到了三次這個(gè)值: 538540.數(shù)學(xué)課告訴我538540比538000大,比538fff小 (那些是father試圖拷貝給son的那個(gè)塊的起止值)所以我可以確信538540就是child的OEP.
讓我們從API WriteProcessMemory來改變斷點(diǎn)的性質(zhì).知道哪個(gè)塊被拷貝不是很好嗎.可以通過下面的方法做到.首先選擇bpx所在的行,按F2移除bpx.
右擊選擇"斷點(diǎn)/條件記錄".現(xiàn)在在對(duì)話框中準(zhǔn)確地填入如圖所示的值.這樣做的目的是使我們?cè)谟涗洿翱谥锌吹剿斜籪ather decrypts并拷貝給son的blocks.

第四步: NOP THE CRIPTER CALL
在先前的參考教程s中我們知道,這兒我們是在decripter call.Father為son decrypts了一個(gè)block.但是還有一個(gè)cripter call用來encrypts或者destroys已使用的blocks來避免被轉(zhuǎn)儲(chǔ)dump.現(xiàn)在的任務(wù)是如何找到這個(gè)call并把它nop掉.
我現(xiàn)在在WriteProcessMemory API,所以我打開"呼叫堆棧窗口"(Alt K)在那兒我可以看到:

在這個(gè)"呼叫堆棧窗口"越靠上面的是越最新被執(zhí)行的.從CALLED FROM 我們可以看到5F949E是father calls API的地方. 如果我們向下看,我們可以看到另一個(gè)call.所以我們獲得了decripter call的offset.
DECRIPTER CALL= 5F88D1
通過"前往 表達(dá)" 5F88D1跳到那兒 ,或者左鍵雙擊它.

這是好的CALL,它用來decrypts.現(xiàn)在去找壞的那個(gè),稍稍向下翻屏或者右擊選擇"查找參考/呼叫目標(biāo)" 選擇出現(xiàn)的兩個(gè)參考中的另一個(gè).

它在這兒呢!
重新加密的call--ENCRIPTER CALL = 5F8A24

現(xiàn)在我們把它nop掉.我們選擇這個(gè)call按空格寫入nop.


相關(guān)文章

最新評(píng)論