Öffnen %Systemroot % System32 Calc.exe von einem 32-Bit-Prozess leitet zu einer anderen Datei um. Was, warum und wie?

StackOverflow https://stackoverflow.com/questions/5822113

Frage

Ich schreibe derzeit einen Testcode in C ++, der mit PE -Dateien durcheinander bringt, um die Dateiformatstruktur zu verstehen. Mein Projekt soll 64 -Bit kompilieren. In meinem Code öffne ich %SystemRoot % System32 Calc.exe und lese die Strukturen image_dos_header und image_nt_headers. Gleichzeitig habe ich das gleiche Calc.exe in Notepad ++ mit dem HEX -Editor -Plugin geöffnet. Ich habe die Werte verglichen, die mein Code mit Notepad ++ liest und bemerkte, dass sie unterschiedlich waren. Ich habe Calc.exe von System32 bis C: temp calc.exe kopiert, und jetzt stimmen die Werte überein.

Notepad ++ scheint eine 32 -Bit -Anwendung zu sein (habe die PE -Datei nicht überprüft, aber da sie standardmäßig in die Programmdateien (x86) installiert ist, scheint es eine sichere Annahme zu sein).

Ist das WINSXS bei der Arbeit? Oder was verursacht das noch? Und welche Datei wird tatsächlich an 32-Bit-Anwendungen gespeist, die %Systemroot % System32 Calc.exe öffnen?

Nur neugierig. Vielen Dank im Voraus für jeden leichten Schuppen.

War es hilfreich?

Lösung

Ja, das ist der WOW -Redirector. Sie werden sehen, dass es auch in C: Windows syswow64 gibt. Dies ist die Datei, die geöffnet wird, wenn Sie den %SystemRoot % System32 Calc.exe -Pfad verwenden.

Dies kann vorübergehend deaktiviert werden, um auf die 64-Bit-Version der Datei mit zuzugreifen WOW64DisableWow64FSReDirection

Weitere Details finden Sie unter Dateisystemumleitung

Andere Tipps

Wenn ich mich gut erinnere, wenn ein 32 -Bit -Apps versucht, sich zu öffnen System32 Verzeichnis, es wird automatisch umgeleitet SYSWOW64 Dir.

Das Deaktivieren der WOWFS -Umleitung ist unnötig und manchmal ist nicht einmal eine Option (zum Beispiel, wenn Sie versuchen, Notepad ++ zum Öffnen von Dateien im System32 -Verzeichnis zu öffnen). Sie können das virtuelle Verzeichnis %Windir % sySnative anstelle von %wintenhöflich System32 verwenden (Sie werden es nicht im Explorer sehen, aber Sie können es in die Adressleiste eingeben).

WOW64 ist in drei DLLs implementiert: WOW64.DLL, WOW64CPU.DLL und WoW64Win.dll (und 32-Bit NTDLL). Die Umleitung (unter anderem) wird in WoW64.Dll, CPU -Emulation / Helfer -Routinen in WoW64CPU.dll und WoW64Win.dll implementiert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top