论坛风格切换
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
购买邀请后未收到邀请联系sdbeta@qq.com
  • 2500阅读
  • 1回复

[软件资源]AsInvoker Windows 它可以移除 exe 程序清单里的管理员权限要求。 [复制链接]

上一主题 下一主题
在线大神
 
发帖
*
今日发帖
最后登录
2024-12-23
只看楼主 倒序阅读 使用道具 楼主  发表于: 2020-04-09 18:26:53 , 编辑
AsInvoker 是一个 exe 文件降权工具,可以让需要管理员权限的程序以当前用户权限启动。

之前遇到不少作用很简单的程序,却需要管理员权限运行,比如我记不清名字的某苹果越狱助手。要调试这样的程序的话调试器也需要以管理员权限重启,既麻烦又不安全。
Windows 有两种方法来判断在打开程序时要不要弹 UAC 窗口:
- 程序可以包含一个清单文件,在其内要求以管理员权限运行
- 程序的名称、描述等地方存在特定关键字,让系统认为这是安装包或更新器
AsInvoker 可以修改程序的清单,将申请的管理员权限替换为使用调用程序权限(通常是普通用户权限)。如果程序没有清单,则会写入一个默认清单,覆盖掉 Windows 的安装包检测。
这是我只花了两个晚上写的,很可能有bug,例如对不同语言的exe支持等等。欢迎抓虫!
本工具仅会清除管理员权限的要求,不会也无法保证原程序能正常运行。请自行备份原程序。
AsInvoker
AsInvoker 是一个 Windows 可执行文件降权工具。它可以移除 exe 程序清单里的管理员权限要求。
用法
用法: AsInvoker.exe 目标.exe
或者直接把目标程序拖到 AsInvoker 上。
AsInvoker 使用 kernel32.dll 里的资源 API 来从 exe 里读取程序清单,搜索 requestedExecutionLevel 元素,并替换掉管理员权限的要求。
requestedExecutionLevel 详解(英文):https://docs.microsoft.com/en-us/previous-versions/bb756929(v=msdn.10)
(也可搜索“requireAdministrator 提权”)
用例
这里的演示程序是微软 Sysinternals 的 Disk2vhd 小工具,
用来把磁盘分区转换成虚拟磁盘文件。这个程序在清单里注明了需要管理员权限。
运行这个工具的时候,UAC 画面会跳出来。如下图,程序运行正常。

现在我们用 AsInvoker 将 Disk2vhd 降权。Disk2vhd 的图标上,UAC 盾牌标志不见了。
运行时系统不再弹出 UAC 画面了。此外工具现在不能读取磁盘分区列表了,因为它现在没有管理员权限。

问题
如果把降权后的程序在 Resource Hacker 里打开,能看到原来的清单文件其实还存在于资源里。
这意味着修改过后的程序现在有两个程序清单了。
然而修改后的清单排在原版清单的前面,大概就是它生效的原因了。
我目前还不清楚怎么删掉原来的清单。如果调用 UpdateResource 并把 lpData 和 cb
置零,会直接报错无效参数,并且无法添加新清单或者保存修改。
描述:请输入描述
点击进入下载页面: AsInvoker.zip (6 K) 下载次数:0 [删除]
软件下载咨询邮箱: sdbeta@qq.com (回复及时)
 
离线lonely80

发帖
1335
今日发帖
最后登录
2022-12-28
只看该作者 沙发  发表于: 2020-04-10 09:25:22
非常感谢分享