为应用程序添加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
- 提取原 manifest 文件:
mt.exe -inputresource:YourApp.exe;#1 -out:extracted.manifest
- 编辑
extracted.manifest,将:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
改为:
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
- 替换 EXE 中的 manifest:
mt.exe -manifest extracted.manifest -outputresource:YourApp.exe
💡 说明:
asInvoker表示程序将以当前用户权限运行,无论是普通用户还是管理员。- 不指定该字段也可以达到相同效果,但推荐明确指定。
⚠️ 注意事项
- 某些功能(比如写入 system32、注册表 HKEY_LOCAL_MACHINE)确实需要管理员权限,去掉
requireAdministrator会导致程序运行失败。 mt.exeManifest Tool(清单工具) 使用evething就可以搜到,是 Microsoft 提供的一个命令行工具

浙公网安备 33010602011771号