主题说明了一切。普通的防病毒软件必须拦截所有文件访问,扫描文件,然后选择性地拒绝对该文件的访问(甚至可能向用户显示提示)。如何做到这一点?
我知道一种称为 API Hook 的方法,但这是一种非常肮脏的未记录的 hack - 因此并不可靠。这样做的“官方”方式是什么?
或者,我会对拦截可执行模块(.DLL、.EXE 等)的加载感兴趣,而不仅仅是任意文件读取。
最佳答案
在最新版本的 Windows 中(至少从 XP 开始)有一个“过滤器”的概念,可以使用 MS 过滤器管理器(来自命令提示符的 fltmc.exe)查看它
这提供了一个低级别的 I/O Hook ,AV 程序可以访问它并自动注册以将所有 I/O 请求传递到文件系统。这是一个套件,您可以获得驱动程序以开发您自己的过滤器。
http://www.microsoft.com/whdc/driver/filterdrv/default.mspx是获取深入信息的起点。
关于windows - Windows 防病毒软件如何挂接到文件访问过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1531800/