如何读取资源管理器文件夹地址



我使用AVG,它最近检测到一种病毒。它以前有;)但这是我第一次注意到这一点。

当我进入包含病毒的文件夹时,AVG立即自动检测到病毒,我甚至没有点击应用程序。所以我想,即使我没有点击它,它怎么会知道病毒在那里。

唯一可能的答案是,它会不断检查所有窗口的资源管理器文件夹位置,并扫描文件夹中的所有文件。但它是如何看到我正在查看的文件夹的?

请用一个C程序来解释(如果可能的话),它做了AVG曾经做过的事情。

另外:如果有帮助的话,我会使用Windows。

当您打开一个文件夹时,会执行一系列文件系统操作(您可以使用FileMonProcMon等工具来了解这一点)。您的AV软件监控文件访问。有多种方法可以进行此监控,例如Filter Drivers-您可以在http://www.codeproject.com/Articles/43586/File-System-Filter-Driver-Tutorial

因此,当你打开文件夹时,AV软件注意到你打开了一个目录,查阅了它自己的数据,并通知了你有关病毒的信息。

我说"查阅自己的数据",因为AV工具通常不会在访问时扫描文件——它们会在写入文件时扫描,因为如果自上次扫描以来没有更改,则扫描标记为干净的文件是没有意义的。

大多数病毒扫描程序都基于API挂钩/过滤器的原理进行操作。每当windows需要处理命令时,如打开文件夹、单击窗口、执行文件等,它都会生成一个api调用以及一些信息,如单击的窗口坐标或表示文件的字符串。其他程序可以请求一个钩子到其中一个或多个函数中,基本上说"与其执行这个函数,不如先把它发送给我,然后我可能会把它发回"。这就是有多少病毒可以工作(例如,阻止你删除它们或复制你的击键),有多少游戏/应用程序可以工作(键盘、操纵杆、拖放),以及恶意软件检测器和防火墙。

后一组挂接命令,检查任何传入的命令,看看它们是否在级别上,然后允许它们恢复或阻止它们。在本例中,打开文件夹可能会触发解析目录的系统调用,扫描仪也会对其进行解析(例如"实时保护")。要查看所有可挂钩的函数以及使用它们的内容,请在谷歌上搜索一个名为"健全性检查"的免费程序(以前称为"rootkit挂钩分析器")。大多数红色条目将来自windows防火墙或avg,所以不要太担心你会发现什么。

最新更新