Image Execution Options
( HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
) с ключом, названным по имени исполняемого файла, и строковым ( REG_SZ
) значениемизвестенбыть хорошим подспорьем, если вам необходимо изменить поведение запускаемого приложения.
Однако если у меня очень распространенное имя для исполняемого файла, например launcher.exe
, , как я могу быть немного более конкретным? Могу ли я вообще?
Я хотел бы убедиться, что затронут будет только тот конкретный исполняемый файл, который я имею в виду, хотя в моем конкретном случае это будет лишь умеренное воздействие, если я не смогу ограничить его конкретным исполняемым файлом.
Я хотел бы написать небольшую программу-оболочку, которая, подобно Process Explorer от Sysinternals, заменяет стандартное поведение моей конкретной системы, launcher.exe
устанавливая переменную окружения, как set __COMPAT_LAYER=RUNASINVOKER
в оболочке.
Теперь я знаю, как написать обертку и все такое, главный вопрос в том, есть ли способ узнатьв реестре, используя какую-то магию Image Execution Options
, чтобы ограничить область действия значения Debugger
«hack» или мне придется отфильтровать это в моей оболочке?
Имеет отношение к:
решение1
Начиная с Windows 7, появилась возможность ограничить параметры выполнения файла образа точным путем.
- Создайте dword с именем «UseFilter» и ненулевым значением в ...\Image File Execution Options\filename.exe.
- Создайте подраздел с произвольным именем, например ...\Image File Execution Options\filename.exe\MyFilter.
- В этом подразделе создайте строку с именем "FilterFullPath" и полным путем в качестве значения, например "C:\mypath\filename.exe". Также создайте там любые необходимые вам параметры, в вашем случае "Debugger".
Теперь, когда система запускает любой "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
может быть создано и установлено строковое значение.