La copia de c:\windows\regedit.exe falla

La copia de c:\windows\regedit.exe falla

Esta noche me encontré con un fenómeno extraño en win7 (64 bits pro). Cuando copio regedit.exe, por ejemplo, a c:\ ya no puedo ejecutarlo. Simplemente ya no empieza. Cuando intento depurarlo con olly db, olly dice que ya no es un archivo pe de 32 bits válido. Una mirada más cercana revela que el archivo está de alguna manera codificado/realineado. El encabezado PE se mueve 8 bytes hacia atrás. Las secciones rdata y pdata aparecen de la nada.

¿Qué diablos está pasando aquí?

Saludos, enero

Respuesta1

No es un archivo válido de 32 bits porque C:\Windows\regedit.exees un ejecutable de 64 bits. La versión de 32 bits es C:\Windows\SysWow64\regedit.exe.

Puedo confirmar que ninguno de los dos se ejecutará si se copia desde su ubicación predeterminada.

Win7 hace algo de magia bajo las sábanas. Si ejecuta regedit desde un proceso de 32 bits, obtendrá el archivo ejecutable de 32 bits de C:\Windows\SysWow64. Si ejecuta desde un proceso de 64 bits, obtendrá el que está en C:\Windows. Entonces, cuando su depurador de 32 bits cree que está depurando, C:\Windows\regedit.exeen realidad tiene C:\Windows\SysWow64\regedit.exe. Cuando copia regedit.exe, C:\Windowsla redirección no se produce y su depurador de 32 bits tiene el exe de 64 bits, de ahí el cambio aparente.

Respuesta2

Al copiar regedit.exe, debe copiar también el .muiarchivo ubicado en una culturesubcarpeta (por ejemplo fr-FR\regedit.exe.mui), de lo contrario no se iniciará.

Respuesta3

Varias de las herramientas en NT6 son así de estúpidas, no se ejecutarán sin sus archivos MUI (probablemente en la carpeta en-us).

Una vez hackeé regedit para ejecutarlo no elevado como administrador y tuve que luchar hasta el final para que se ejecutara esa copia pirateada y no recuerdo los detalles exactos de lo que tenía que hacer...

información relacionada