É possível fornecer o caminho completo para um executável em "Image Execution Options\*\Debugger"?

É possível fornecer o caminho completo para um executável em "Image Execution Options\*\Debugger"?

Image Execution Options( HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options) com uma chave com o nome do executável e um REG_SZvalor de string ( )é conhecidopara ser uma boa rota se você precisar modificar o comportamento de um aplicativo a ser iniciado.

No entanto, se eu tiver um nome muito comum para um executável, como launcher.exe, como posso ser um pouco mais específico? Posso mesmo?

Gostaria de ter certeza de que apenas o binário específico que tenho em mente será afetado, embora no meu caso de uso específico seja apenas um impacto moderado se não puder limitá-lo ao executável exato.

Eu gostaria de escrever um pequeno programa wrapper que, semelhante ao Process Explorer da Sysinternals, substitua o comportamento padrão pelo meu específico, launcher.exepois define a variável de ambiente semelhante a set __COMPAT_LAYER=RUNASINVOKERum shell.

Agora que sei escrever o wrapper e tudo, a questão principal é se existe uma maneira de saberno registro, usando alguma mágica abaixo Image Execution Options, para limitar o escopo do Debuggervalor "hack" ou eu teria que filtrar isso no meu wrapper?


Refere-se à:

Responder1

A partir do Windows 7, existe uma maneira de limitar as opções de execução do arquivo de imagem ao caminho exato.

  1. Crie um dword com o nome "UseFilter" e valor diferente de zero em ...\Image File Execution Options\filename.exe.
  2. Crie uma subchave com nome arbitrário, por exemplo ...\Image File Execution Options\filename.exe\MyFilter.
  3. Sob essa subchave, crie uma string com o nome "FilterFullPath" e o caminho completo como valor, por exemplo, "C:\mypath\filename.exe". Além disso, crie as opções necessárias, "Debugger" no seu caso, lá.

Agora, quando o sistema inicia qualquer "filename.exe", ele verifica se o caminho completo corresponde a "FilterFullPath" de alguma subchave. (Pode haver diversas subchaves para caminhos diferentes.) Se houver uma correspondência, serão usadas opções da subchave correspondente. Caso contrário, as opções da chave base IFEO\filename.exe serão usadas, como de costume.

Responder2

Parece ser possível fazer assim

insira a descrição da imagem aqui

A captura de tela mostra como criar subchaves correspondentes ao caminho completo de um binário abaixo HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options, por exemplo:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe

sob o qual um Debuggervalor de string poderia ser criado e definido.

informação relacionada