AsInvoker(exe文件降權(quán)工具)是一款Windows平臺(tái)可執(zhí)行文件降權(quán)工具,可以讓需要管理員權(quán)限的程序以當(dāng)前用戶權(quán)限啟動(dòng),它可以移除exe程序清單里的管理員權(quán)限要求。
軟件介紹
之前遇到不少作用很簡單的程序,卻需要管理員權(quán)限運(yùn)行,比如我記不清名字的某蘋果越獄助手。要調(diào)試這樣的程序的話調(diào)試器也需要以管理員權(quán)限重啟,既麻煩又不安全。
Windows 有兩種方法來判斷在打開程序時(shí)要不要彈 UAC 窗口:
- 程序可以包含一個(gè)清單文件,在其內(nèi)要求以管理員權(quán)限運(yùn)行
- 程序的名稱、描述等地方存在特定關(guān)鍵字,讓系統(tǒng)認(rèn)為這是安裝包或更新器
AsInvoker 可以修改程序的清單,將申請(qǐng)的管理員權(quán)限替換為使用調(diào)用程序權(quán)限(通常是普通用戶權(quán)限)。如果程序沒有清單,則會(huì)寫入一個(gè)默認(rèn)清單,覆蓋掉 Windows 的安裝包檢測。
這是我只花了兩個(gè)晚上寫的,很可能有bug,例如對(duì)不同語言的exe支持等等。歡迎抓蟲!
本工具僅會(huì)清除管理員權(quán)限的要求,不會(huì)也無法保證原程序能正常運(yùn)行。請(qǐng)自行備份原程序。
軟件用法
用法: AsInvoker.exe 目標(biāo).exe
或者直接把目標(biāo)程序拖到 AsInvoker 上。
AsInvoker 使用 kernel32.dll 里的資源 API 來從 exe 里讀取程序清單,搜索 requestedExecutionLevel 元素,并替換掉管理員權(quán)限的要求。
已知問題
如果把降權(quán)后的程序在 Resource Hacker 里打開,能看到原來的清單文件其實(shí)還存在于資源里。
這意味著修改過后的程序現(xiàn)在有兩個(gè)程序清單了。
然而修改后的清單排在原版清單的前面,大概就是它生效的原因了。
我目前還不清楚怎么刪掉原來的清單。如果調(diào)用 UpdateResource 并把 lpData 和 cb
置零,會(huì)直接報(bào)錯(cuò)無效參數(shù),并且無法添加新清單或者保存修改。