Image Execution Options
( HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
) 帶有以執行檔命名的鍵和字串 ( REG_SZ
) 值已知如果您需要修改要啟動的應用程式的行為,那麼這是一個很好的路由。
但是,如果我的可執行檔有一個非常常見的名稱,例如launcher.exe
,我怎麼能更具體一些呢?我可以嗎?
我想確保只有我想到的特定二進位檔案會受到影響,儘管在我的特定用例中,如果我不能將其限制為確切的可執行文件,那麼它只會產生中等影響。
我想為自己編寫一個小包裝程序,類似於 Sysinternals 的 Process Explorer,它取代了我的特定標準行為,launcher.exe
因為它設定了類似於set __COMPAT_LAYER=RUNASINVOKER
shell 中的環境變數。
現在我知道如何編寫包裝器等,主要問題是,是否有辦法告訴在註冊表中,使用下面的一些魔法Image Execution Options
來限制值“hack”的範圍Debugger
,或者我是否必須在包裝器中過濾它?
涉及到:
答案1
從 Windows 7 開始,有一種方法可以將映像檔執行選項限制為精確路徑。
- 在 ...\Image File Execution Options\filename.exe 下建立一個名為「UseFilter」且值非零的雙字。
- 建立一個任意名稱的子項,例如...\Image File Execution Options\filename.exe\MyFilter。
- 在該子項目下,建立一個名為「FilterFullPath」和完整路徑作為值的字串,例如「C:\mypath\filename.exe」。另外,創建您需要的任何選項,根據您的情況創建“調試器”。
現在,當系統啟動任何「filename.exe」時,它會檢查完整路徑是否與任何子項目中的「FilterFullPath」相符。 (不同路徑可以有多個子項。)如果存在匹配項,則使用匹配子項中的選項。否則,像往常一樣使用基本密鑰 IFEO\filename.exe 中的選項。
答案2
似乎可以這樣做
螢幕截圖顯示建立與下面的二進位檔案的完整路徑相對應的子項HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
,例如:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe
然後可以在其下方Debugger
建立和設定字串值。