Можно ли указать полный путь к исполняемому файлу в «Image Execution Options\*\Debugger»?

Можно ли указать полный путь к исполняемому файлу в «Image Execution Options\*\Debugger»?

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, появилась возможность ограничить параметры выполнения файла образа точным путем.

  1. Создайте dword с именем «UseFilter» и ненулевым значением в ...\Image File Execution Options\filename.exe.
  2. Создайте подраздел с произвольным именем, например ...\Image File Execution Options\filename.exe\MyFilter.
  3. В этом подразделе создайте строку с именем "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может быть создано и установлено строковое значение.

Связанный контент