Lesen der Thunk-Daten von Explorer.exe
-
13-12-2019 - |
Frage
Ich versuche, ein wenig IAT-Hooking in explorer.exe durchzuführen.Spezifikationen:Windows 7 x64, Visual C++.Ich habe es so weit geschafft, dass ich Thunk-Daten aus jeder ausführbaren Datei meiner Wahl lesen kann, mit Ausnahme von C:\Windows\Explorer.exe.Wenn ich mein Programm dagegen ausführe, erhalte ich eine Zugriffsverletzung beim Lesen des Speichers dieser ausführbaren Datei.Wenn ich dies jedoch gegen C:\Windows\system32\Explorer.exe und C:\Windows\sysWOW64\Explorer.exe ausführe, treten keine Probleme auf.Warum ist das?Ist C:\Windows\Explorer.exe eine Art symbolischer Link zu einer der anderen explorer.exe?Was könnte mich davon abhalten, diese Datei zu lesen?
Lösung
Auf meinem Windows 7 x64-System C:\windows\explorer.exe
ist eine 64-Bit-Binärdatei, PE32+
Format, während c:\windows\syswow64\explorer.exe
ist eine 32-Bit-Binärdatei, PE32
Format.Ist Ihre Anwendung darauf ausgelegt, beides zu lesen? PE32
Und PE32+
Formate?
Und beim Öffnen C:\Windows\System32\Explorer.exe
von einem 32-Bit-Prozess, der eine Weiterleitung zum ist c:\windows\syswow64\explorer.exe
Kopieren.Aus einem 64-Bit-Prozess c:\windows\system32\explorer.exe
existiert nicht.