对于瑞星碎甲技术的关键技术原理及其加载方式的详细解析
kakatool.exe 安装引导程序
RsBoot.sys 卡卡常驻驱动程序
kakanative.exe 卡卡native扫描程序
Ras.exe 卡卡主程序
RunOnce.exe Runonce的东东
碎甲技术
分析Kakatools.exe得知
该安装程序将程序安装到指定目录后
会修改注册表的
HK_LM\'SYSTEM\CurrentControlSet\Control\ServiceGroupOrder'的List键值
在启动顺序中其中添加一个RsAntiSpyware组
在System Reserved和Boot Bus Extender之间
然后建立驱动RsRoot.sys的服务项
服务组自然就是属于这个RsAntiSpyware
这样一来,RsRoot.sys就比所有Boot Bus Extender以及低于Boot Bus Extender级的驱动提前启动了
同时也会把KKnative.exe和kakatool.exe复制到c:\windows\system32 下
这个KKnative也是有内容的
这个RsBoot.sys 也就是所谓碎甲技术 它的核心是什么
分析RsBoot.sys得知
启动后该驱动会做以下动作:
1.使用函数PsSetLoadImageNotifyRoutine
建立一个NotifyRoutine来获得所有驱动对象加载的消息
NotifyRoutine会在Image加载时被执行,其中会对比驱动的特征
2.Inline hook函数MMLoadSystemImage
修改MMLoadSystemImage的前5个字节为Call MyLoadSystemImage
MMLoadSystemImage是一个没有导出的未公开系统函数 只在OS CORE中作为内部例程被调用
主要作用就是将驱动对象加载到内核中(和公开的ZwLoadDriver不一样,它并不运行驱动对象)
MyLoadSystemImage会替换原有的MMLoadSystemImage
对想要加载入内核的所有驱动
进行分析
得到PE文件里的TimeDateStamp和CheckSum两个值
同自己驱动中的一个特征库进行对比
(特征库位于当前版本驱动的offset 768h到offset 078bh之间,至于如何定位我就不详细说了,免得被坏人利用)
如果符合,则不允许加载这个驱动并返回失败
如果不符合,则照常加载此驱动
以上 就是所谓碎甲技术的全部内容了

2007-01-01 19:25:15.013000000