Ist es möglich, den vollständigen Pfad zu einer ausführbaren Datei in „Image Execution Options\*\Debugger“ anzugeben?

Ist es möglich, den vollständigen Pfad zu einer ausführbaren Datei in „Image Execution Options\*\Debugger“ anzugeben?

Image Execution Options( HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options) mit einem Schlüssel, der nach der ausführbaren Datei benannt ist, und einem String ( REG_SZ)-Wertist bekanntein guter Zwischenschritt, wenn Sie das Verhalten einer zu startenden Anwendung ändern müssen.

Wenn ich jedoch einen sehr gebräuchlichen Namen für eine ausführbare Datei habe, z. B. launcher.exe, wie kann ich dann etwas spezifischer sein? Ist das überhaupt möglich?

Ich möchte sicherstellen, dass nur die bestimmte Binärdatei betroffen ist, an die ich denke, obwohl die Auswirkung in meinem speziellen Anwendungsfall nur mäßig ist, wenn ich sie nicht auf die genaue ausführbare Datei beschränken kann.

Ich möchte mir ein kleines Wrapper-Programm schreiben, dass ähnlich dem Process Explorer von Sysinternals das Standardverhalten für meine speziellen Fälle ersetzt, launcher.exeindem es die Umgebungsvariable ähnlich wie set __COMPAT_LAYER=RUNASINVOKERin einer Shell setzt.

Jetzt weiß ich, wie man den Wrapper usw. schreibt. Die Hauptfrage ist, ob es eine Möglichkeit gibt, dies zu erkennen.in der Registrierung, indem ich etwas Magie darunter verwende Image Execution Options, um den Umfang des DebuggerWertes „Hack“ zu begrenzen, oder müsste ich dies in meinem Wrapper filtern?


Bezieht sich auf:

Antwort1

Ab Windows 7 gibt es eine Möglichkeit, die Ausführungsoptionen für Bilddateien auf den genauen Pfad zu beschränken.

  1. Erstellen Sie ein DWORD mit dem Namen „UseFilter“ und einem Wert ungleich Null unter …\Image File Execution Options\filename.exe.
  2. Erstellen Sie einen Unterschlüssel mit einem beliebigen Namen, z. B. …\Image File Execution Options\filename.exe\MyFilter.
  3. Erstellen Sie unter diesem Unterschlüssel eine Zeichenfolge mit dem Namen „FilterFullPath“ und dem vollständigen Pfad als Wert, z. B. „C:\mypath\filename.exe“. Erstellen Sie dort auch die gewünschten Optionen, in Ihrem Fall „Debugger“.

Wenn das System nun eine beliebige „filename.exe“ startet, prüft es, ob der vollständige Pfad mit „FilterFullPath“ aus einem beliebigen Unterschlüssel übereinstimmt. (Es kann mehrere Unterschlüssel für verschiedene Pfade geben.) Wenn eine Übereinstimmung vorliegt, werden Optionen aus dem übereinstimmenden Unterschlüssel verwendet. Andernfalls werden wie üblich Optionen aus dem Basisschlüssel IFEO\filename.exe verwendet.

Antwort2

Es scheint möglich zu sein, es so zu machen

Bildbeschreibung hier eingeben

Der Screenshot zeigt, wie Unterschlüssel erstellt werden, die dem vollständigen Pfad einer darunter liegenden Binärdatei entsprechen HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options, z. B.:

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

unter dem dann ein DebuggerStringwert erstellt und gesetzt werden könnte.

verwandte Informationen