打开文件夹时执行的命令

打开文件夹时执行的命令

曾经有位聪明人告诉我,每个文件夹都包含一个文件 autorun.inf(不确定名称,但属性与 autorun.inf 相同),他更改了文件的代码以执行批处理脚本(批处理脚本位于同一目录中),该脚本通常会删除另一个目录中的指定文件。我在任何文件夹中都找不到此类文件。

所以问题是 - “每个文件夹中是否存在具有此类属性的文件”或一般来说这是否可能,如果是,那么如何?

答案1

我认为你谈论的是desktop.ini 不是 autorun.inf(顺便说一句,你是对的。它们的格式相同)以及 Windows Shell 中的缓冲区溢出漏洞,MS03-027。是的,这样就可以desktop.ini在访问目录时执行目录中文件中指定的命令。该漏洞很久以前就被修补了。

幸运的是,还有另一种方法可以做到这一点,尽管这种方法更复杂,恶意性也更小。这种方法叫做“shell 自定义动词”,并且它适用于现代系统。这个想法很简单:

  1. 您创建一个新的“动词”(动作)并将其注册到 中HKEY_CLASSES_ROOT

  2. 为了执行新创建的动词,您需要创建一个WSH 脚本并将其绑定到该动词使用shell\RunAppFolder\command Windows 注册密钥对于您创建的动词(注意:@该键中的值必须存储为十六进制字符串)。

  3. 最后,将该动词添加到desktop.ini所需文件夹中的文件中并将其标记为默认操作。

答案2

现代版本的 Windows 已禁用此功能。以前,autorun.inf供应商会将此功能包含在 CD 中,然后 Windows 会读取它以查找要运行的文件中指定的程序。它主要用于在将 CD 插入 CD-Rom 时启动安装程序或 CD 中的某些内部程序。您可以控制它的工作方式并进行调整,但如果我没记错的话,默认情况下它是启用的。

由于它容易被滥用,所以在 2009 年得到了修补。我不确定是否有任何文件夹具有这样的功能,但我确信它适用于外部 USB 驱动器。

简而言之,这只在旧的和过时的 Windows 上(2009 年 2 月之前)才有可能。

您可以在此处查看有关此问题的 Microsoft 安全公告:https://technet.microsoft.com/library/security/967940

答案3

只有驱动器的根目录才能执行autorun.inf并且仅当自动播放已启用。可以使用desktop.ini, 但无法自动运行程序当它们被执行时。

相关内容