为应用程序添加Access=True权限,以防止调试,及破解方法

修改 Manifest

前往你程序的 App.Manifest 文件,设置 requestedExecutionLevel

<requestedExecutionLevel level="asInvoker" uiAccess="true" />

如何创建清单文件请看创建清单文件

给应用程序签名

创建私人证书
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\makecert.exe" -r -pe -n "CN=Test Certificate - For Internal Use Only" -ss PrivateCertStore testcert.cer

找不到makecert.exe的用everything搜一下

安装私人证书
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\certmgr.exe"  -add testcert.cer -s -r localMachine root
给程序集签名
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\signtool.exe" sign /a  /v /s  PrivateCertStore /n "Test Certificate - For Internal Use Only" /t http://timestamp.digicert.com app.exe
将程序放到受信任的目录下
C:\program files
C:\program files x86
C:\Windows\system32

破解方法

移除签名

"C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\signtool.exe" remove /s app.exe

修改应用程序清单

注意清单有可能是作为资源文件放在可执行文件里,也有可能以文件的方式放在可执行文件的当前目录 文件名为 <可执行文件名>.mainifest
若放在资源文件里用ResourceHacker.exe查看修改
将uiAccess改为false

💡如何去除程序的 UAC 管理员启动请求

在 Windows 下开发桌面应用时,你可能会遇到这样的情况:

程序运行时总是弹出“是否允许此应用对设备进行更改?”的 UAC 提示。

这通常是因为程序的 manifest 文件中配置了 requireAdministrator。本文将教你如何找到并移除这类配置,让程序以普通用户权限运行,从而避免 UAC 弹窗。

🔍 什么是 UAC(用户帐户控制)?

UAC(User Account Control)是 Windows 的一项安全机制。即使你当前是管理员账户,程序默认也不会以管理员权限运行,除非你:

  • 右键选择“以管理员身份运行”

  • 或者程序自身 manifest 中请求了管理员权限

manifest 是可执行文件(EXE)中的一个 XML 清单文件,用来描述程序的兼容性、权限、依赖信息等。

🧪 判断程序是否使用 UAC 提升

manifest如果不在应用所在文件中,那就是在资源文件中,使用CFF Explorer.exe查看资源段 或者使用 Resource Hacker
若包含:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>

那么这个程序运行时就会弹出 UAC 提示。

🛠 去除方法:替换 EXE 的 manifest

  1. 提取原 manifest 文件:
mt.exe -inputresource:YourApp.exe;#1 -out:extracted.manifest
  1. 编辑 extracted.manifest,将:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>

改为:

<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
  1. 替换 EXE 中的 manifest:
mt.exe -manifest extracted.manifest -outputresource:YourApp.exe

💡 说明:

  • asInvoker 表示程序将以当前用户权限运行,无论是普通用户还是管理员。
  • 不指定该字段也可以达到相同效果,但推荐明确指定。

⚠️ 注意事项

  • 某些功能(比如写入 system32、注册表 HKEY_LOCAL_MACHINE)确实需要管理员权限,去掉 requireAdministrator 会导致程序运行失败。
  • mt.exe Manifest Tool(清单工具) 使用evething就可以搜到,是 Microsoft 提供的一个命令行工具
posted @ 2021-11-16 14:35  乘舟凉  阅读(518)  评论(0)    收藏  举报