Tengo una buena pregunta aquí.¿Por qué renombrar reg.exe en Windows Server 2008 x64 hace que no se ejecute?
Hay una utilidad llamada reg.exe que se ha enviado con Windows desde hace bastante tiempo. Es muy útil para importar archivos .reg desde scripts, modificar valores de scripts, etc., etc. Por lo tanto, al hacer una copia para un guión ("¿Por qué no usar la copia en system32?" -> Políticas de restricción de software, prefijo personal , etc) me di cuenta de que el cambio de nombre que hace que falle en silencio:
Windows Server 2008 x64:
Microsoft Windows [Version 6.0.6001]
Copyright (c) 2006 Microsoft Corporation. All rights reserved.
C:\Windows\system32>reg.exe
ERROR: Invalid syntax.
Type "REG /?" for usage.
C:\Windows\system32>copy reg.exe reg2.exe
1 file(s) copied.
C:\Windows\system32>reg2.exe
C:\Windows\system32>reg2.exe /?
C:\Windows\system32>reg.exe /?
REG Operation [Parameter List]
Operation [ QUERY | ADD | DELETE | COPY |
SAVE | LOAD | UNLOAD | RESTORE |
COMPARE | EXPORT | IMPORT | FLAGS ]
Return Code: (Except for REG COMPARE)
0 - Successful
1 - Failed
For help on a specific operation type:
REG Operation /?
Examples:
REG QUERY /?
REG ADD /?
REG DELETE /?
REG COPY /?
REG SAVE /?
REG RESTORE /?
REG LOAD /?
REG UNLOAD /?
REG COMPARE /?
REG EXPORT /?
REG IMPORT /?
REG FLAGS /?
C:\Windows\system32>
Pero con Windows XP x86:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\chris>cd \WINDOWS\system32
C:\WINDOWS\system32>reg.exe
Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001. All rights reserved
REG Operation [Parameter List]
Operation [ QUERY | ADD | DELETE | COPY |
SAVE | LOAD | UNLOAD | RESTORE |
COMPARE | EXPORT | IMPORT ]
Return Code: (Except of REG COMPARE)
0 - Succussful
1 - Failed
For help on a specific operation type:
REG Operation /?
Examples:
REG QUERY /?
REG ADD /?
REG DELETE /?
REG COPY /?
REG SAVE /?
REG RESTORE /?
REG LOAD /?
REG UNLOAD /?
REG COMPARE /?
REG EXPORT /?
REG IMPORT /?
C:\WINDOWS\system32>copy reg.exe reg2.exe
1 file(s) copied.
C:\WINDOWS\system32>reg2.exe
Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001. All rights reserved
REG Operation [Parameter List]
Operation [ QUERY | ADD | DELETE | COPY |
SAVE | LOAD | UNLOAD | RESTORE |
COMPARE | EXPORT | IMPORT ]
Return Code: (Except of REG COMPARE)
0 - Succussful
1 - Failed
For help on a specific operation type:
REG Operation /?
Examples:
REG QUERY /?
REG ADD /?
REG DELETE /?
REG COPY /?
REG SAVE /?
REG RESTORE /?
REG LOAD /?
REG UNLOAD /?
REG COMPARE /?
REG EXPORT /?
REG IMPORT /?
C:\WINDOWS\system32>
WinDBG parece decirme que el CRT lo está matando:
Child-SP RetAddr Call Site
00000000`0016f798 00000000`779d2f8b ntdll!ZwTerminateProcess+0xa
00000000`0016f7a0 000007fe`fe97d832 ntdll!RtlExitUserProcess+0x8b
00000000`0016f7d0 00000000`ffe7f710 msvcrt!cinit+0x13b
00000000`0016f810 00000000`778a495d reg!DynArrayGetItemType2+0x1fc
00000000`0016f850 00000000`779d8791 kernel32!BaseThreadInitThunk+0xd
00000000`0016f880 00000000`00000000 ntdll!RtlUserThreadStart+0x1d
Pero como no tengo demasiada experiencia con WinDbg (y esta es de 64 bits, por ejemplo, Ollydbg falla), estoy algo perdido aquí. Gracias por cualquier información que ustedes tengan.
Editar
Gracias a la ayuda de CyberShadow y un poco de google, he encontrado la solución: busca .MUI (que es la traducción) en una subcarpeta del idioma actual instalada.
Microsoft Windows [Version 6.0.6001]
Copyright (c) 2006 Microsoft Corporation. All rights reserved.
C:\Windows\system32>cd en-US
C:\Windows\System32\en-US>copy reg.exe.mui reg2.exe.mui
1 file(s) copied.
C:\Windows\System32\en-US>cd ..
C:\Windows\System32>reg2
ERROR: Invalid syntax.
Type "REG /?" for usage.
C:\Windows\System32>del en-US\reg2.exe.mui
C:\Windows\System32>reg2
C:\Windows\System32>
Veo lo mismo en Win7 x64. Copiar reg.exe en otro directorio falla de la misma manera. Parece una verificación de seguridad para asegurarse de que está ejecutando exactamente "reg.exe" desde el directorio del sistema. – karoberts