【问题标题】:Is It Possible To Modify an EXE to require run as admin?是否可以修改 EXE 以要求以管理员身份运行?
【发布时间】:2023-03-07 23:09:01
【问题描述】:

我需要修改我的客户不再有权访问源代码的 EXE,他希望 EXE 在启动时自动以管理员身份运行(或至少自动要求它运行)。

是否可以修改已编译的 EXE 以在启动前要求/要求用户以管理员身份运行?也许通过十六进制编辑或ollydbg?是否有关于如何执行此操作的指南?

【问题讨论】:

  • 据我所知,如果您将其重命名为 install.exe 或 setup.exe,它会警告用户。试一试...它在 w10 中不起作用。但在 2000 年它确实有效
  • 您可以创建exe的快捷方式,然后右键单击->属性->高级->以管理员身份运行该快捷方式将以管理员身份运行该exe

标签: exe ollydbg hex-editors


【解决方案1】:

您不需要 OllyDbg。应用程序可以在应用程序清单中定义它是否需要提升的权限。

您可以编辑此清单(如果不存在,则添加一个)并编辑/添加控制所需权限的设置。

  • 获取Resource Hacker并打开其中的EXE文件。
  • 检查是否已经存在“清单”资源。
    • 如果是:
      • 检查 XML 是否包含密钥 assembly>trustInfo>security>requestedPrivileges>requestedExecutionLevel
        • 如果是,请将其level 属性更改为requireAdministrator
        • 如果没有,请根据下面的脚本添加。确保您没有破坏 XML 语法。
    • 如果不是:
      • 点击“操作”->“使用脚本模板添加”。
      • 选择类型“MANIFEST”并单击“添加资源”。
      • 将内容替换为下面的脚本
  • 单击工具栏中的绿色大播放按钮(“编译脚本”)。
  • 保存更改。

下面的脚本”引用了这个:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

下面是一个示例:

但是,正如其他人已经指出的那样,如果您只需要一个用户,只需在“兼容性”下的文件属性对话框中设置“以管理员身份运行”而不是修改文件本身会更简单.

【讨论】:

    【解决方案2】:

    这里有一个可能有用的简单解决方法。

    1. 右键单击应用程序。
    2. 打开属性。
    3. 转到兼容性选项卡。
    4. 在设置下,选中“以管理员身份运行此程序”。

    这不会以任何方式修改应用程序文件,它只是标记该文件,以便 Windows 知道从现在开始以管理员身份打开它。需要为使用该程序的每个单独的用户帐户和/或 PC 重复相同的过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-23
      • 1970-01-01
      • 2012-10-14
      • 2011-08-10
      • 1970-01-01
      • 2011-03-13
      • 2012-05-06
      • 2012-03-21
      相关资源
      最近更新 更多