ASProtect V1.2和V1.1C其實大同小異.我們來脫它.以下我只列重點,相信大家均能手動脫殼.
(1)Import Table:使用最新版的Imp_list V.1.13(2001/01/06)來重建,
不過你如果選Auto-detect
Import是無法重建的,估計
ASProtect做了修正去妨它,沒關係它妨新版卻不妨舊版
用舊版去重建的目的,主要是去找.idata
Section它得
出的Import Table並不能用,那是因為ASProtect
V1.2
對Import Table又做了新的處理,只能用Imp_list
1.13來重建,當然你也可以自己去程式中找.idata
Section,反正ASProtect的Import
Table編碼處都長
的一樣.在Imp_list V1.13中不選Auto-detect
Import,RVA=66000,SIZE=2000,Level=1,如此即能重
建,再不然進入程式跟到編碼結束時下a
eip/jmp eip
再用Imp_list來重建.
(2)Hook:脫殼後的程式還是不能用因為ASProtect有留下Hook,如何移除它
呢?那你得感謝ASProtect,因為它完善的SEH系統會告訴你,重開
始的SEH MessageBox中得知它留下的Hook位址為00C1C6D8,用
HexWorkshop打開已脫殼的文件,查找D8C6C100你會發現在RVA
64FAC,64FB0中各有一個,用W32Dasm去反組譯,查找0064FAC,你會
發現有如下的程式
CALL [0064FAC]
等價於
CALL 00C1C6D8 <-- 在我們已脫殼的文件中是不會有這個位址
的程式碼
比較原程式發現原來00C1C6D8只是一個RET,真是無聊!好了!那你
應該知道如何移除這個Hook吧!我的方法是找個位址放RET,再將
RVA 64FAC,64FB0指向這個位址,我選在隔壁即RVA 64FB4改:
RVA 64FAC 00C1C6D8 --> 00464FB4
RVA 64FB0 00C1C6D8 --> 00464FB4
RVA 64FB4 00 --> C3
(註:我標示的是用RVA而不是OffSet,那是因為我是用ICEdump去脫
故我需令OffSet=RVA,若你是用Procdump去脫.則OffSet並不
一定等於RVA端視你的操作選項而定)
JOHNSON 2001/02/13
- 标 题:ASProtect V1.2之脫殼簡述--C-pen (1千字)
- 作 者:1212
- 时 间:2001-2-13 9:52:09
- 链 接:http://bbs.pediy.com