瑞星卡卡安全助手3.0全面技术分析

从瑞星的主站上得到该安装报kakasetup.exe
版本为:17, 0, 0, 8

用Peid看了下,是个Zip的自解包,解完后有用的文件有这么几个:


kakatool.exe 安装引导程序
RsBoot.sys 卡卡常驻驱动程序
kakanative.exe 卡卡native扫描程序
Ras.exe 卡卡主程序
RunOnce.exe Runonce的东东

此外其它的一些东西都无关紧要了

我关心是他的新技术-------也就是吹得很牛的:碎甲技术


分析Kakatools.exe得知

该安装程序将程序安装到指定目录后

(中间要进行一大堆极为恶心的IE注册表修改,如果你开着HIPS,例如SSM 会让你点允许到手酸。。。)

会修改注册表的
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之间,至于如何定位我就不详细说了,免得被坏人利用)

如果符合,则不允许加载这个驱动并返回失败
如果不符合,则照常加载此驱动


以上 就是所谓碎甲技术的全部内容了

揭开之后 发现并无创新和神秘可言



"解除"这套碎甲也十分的简单
--------------驱动及其他项目的注册表项没有任何保护
删除RsBoot.sys的驱动服务项目,删除ServiceGroupOrder里的RsAntiSpyware里项目 重启动后,碎甲解除
不用进入Ring0,Ring3就可以做到
甚至是一个小小的.reg文件,也可以将碎甲摧毁
呵呵

KKnative则是一个BootExecute执行的native程序

主要用于在Boot Execute时删除

\\??\\%Systemroot%\\system32\\kkdelay.def

这个文件中定义的延迟删除文件和注册表项

RunOnce也是一样

基本没什么看头,只要碎甲能解除,驱动能成功加载 这两个东东 以及它们的注册表项都可以被轻松解决



至此,碎甲技术完全解密  我给它的评价 只能是:不过如此
最后编辑2007-01-12 15:27:11