AHK utilman脚本给出文件未找到错误

时间:2013-10-03 02:14:19

标签: autohotkey

我正在尝试使用autohotkey在我的计算机上通过utilman为自己创建一个简单的后门。 基本上我希望在登录屏幕上的所有情况下都能正常访问按钮功能。除非我按住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损坏的错误。

EDIT3:

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错误,这很令人沮丧。

1 个答案:

答案 0 :(得分:0)

我建议采用略有不同的方法。替换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_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

3)添加名为utilman.exe的新密钥(在左侧的文件夹视图中),然后在其中添加名为Debugger的密钥。将其值设置为您要运行的exe的双引号中的路径,例如"C:\some\file.exe"。它看起来像这样(对德国人抱歉): Registry

只要启动名为utilman.exe的可执行文件,您的替换就会立即运行。

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

更新

我现在得到你的问题。从锁定屏幕,它似乎不起作用。有趣的是,当您进入锁屏时,您甚至无法打开控制面板或Windows标准功能中的任何类似功能(例如打开我的电脑)。我在锁定时尝试了以下cmd:打开explorer.exe,单击出现的开始菜单,打开控制面板。我还从开始菜单打开了Internet Explorer,然后按 F1 过了一会儿,就会出现一条奇怪的错误消息,上面写着:“启动服务器失败”。 可以通过切断方式实现易于访问,不包括我尝试的方式:

Run, control.exe /name Microsoft.EaseOfAccessCenter 

Run rundll32.exe shell32.dll`,Control_RunDLL access.cpl

两者都在登录时工作,但在屏幕锁定时它们都不起作用,从而触发服务器启动错误。不幸的是,我在这里结束了我的智慧。也许别人有个主意......