900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > [Windows开发实战] - 管理员权限启动(及原理浅析)

[Windows开发实战] - 管理员权限启动(及原理浅析)

时间:2021-09-07 11:25:47

相关推荐

[Windows开发实战] - 管理员权限启动(及原理浅析)

文章目录

导读开发环境管理员权限启动实现原理-二进制查看原理-清单文件参考资料

导读

最近写了个关闭进程的功能,发现部分电脑关闭操作没反应。尝试使用管理员启动就可以正常关闭了,所以这里进行两部分改进:

管理员权限启动提权

开发环境

管理员权限启动

实现

将exe设置为管理员启动,其实很简单,在工程的设置中,选择链接器->清单文件->UAC执行级别,将选项修改为requireAdministrator即可,如下图所示:

原理-二进制查看

首先我们通过VS生成两个EXE,其中一个是管理员启动的,一个是普通启动的。

我们通过工具Beyond Compare,将两个EXE进行二进制比较,如下图所示:

从图中可以看出,两个EXE中,有requestedExecutionLevel的文本配置,该配置分别是requireAdministratorasInvoker,分别对应的就是以管理员权限启动作为调用者(父进程)权限启动

原理-清单文件

从上面的VS项目配置我们可以看到一个叫做清单文件的配置,而清单文件,最终会被作为资源打包的EXE中,操作系统就是通过EXE中的资源项,判断以何种权限启动应用的。

我们通过工具Resource Hacker打开EXE,可以看到如下内容:

将两个EXE中的Manifest配置放到工具Beyond Compare进行比较,更直观的可以看到清单文件的差别:

参考资料

授权 /zh-cn/windows/win32/secauthz/authorization-portalwin10桌面软件图标上有个盾牌 /etagid80111b0/qq群:夜猫逐梦技术交流裙/953949723

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。