从瑞星的主站上得到该安装包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/Current/ControlSet/Control/Service/GroupOrder'的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之间,至于如何定位我就不详细说了,免得被坏人利用),如果符合,则不允许加载这个驱动并返回失败,如果不符合。则照常加载此驱动。
以上 就是所谓碎甲技术的全部内容,揭开之后 发现并无创新和神秘可言。