Kaspersky 7.0 HOOK SSDT分析
-卡巴驱动klif.sys逆向工程
作者:Cloud
Email:shangguanwan2@yahoo.cn
2007-11-6
一、 测试版本和环境
卡巴斯基反病毒软件7.0 版本7.0.0.125d (简体中文版)
平台:Windows XP Professional(5.1,版本2600)
Mobile Inter? Celeron? CPU 1.60GHz
工具:IDA Version 5.0.0.879(32bit)
目标文件:卡巴的核心驱动klif.sys,位于SystemDirectory/system32/drivers目录下
二、目标
通过逆向工程,分析卡巴是怎样向系统服务函数表(SSDT)添加自己的服务函数的,并写出自己的实现。
三、 分析
使用IDA分析在sub_291A0处发现驱动向SSDT添加自己的系统服务函数。基本流程就是分配内存,构造一个自己的SSDT,再把系统的KeServiceDescriptorTable改为指向这个构造的SSDT。最后还要修改一个叫KeAddSystemServiceTable的结构。
下面来一步一步分析:
sub_291A0 proc near
var_pKeAddSystemServiceTable= dword ptr -8
var_NewSerNum= dword ptr -4
sub esp, 8
mov eax, ds:KeServiceDescriptorTable