-
-
只谈思想
-
发表于:
2011-4-6 15:48
6728
-
拦截恶意驱动
方法一:
主要思想是:
Hook 调用DriverEntry的代码,此段代码位于nt!IopLoadDriver+0xXX(偏移)函数中。
实现的方法比较简单:
1,找到位于IopLoadDriver中的调用DriverEntry的调用点;
2,HOOK该调用点,进入到自己构造的MyDriverEntry函数,验证当前正在加载的驱动代码(特征码)。我这里只做了一些简单的特征码匹配,如果匹配成功,则证明当前正在加载的驱动是一个病毒驱动。
3,在验证当前加载的驱动时,可以根据特征码,签名,以及行为分析来判断是否允许加载这个驱动。
方法二:
注册一个内核回调,PsSetLoadImageNotifyRoutine,在加载一个image的时候去判断;
方法三:
好像看到别人用堆栈回溯的方法,找到调用DriverEntry的上一级上一级XXXX函数去HOOK,相关的实现自己找啦,哈哈哈
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!