在蓝了我N次屏的情况下,昨天完成了Ring0秒 的病毒诊断分析程序,初步测试效果还不错,自己模拟了些感染型病毒也能智能分辨出来,试着调试了些程序还算稳定,冰刃通过,但是在调试自己的进程管理器竟然蓝了,现在还在找原因。程序原理:
使用SSDT HOOK来实现API的监管。对文件,进程,内存(只针对写,已经读写内核空间的函数) ,线程,驱动的加载进行了拦截以及一些常用的注入方式也进行了拦截。拦截函数列表如下:ZwCreateThread
ZwSetContextThread
ZwTerminateProcess
ZwQueueApcThread
ZwSetSystemInformation
ZwLoadDriver
ZwSetInformationFile
ZwReadFile
ZwWriteFile
ZwCreateFile
ZwOpenFile
ZwClose
ZwCreateKey
ZwDeleteKey
ZwDeleteValueKey
ZwTerminateJobObject
ZwCreateProcess
ZwWriteVirtualMemory由于偷懒目前还没有进行用户交互选择,比如说创建了新的进程,
线程以及终止进程让用户选择,还有日志文件并没有直接写入文件
而是使用DbgView方式来察看,需要的可以把信息导出即可。注意:由于是ring0下的东西最好还是在虚拟机中测试,我不敢100%保证程序的稳定性。如果你在使用中发现了什么问题或者是一些建议可以联系我。下载地址是:http://p.blog.csdn.net/images/p_blog_csdn_net/chenhui530/VirusMonitor.jpg
下载后把"VirusMonitor.jpg"改名成"VirusMonitor.rar"解压即可使用。简单说下使用方法:
先运行解压出来的DbgView然后运行主程序VirusMonitor然后你可以在路径栏里指定你需要分析的文件,染确定即可分析,也支持拖放。一次只分析一个文件以及由它创建的所有子进程,主要是由于方便区分,要再次分析的先把程序退出即可。一但程序运行起请先不要把住程序退出,因为一退出程序会把驱动卸载。