亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

ACProtect Professional 1.3C 主程序脫殼(3)(圖)

互聯(lián)網(wǎng)   發(fā)布時間:2008-10-08 19:05:26   作者:佚名   我要評論
運行程序,crashedL。直接用修復完stolen code的dumped_.exe看看。從EP的第1個call進去就有問題。 在OllyDbg中可以看到: 有部分IAT在殼中。這部分代碼前面是跟到了的(在第6次int 3以后),原來認為這只是loader自己需要的API。實際上

運行程序,crashedL。直接用修復完stolen code的dumped_.exe看看。從EP的第1個call進去就有問題。







在OllyDbg中可以看到:


有部分IAT在殼中。這部分代碼前面是跟到了的(在第6次int 3以后),原來認為這只是loader自己需要的API。實際上正常的程序代碼也使用了這個IAT。

如果用ImportRec把這部分也取出來,屬于不同dll的api混排了,ImportRec不能處理。
這些地址是在736643處理的。


而且有一個不能識別(這個實際上是Hooked MessageBoxA)。



估計這是加殼時做的手腳。當發(fā)現(xiàn)主程序使用了與殼代碼同樣的API時,修改了對應的調(diào)用代碼,使其調(diào)用到殼中的IAT。這樣可以加強與殼的聯(lián)系。反過來看,這里大部分API(除了只有殼使用的),在前面避開IAT加密處理后,都已經(jīng)import了。

在ACProtect_Fixed中已經(jīng)有解好的api名。


緊臨的函數(shù)指針:



注意函數(shù)名及指針與7339A9附近的代碼并不完全對應。有的函數(shù)名或指針在別處。

可以在程序入口自己調(diào)用LoadLibrary,GetProcAddress進行處理,填入相應的地址。或者把Loader的代碼搬過來。也可以修改主程序的代碼,使其調(diào)用前面得到的干凈的IAT而不是殼中的IAT(這樣要處理的地方太多,很麻煩)。

注意ACProtected_Fixed中,import了幾個基本的API:

在加載API時殼代碼會使用這些函數(shù)。這幾個地址直接填入007300D8開始的IAT中了。修改dumped_.exe的EP,從殼代碼開始(可以看到dump出來的代碼,這部分已經(jīng)解開了),





注意Loader代碼中用的幾個API(GetModuleHandleA,GetProcAddress)改為使用避開IAT加密后得到的主程序的IAT。


原來在殼代碼import的4個API,從主程序的IAT直接取。結束處理后跳回前面的OEP 409DE4。用pushad,pushad保存寄存器值。



注意最后一項7301CC實際是MessageBoxA,被ACProtect用做SDK的接口。 不要填入MessageBox的真正地址。

下面的73013C在跟原程序的過程中始終為0,可能是注冊版才有?


處理完后,位于殼空間的IAT已經(jīng)賦上了正確值。


7. 修復Replaced code (1)

用前面的OllyScript腳本,停下后對Code section設內(nèi)存訪問斷點。忽略所有異常。斷下后,在抽取代碼的共同入口722416設斷,運行。第1次調(diào)用在004047E5。


里面還有SMC,解出后貼到ACProtect_Fixed中對照跟蹤。這部分的處理與低版本基本相同。

1) 查返回地址表



7225CC后ebx指向返回地址表,里面是RVA:


相關文章

最新評論