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