电竞比分网-中国电竞赛事及体育赛事平台

分享

手動(dòng)脫ORiEN殼實(shí)戰(zhàn)

 ZackEdge 2021-12-19

ORiEN這種殼之前沒(méi)有接觸,到底是壓縮殼還是加密殼也不知道,只能試一試嘍。需要脫殼的程序是吾愛(ài)破解脫殼練習(xí)第7期的題目。

首先對(duì)加殼程序進(jìn)行查殼,這一步也是程序脫殼的必要的一步。

使用DIE工具對(duì)加殼程序進(jìn)行查殼,發(fā)現(xiàn)被加殼程序原來(lái)是用Delphi語(yǔ)言編寫(xiě)的,這個(gè)信息對(duì)于找原程序的OEP是很有幫助的。



下面OD載入程序進(jìn)行分析,被加殼程序入口點(diǎn)匯編代碼:

對(duì)被加殼的程序進(jìn)行脫殼的時(shí)候,先不慌著脫殼,最好先看下程序的匯編代碼,F7/F8單步走幾步看看,沒(méi)準(zhǔn)你會(huì)有新發(fā)現(xiàn)。


F8單步跟蹤幾步,發(fā)現(xiàn)了PUSHAD指令,繼續(xù)F8單步到PUSHAD的下一條指令。那就使用ESP定律進(jìn)行程序的脫殼,在ESP寄存器上下硬件寫(xiě)入斷點(diǎn)HW Break。


F9運(yùn)行程序,程序會(huì)在剛才下的HW硬件斷點(diǎn)地址處斷下來(lái)。注意觀察EAX寄存器的值0045159C,通過(guò)對(duì)地址0045159C的反匯編發(fā)現(xiàn)了比較熟悉的Delphi反匯編入口點(diǎn)代碼,很顯然地址0045159C就是被加殼原程序的真實(shí)OEPVA。其實(shí),F7單步幾步走到地址004A1AF4處,跟進(jìn)JMP到地址004A1AF1處就會(huì)發(fā)現(xiàn)原程序的真實(shí)OEP。


跟進(jìn)JMP到地址004A1AF1處,JMP EAX指令中的EAX = 0045159C保存的就是被加殼程序的真實(shí)的OEPVA地址。


F7單步跟進(jìn)到地址0045159C處,果然找到了Delphi的反匯編的入口點(diǎn)。


OK,被加殼程序的真實(shí)的OEP找到了,就可以對(duì)加殼程序進(jìn)行內(nèi)存的DumpIAT表的修復(fù)。不過(guò)對(duì)于加殼程序找到OEP以后,建議使用Load PERECImport 工具或者Scylla來(lái)進(jìn)行程序的內(nèi)存DumpIAT表的修復(fù),比ODOllyDump插件更靈活。先用Load PE對(duì)該程序進(jìn)行 完全脫殼 的內(nèi)存Dump,在RECImport 中填入被加殼程序的真實(shí)OEPRVA地址0005159C,自動(dòng)獲取IAT表并剪切掉無(wú)效函數(shù)指針,修復(fù)抓取的內(nèi)存Dump文件即可實(shí)現(xiàn)脫殼。


OK,運(yùn)行一下脫殼完成的程序,證明自己脫殼成功。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多