Hackshield

王朝百科·作者佚名  2011-05-04  
宽屏版  字体: |||超大  

目前的成果1.让EHSvc.dll被脱壳后,也能通过hackshield系统的自效验。

2.去掉反调试。

函数的作用#1:初始化 return value: 0

#2:加载驱动 return value: 0

#10:初步的自效验 return value: 0

#14:内存效验.

临时的解决方法1.修改EHSvc.dll的#10函数让其eax永远返回0.

2.修改EHSvc.dll的#2函数让其不加载驱动,并且eax返回0

#1函数的流程分析9个参数

0.属于Freestyle模块的函数的地址,估计是freestyle提供的回调函数。

1.验证主程序freestyle.exe文件名的key=3ECh.(发现只要文件名前面为freestyle就可以通过)

2.主程序文件名Hash后的散列.用peid算法的识别插件显示使用的hash函数为HAVAL-128

3.DWORD标志字段,每一位都有含义.目前意义不祥

4.注册表中packver的键值,本机为3032601h

5.一个标志字段.freestyle.exe传过来的值为2.和驱动加载有关,具体用途不明.这个值要影响一系列的标志位.

6. Hackshield Ehsvc.dll的文件名(带路径)

7.GetTickCount的地址

8.GetSystemTime的地址

大概的流程首先在注册表HKCU下创建Software\AhnLab\HShield项.如过存在就打开.

将Ehsvc.dll的路径信息写入默认的键值,将3032601h键值写入 packver

然后查询log键的值,但是我的注册表里面没有这个键.(奇怪的地方),这个log键关系到一个全局变量的值.

接下来:

用参数3当作标志

第9位是否置1

如果是则设置一系列全局变量----这里必为1

根据全局变量,判断#1是否已经成功的调用过.

判断是否传入了回调函数的地址

判断是否传入了主程序文件名的Hash值

如果通过

1.检查当前运行主程序的文件名是否和原始的一样

用参数3当作标志

第15位是否置1

如果是则设置一系列全局变量----这里必为0

不为0,将要启动一个新的线程,作用不明.

用参数3当作标志

第10位是否置1

如果是则设置一系列全局变量----这里必为0

不为0也要执行一些不明作用的操作.

判断操作系统,如果是2000以上,操作系统版本全局变量=1

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有