首页
社区
课程
招聘
[原创]PACE interLock
发表于: 2009-5-22 10:22 1774

[原创]PACE interLock

2009-5-22 10:22
1774
软件名略去,因为购买过正版原因。

限制机器,网络注册,实在麻烦。说起脱壳虽说年纪一大把,但其实没脱个几个。实在是因为都有脱壳机,唯一脱过的居然是telock。年代久远,汗。。。。

言归正传。搜了半天居然发现没人脱过,想找加密软件加密个notepad分析下,发现只有注册用户才能下。。。。晕死。只能一点一点来。

1.区段大法,先设置.data段访问中断,断后运行.code段中断。发现第一个被调用的居然是TlsGetValue,不像入口阿。晕。dump出来。

2分析下啥语言写的。vc7。  再往下分析,发下壳干了这几件事情, a填.data段里面指针,指向壳new出的数据区块(里面一堆exe要用的)  b。调用.code里面某些函数,自己也初始化一下,然后跳到.code一函数直接执行,该函数首个调用api是CoInitialize,我估计可能是属于WinMain之类的。看来把初始化stolen到壳里面了。

可见壳和exe是紧耦合的。

破解步骤如下
1.在壳结束所有初始化,代码的数据的,进入CoInitilize所在的函数哪里断。dump出exe,dump出数据区段,这个数据室HeapAlloc出来的,不再文件里。
2.修真数据区段地址(应为基本都是绝对地址),和重定位过程差不多。

if(区段数据 指向  本区段)
{  区段数据 = 区段数据 - 本区段基地址 + 附加段基地址)。

3 修真后的数据作为一个区段放到exe后面。

4修正 exe的 .data地址。让原来指向HeapAlloc数据的地址指向 我们附加的新段。

5fix IAT,注意原软件把IAT最后一个0x0也填成了函数地址,所以importreconstructor 识别成一个dll了,要手动填0.

6fix文件某些部分。壳调用的函数其实exe中都有,但是不运行了,修改某些跳转,让他们运行起来。如壳里面调用了一个初始化 函数指针的函数,同时用 DecodePointer加密,如果不执行,exe最后DecoderPointer出来指针就是错误的。

好。可以运行了。

总的分析,应该有sdk,壳中有exe数据,也可以调用exe函数。 不过没有 stolen byte之类。还不算变态。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回