路路通 GPS软件 脱壳+破解 纪要 (RtNavi.exe)

来源:互联网 发布:2016年新开的淘宝店 编辑:程序博客网 时间:2024/06/01 09:09

用PEID查壳为未知壳,如图。

用ESP定律尝试,可直接到OEP,用loadpe先完整转存,再用ImportREC修复IAT,在修复过程中发现最后一行invalid,直接先删除掉。

打开修复后的文件,弹出错误对话框,如图:

1,初步考虑为刚刚删除掉的无效IAT有问题,初步跟踪,没有发现特别之处。

2,对出错点下断点,发现出错的原因为该内存块没有被分配导致(由OD的MODULE块可看出无该内存块)。 结合之前的无效IAT分析,推论出该壳在启动后在解压代码后还hook了部分原有软件代码,并且分配了几块内存区块供其使用。 为什么不是在hook代码中再分配或更改内存块呢,因为解压后的代码我已经完整转存,如果是hook的代码中分配或更改就不会有该错误了。

3,用loadpe把该内存块部分转存到硬盘中,然后再在PE编辑器中把该内存块导入段中,注意把该段的虚拟地址编辑成与原有内存块的虚拟地址一致。

 

4,再次打开,可以成功打开。 查壳为VC++6.0。

脱完壳后对程序进行跟踪并尝试patch,大略流程如下:

1,0065886A 此处为第一次获得机器码(根据硬盘和网卡ID等) ,可直接断在0065886F,然后更改返回值为要patch的机器码 。

2, 006588EB 此处位获得激活码位置,可直接断在006588F0 ,然后更改读回的激活码。

3,进行完第一轮验证后,系统在打开时会再次验证。007F3B41 此处为再次获取机器码可直接断在007F3B47 ,然后把返回值更改为需要patch的机器码。

patch后,程序正常进入欢迎界面。

 

对无壳文件直接PATCH,用对加壳文件进行loader patch,这些体力活就不说了。