Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 搜索可执行文件时的Windows API回调_Shell_Winapi - Fatal编程技术网

Shell 搜索可执行文件时的Windows API回调

Shell 搜索可执行文件时的Windows API回调,shell,winapi,Shell,Winapi,Windows API中是否有一个钩子,允许用户扩展在%PATH%上搜索可执行文件时的行为,并返回可能不在%PATH%上的文件的自定义文件路径?记录Windows如何搜索可执行文件: 从中加载应用程序的目录 父进程的当前目录 32位Windows系统目录。使用函数获取此目录的路径 16位Windows系统目录。没有获取此目录路径的函数,但会对其进行搜索。此目录的名称为System Windows目录。使用函数获取此目录的路径 PATH环境变量中列出的目录。请注意,此函数不会搜索应用程序路径注册表

Windows API中是否有一个钩子,允许用户扩展在
%PATH%
上搜索可执行文件时的行为,并返回可能不在
%PATH%
上的文件的自定义文件路径?

记录Windows如何搜索可执行文件:

  • 从中加载应用程序的目录
  • 父进程的当前目录
  • 32位Windows系统目录。使用函数获取此目录的路径
  • 16位Windows系统目录。没有获取此目录路径的函数,但会对其进行搜索。此目录的名称为System
  • Windows目录。使用函数获取此目录的路径
  • PATH环境变量中列出的目录。请注意,此函数不会搜索应用程序路径注册表项指定的每个应用程序路径。要在搜索序列中包含每个应用程序路径,请使用函数

  • 假设我们讨论的是您自己的应用程序试图执行某些可能不在路径上的其他EXE,请在应用程序路径注册表项中指定要搜索的路径,并按照#6中的说明使用
    ShellExecute
    。否则,我不知道有任何“正常”的方式来钩住可执行文件搜索;这样的事情可能会被视为安全风险,因为恶意应用程序可能会捕获常见的%PATH%搜索,例如
    cmd
    ,并返回不同应用程序的文件名。您可能需要考虑编写一个应用程序。

    简单的答案是否定的。您正在试图编写恶意软件。@DavidHeffernan我正在尝试编写一个可以使我的电脑更有条理的应用程序,但感谢您的指控,老兄。Lova ya Tooyu可能并不想让它被恶意使用,但它仍然是恶意软件。根据“恶意软件[…]是用来干扰计算机操作、收集敏感信息或访问私人计算机系统的软件。”我看不出这如何符合我的意图。恶意软件检测并不能检测出意图。任何好的恶意软件检测都会反对动态干扰搜索路径的程序。不管怎样,你现在大概意识到你没有办法得到这样一个钩子。谢谢你的详细回答。我发现在MSDN中导航并找到您实际搜索的内容非常困难,很抱歉我自己没有找到。我想我要研究一下文件系统过滤驱动程序的东西。