Autohotkey AHK utilman脚本给出了“未找到文件”错误

Autohotkey AHK utilman脚本给出了“未找到文件”错误,autohotkey,Autohotkey,我正试图通过utilman在我的电脑上使用自动热键为自己创建一个简单的后门。 基本上,我希望在登录屏幕上的所有情况下都能正常使用Easy-of-access按钮,除非我按下M键,在这种情况下,它会打开cmd。 不应弹出任何批处理或cmd窗口,也不应弹出任何窗口。 我遇到的问题是,我从脚本中得到了一个未找到文件的错误,我将脚本编译成Utilman.exe,并使用真实Utilman的副本(重命名为lol.exe,在脚本中指定为正常运行)进行测试,这在它自己的目录中运行良好。但是,当我在system3

我正试图通过utilman在我的电脑上使用自动热键为自己创建一个简单的后门。 基本上,我希望在登录屏幕上的所有情况下都能正常使用Easy-of-access按钮,除非我按下M键,在这种情况下,它会打开cmd。 不应弹出任何批处理或cmd窗口,也不应弹出任何窗口。 我遇到的问题是,我从脚本中得到了一个未找到文件的错误,我将脚本编译成Utilman.exe,并使用真实Utilman的副本(重命名为lol.exe,在脚本中指定为正常运行)进行测试,这在它自己的目录中运行良好。但是,当我在system32文件夹中执行此操作时,会出现一个错误,即找不到lol.exe,同时自己执行lol.exe也会产生完全相同的错误,就像它再次重新路由到名为Utilman的脚本一样。 以下是脚本,应该简短明了:

SetWorkingDir %A_ScriptDir%
Sleep 400
GetKeyState, state, m
if state = D
    Run cmd.exe
else
    Run lol.exe
Sleep 200
ExitApp
感谢您的指点、其他建议或想法。这将是伟大的工作

编辑:更改 运行lol.exe 到 运行“C:\Windows\System32\lol.exe” 现在给出一个exe损坏的错误。 如果我自己运行lol.exe,也会发生这种情况, 我真的不知道发生了什么事

EDIT2:再次从其他位置运行脚本会导致文件未找到错误,而不是exe损坏错误

编辑3:

SetWorkingDir %A_ScriptDir%
Sleep 400
GetKeyState, state, m
if state = D
    Run cmd.exe
else
    Run %A_WinDir%\system32\control.exe access.cpl
Sleep 200
ExitApp

这在任何地方都能完美工作,除了system32文件夹,在该文件夹中,即使在使用提升的权限运行时,也会出现exe损坏错误,这令人沮丧。

我建议使用稍微不同的方法。替换
utilman.exe
或基本上是
system32
文件夹中的任何内容都不是一个好主意,因为您无法真正知道操作系统在后台对它们做了什么(例如,检查哈希和,期望特定的输出等)。
有一种更好的方法可以将Utilman替换为您想要的任何可执行文件,而无需操作Windows文件夹中的任何文件:注册表提供了一个名为
Image File Execution Options
的选项。这基本上允许您按名称替换exe。虽然非唯一名称可能会出现问题,但我认为使用
utilman.exe
遇到问题的可能性较小

1)在任何需要的地方编译脚本。我建议使用以下代码作为基础:

Sleep, 1000
; Here's what you want to do/run instead of cmd:
Run, calc.exe
ExitApp
    
m::
   Run, % comspec
   ExitApp
return
2)在注册表中,转到:
HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image文件执行选项

3)添加一个名为
utilman.exe的新键(在左侧的文件夹视图中),并在其中添加一个名为
Debugger
的键。将其值设置为要运行的exe的双引号路径,例如
“C:\some\file.exe”
。看起来是这样的(对不起德国人):

现在,只要启动名为
utilman.exe
的可执行文件,就可以运行替换程序

4)单击易于访问按钮。当您在单击前按住M键以及在单击后按下M键时,CMD将打开。修改上面脚本中的
Sleep
,以规定按键等待的时间

更新: 我现在明白你的问题了。从锁屏上看,它似乎不起作用。有趣的是,当你在锁屏上时,你甚至无法打开控制面板或类似的Windows标准功能(比如打开我的电脑)。锁定时,我从cmd尝试了以下操作:打开explorer.exe,单击出现的开始菜单,打开控制面板。我还从“开始”菜单打开了internet explorer,然后按F1。
过了一会儿,出现了一条奇怪的错误消息,上面写着“启动服务器失败”。
除了我尝试过的您的方式之外,可以通过几种方式实现易用性:

Run, control.exe /name Microsoft.EaseOfAccessCenter 


这两个都在登录时工作,但在屏幕锁定时都不工作,从而触发服务器启动错误。不幸的是,我在这里束手无策。也许其他人有想法…

您是否尝试过使用提升的权限执行脚本?如果lol.exe像“我的文档”一样位于您的配置文件文件夹中,脚本是否工作?是的,似乎Utilman exe以某种方式返回自身并给出错误。。将其重命名为lol.exe会导致exe损坏错误,文件正常工作的唯一方式是单独链接自身。是否有一个特定的cpl,我可以打开脚本来代替使用Utilman.exe,以方便访问中心?
Run rundll32.exe shell32.dll`,Control_RunDLL access.cpl