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