瑞星常说 在ring0 层的 权限都一样 ,因而 没有 加强 自保!!!
ring0就像司令部,若 敌人进入了 司令部也就完了 (系统被kill),试问 那这样 就不在司令部中安排保卫了吗???
病毒进入了 ring0 搞破坏 ,瑞星就看着不管了吗??? 不在ring0 做点文章了吗???
若防不住 让病毒 进入ring0 就眼睁睁的看着恶软做坏事吗???
还是做一点 ring0吧!!!
以下是改进的建议:::
一、对进程 ravmond的改进!!!
1、建议ravmond 增加AdjustTokenPrivileges 权限 --- 控制访问令牌!!!
2、建议ravmond 增加进程钩子kernel32!LoadLibraryExW!!!
二、对自保问题的建议:::
1、inline 方面:::
虽然inline 容易引起 蓝屏 ,但可以先在 实验室中测试 并优化 达到一定的稳定程度 再放出来 升级!!!你像 江民2008刚做出来是 不是很稳定,但随着数年过去 ,江民没有那么娇气了 ---建议参考!!!
挂接:::
a、 ObOpenObjectByPointer 防止打开其进程
b、 KeInsertQueueApc 防止插APC终止其进程
c、 RtlImageNtHeader 防止别人打开指定的PE模块
d、 ObReferenceObjectByHandle 防止通过handle得到Object
e、 PsLookupProcessByProcessId 防止通过ID得到Object
f、 zwopenprocess 来获取进程句柄
因为系统直接在内部调用过PspTerminateThreadByPointer的函数有4个:
NtTerminateProcess、 NtTerminateThread、
PspTerminateProcess [未导出] PsTerminateSystemThread [已导出],所以inline 上述函数!!!
2、ssdt 方面:::
ntmapviewofsection ----------将目标文件的内容映射到目标进程的用户空间
3、shadown 方面:::
NtUserGetForegroundWindow 得到当前顶层窗口
NtUserBuildHwndList 枚举所有顶层窗口
NtUserQueryWindow 获取句柄对应的进程PID
NtUserSetParent 改变某个子窗口的父窗
NtUserSetWindowLong 改变窗口属性
NtUserShowWindow 改变窗口显示状态
NtUserDestroyWindow 销毁窗口
NtUserCallHwndParamLock 禁用、启用窗口
发现瑞星对 窗口的保护(如 主程序)很不到位啊!!!请完善 shadow 上的挂钩!!!
4、保护ntoskrnl.exe文件!!!
通过调用ZwCreateFileNtLockFile方式锁定ntoskrnl.exe文件,阻止为允许的程序 读取ntoskrnl.exe文件挂钩!!!
询问用户 或 筛选的策略 来实现 最大化 保护!!!
自动 判断程序的威胁 来 决定是否允许 读取ntoskrnl.exe文件(如 卡巴的行为判断)
用户系统信息:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.33 Safari/534.3 SE 2.X MetaSr 1.0