Apertura %Systemroot % System32 Calc.exe de un proceso de 32 bits redirige a otro archivo. ¿Cuál, por qué y cómo?

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

Pregunta

Actualmente estoy escribiendo algún código de prueba en C ++ que se meta con los archivos PE para comprender su estructura de formato de archivo. Mi proyecto está listo para compilar a 64 bits. En mi código abro %Systemroot % System32 Calc.exe y leo las estructuras Image_DOS_header e Image_NT_headers. Al mismo tiempo, tengo el mismo calc.exe abierto en Notepad ++ con el complemento del editor HEX. Comparé los valores que mi código lee con Notepad ++ y noté que eran diferentes. Copié Calc.exe de System32 a C: Temp Calc.exe, y ahora los valores coinciden.

Notepad ++ parece ser una aplicación de 32 bits (no he verificado el archivo PE, pero como está instalado en archivos de programa (x86) de forma predeterminada, parece ser una suposición segura de hacer).

¿Esto está en funcionamiento? ¿O qué más está causando esto? ¿Y qué archivo se alimenta realmente a aplicaciones de 32 bits de apertura %Systemroot % System32 Calc.exe?

Sólo curioso. Gracias de antemano por cualquier ligero cobertizo sobre esto.

¿Fue útil?

Solución

Sí, este es el redirector WOW. Verá que también hay un calc.exe en c: windows syswow64. Ese es el archivo que se abre cuando usa la ruta %SystemRoot % System32 Calc.exe.

Esto se puede deshabilitar temporalmente para acceder a la versión de 64 bits del archivo con Wow64DisableWow64fsredirection

Se pueden encontrar más detalles en Redirector del sistema de archivos

Otros consejos

Si no recuerdo bien, cuando una aplicación de 32 bits intenta abrir Sistema32 directorio, se redirige automáticamente a syswow64 directorio

Deshabilitar la redirección de WOWFS es innecesaria y, a veces, ni siquiera es una opción (por ejemplo, cuando intenta hacer que Notepad ++ abra archivos en el directorio System32). Puede usar el directorio virtual %windir % sysnative en lugar de %windir % system32 (no lo verá en Explorer, pero puede escribirlo en la barra de direcciones)

WOW64 se implementa en tres dlls: wow64.dll, wow64cpu.dll y wow64win.dll (y NTDLL de 32 bits). La redirección (entre otras cosas) se implementa en WOW64.DLL, las rutinas de emulación de CPU / ayudante en wow64cpu.dll, y wow64win.dll contiene Thunks a win32k.sys (el controlador del modo kernel responsable de la GUI de Windows).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top