¿Cómo puedo especificar entradas REG_EXPAND_SZ en un archivo .REG?
9
Estoy tratando de usar un script por lotes y un .regarchivo para configurar algunos servicios personalizados. La mayoría de las claves se están configurando correctamente, pero necesito configurar la DependOnServiceclave para algunos de los servicios, que normalmente es una cadena múltiple. ¿Es posible establecer esta clave desde un .regarchivo, o se requerirá la entrada manual?
REG_MULTI_SZLos datos en los .regarchivos deben estar codificados en hexadecimal. Si el contenido nunca cambia, puede crear un elemento ficticio en su registro con los datos, exportarlo y ajustarlo a sus necesidades.
Si cambia, probablemente será mucho más fácil usar el regprograma incluido con Windows para agregarlo. Para hacerlo, llame regen este formato:
El interruptor separador es opcional. Si no se usa, las cadenas que se escribirán deben estar separadas por la secuencia de escape para el carácter nulo ( \0). Por ejemplo, para añadir un elemento llamado Flaira HKLM\SOFTWARE\WhizBang\Excite-O-Ramalas cuerdas foo, bary baztendría que ejecutar:
Gran respuesta (usando un .batarchivo con regcomando en lugar de un .regarchivo), pero ¿por qué habla sobre REG_MULTI_SZ cuando la pregunta es sobre REG_EXPAND_SZ?
Norswap
0
dword: = DWORD
hex(2): = Cadena expandible
hex(7): = Cadena múltiple
A DWORDes un entero sin signo de 32 bits (rango decimal: 0- 4294967295) y, en el registro, a DWORDsiempre comienza con 0x8 dígitos y sigue 0x. Esto puede estar en formato decimal o hexadecimal; por ejemplo, 1000se puede escribir como 0x00001000o 0x000003e8.
DWORDSsolo puede hacer uso de los dígitos 0- 9. Las cadenas, de cualquier tipo, siempre usan ASCII, y en ACSII, 1000solo se pueden escribir como 31,30,30,30. Para el tipo de datos String, ASCII funciona en segundo plano sin que usted lo sepa porque la computadora solo comprende 1s y 0s.
Para los tipos de datos Cadena expandible y Cadena múltiple, estos guardan sus entradas como una serie de códigos ASCII en un formato hexadecimal, separados por comas y ceros hexadecimales; entonces una Cadena Expandible de 1000seríahex(2):31,00,30,00,30,00,30,00
Convirtámoslo %PROGRAMFILES%en una cadena expandible:
Use una herramienta de conversión de ASCII a Hex , ingrese %PROGRAMFILES%en el cuadro de texto, delimitador de salida definido por el usuario: %seleccione Convertir y le dará:
%25%50%52%4F%47%52%41%4D%46%49%4C%45%53%25
Copie / pegue ese resultado en un editor de texto: mueva el primero %al final, encuentre / reemplace todo %con ,00,y elimine la coma al final de la cadena. Deberías obtener:
Esta lección contiene todo el conocimiento requerido para aplicar ingeniería inversa a cualquier entrada de registro codificada en hexadecimal que no esté encriptada.
El enlace hotfile es solo un archivo 7z con una página html (que contiene el convertidor) almacenada en su interior. ¿Por qué no simplemente enlazar a la página web en sí?
John Bensin
1
Para evitar la rotura de enlaces, publique toda la información relevante en su respuesta. Para obtener más información sobre cómo responder preguntas, consulte Cómo responder
.bat
archivo conreg
comando en lugar de un.reg
archivo), pero ¿por qué habla sobre REG_MULTI_SZ cuando la pregunta es sobre REG_EXPAND_SZ?dword:
=DWORD
hex(2):
= Cadena expandiblehex(7):
= Cadena múltipleA
DWORD
es un entero sin signo de 32 bits (rango decimal:0
-4294967295
) y, en el registro, aDWORD
siempre comienza con0x
8 dígitos y sigue0x
. Esto puede estar en formato decimal o hexadecimal; por ejemplo,1000
se puede escribir como0x00001000
o0x000003e8
.DWORDS
solo puede hacer uso de los dígitos0
-9
. Las cadenas, de cualquier tipo, siempre usan ASCII, y en ACSII,1000
solo se pueden escribir como31,30,30,30
. Para el tipo de datos String, ASCII funciona en segundo plano sin que usted lo sepa porque la computadora solo comprende 1s y 0s.Para los tipos de datos Cadena expandible y Cadena múltiple, estos guardan sus entradas como una serie de códigos ASCII en un formato hexadecimal, separados por comas y ceros hexadecimales; entonces una Cadena Expandible de
1000
seríahex(2):31,00,30,00,30,00,30,00
Convirtámoslo
%PROGRAMFILES%
en una cadena expandible:%PROGRAMFILES%
en el cuadro de texto, delimitador de salida definido por el usuario:%
seleccione Convertir y le dará:%
al final, encuentre / reemplace todo%
con,00,
y elimine la coma al final de la cadena. Deberías obtener:Esta lección contiene todo el conocimiento requerido para aplicar ingeniería inversa a cualquier entrada de registro codificada en hexadecimal que no esté encriptada.
fuente