Asprotect判断被其加壳的程序的标志是什么?---里面就是。
【前言】
这次就不写什么作者等等没意思的东东。只希望大家多多交流。只可惜我以前问的问题一直没人回答。
Asprotect是如何判断被其加壳的程序呢?我找到以下一处。(可能还有其他的地方,我没有进行更多的测试)
以下是程序代码。找个PE结构说明一对照,很简单。
:0043F85C 8B4034
mov eax, dword ptr [eax+34] <---得到IMAGE_NT_HEADERS首地址
:0043F85F 05F4000000 add eax,
000000F4
:0043F864 F6400210 test
[eax+02], 10 <---判断字节是否为10
:0043F868 7403
je 0043F86D <---相同,就说明是被其加壳过的程序
:0043F86A B001
mov al, 01
:0043F86C C3
ret
:0043F86D 33C0
xor eax, eax <---设标志了
:0043F86F C3
ret
【说明】
由于脱壳后的程序一般比原程序要大得多,因此一旦把程序脱壳破解后,总会用压缩软件重新压缩。但是由于对Asprotect加壳的程序脱壳后文该标志没有改变。因此你想重新加壳的话,就要改变此标志。
以下是步骤说明:
由于脱壳后的程序一般比原程序要大得多,因此一旦把程序脱壳破解后,可以用以下方法重新加壳。
1、用Hex WorkShop打开脱壳后的可执行文件。
2、把光标定位到偏移176地址处。(因为一般80处为PE标志。80+F4+2=176)
3、这时加壳过的程序应该看到10,修改10为00即可。
4、用Asprotect重新加壳。
【后记】
另外,对已经用Asprotect加壳过的程序就不要改了。Asprotect再加壳时会出错。要不然,每个软件作者都用此法把程序加个十几遍壳,那还让大家活不活了
;-) 。当然了,相反,你也可以改变此标志,使未加壳的程序让Asprotect误认为已经加壳。
- 标 题:Asprotect判断被其加壳的程序的标志是什么?---里面就是。 (1千字)
- 作 者:ljttt
- 时 间:2000-8-6 19:23:24
- 链 接:http://bbs.pediy.com