【发布时间】:2012-06-20 21:14:05
【问题描述】:
主题说明了一切。普通的防病毒软件必须拦截所有文件访问,扫描文件,然后选择性地拒绝对文件的访问(甚至可能向用户显示提示)。如何做到这一点?
我知道一种称为 API 挂钩的方法,但这是一种非常肮脏的无证 hack,因此并不可靠。这样做的“官方”方式是什么?
另外,我有兴趣拦截可执行模块(.DLL、.EXE 等)的加载,而不仅仅是任意文件读取。
【问题讨论】:
-
这取决于正在运行的 Windows 版本。你会发现他们做了很多不受支持的事情,尤其是在旧版本的 Windows 上。我相信较新的版本有一个 API ......但我不熟悉它,所以我会让其他人回答。
-
“病毒”和“防病毒”之间只有一线之隔。为了完成他们的工作,他们做了很多同样肮脏的伎俩。
-
以前从未在 Anivirus 软件上工作过,但我认为它们被实现为 File System Filter Driver
-
顺便提一下,防病毒软件使用的技术与编写软件的那些片段所利用的技术几乎相同。
-
@MareInfinitus 谢谢,没有发现防病毒标签