Ouverture% SystemRoot% \ system32 \ calc.exe d'un processus 32 bits redirige vers un autre fichier. Ce qui, pourquoi et comment?

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

Question

J'écris actuellement un code de test en C ++ qui autour avec des fichiers mess PE pour comprendre sa structure de format de fichier. Mon projet est mis à compiler à 64 bits. Dans mon code, j'ouvre% SystemRoot% \ system32 \ calc.exe et lu les structures de IMAGE_DOS_HEADER et IMAGE_NT_HEADERS. En même temps, j'ai le même calc.exe ouvert dans Notepad ++ avec le plugin éditeur hexadécimal. Je comparais les valeurs mon code se lit comme suit avec Notepad ++ et remarqué qu'ils étaient différents. Je calc.exe recopié de System32 C: \ Temp \ calc.exe, et maintenant les valeurs correspondent

.

Notepad ++ semble être une application 32 bits (n'a pas vérifié le fichier PE, mais depuis qu'il est installé dans Program Files (x86) par défaut, il semble être une hypothèse sûre à faire).

Est-ce WinSxS au travail? Ou quoi d'autre est la cause? Et quel fichier est en fait alimenté aux applications 32 bits d'ouverture% SystemRoot% \ system32 \ calc.exe?

Juste curieux. Merci d'avance pour toute la lumière sur cette.

Était-ce utile?

La solution

Oui, c'est le WOW redirecteur. Vous verrez qu'il ya un calc.exe dans C: \ Windows \ SysWOW64 ainsi. C'est le fichier qui est ouvert lorsque vous utilisez le% SystemRoot% \ System32 \ calc.exe chemin.

Ceci peut être temporairement désactivé pour accéder à la version 64 bits du fichier avec Wow64DisableWow64FsRedirection

Plus de détails sont disponibles sur le File System Redirector

Autres conseils

Si je me souviens bien, lorsqu'un 32bit applications tente d'ouvrir system32 Répertoire, il est automatiquement redirigé vers syswow64 dir.

redirection incapacitantes WowFs est inutile et est parfois même pas une option (par exemple, lorsque vous essayez d'obtenir Notepad ++ pour ouvrir des fichiers dans le répertoire system32). Vous pouvez utiliser le répertoire virtuel% windir% \ Sysnative au lieu de% windir% \ System32 (vous ne verrez pas dans l'explorateur, mais vous pouvez taper dans la barre d'adresse)

WOW64 est mis en oeuvre en trois DLL: wow64.dll, wow64cpu.dll et Wow64win.dll (et 32 ??bits NTDLL). Redirection (entre autres) est mis en œuvre wow64.dll, CPU émulation / aide routines wow64cpu.dll et Wow64win.dll contient thunks à win32k.sys (le mode noyau pilote responsable de l'interface graphique de Windows).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top