Como posso especificar entradas REG_EXPAND_SZ em um arquivo .REG?
9
Estou tentando usar um script em lotes e um .regarquivo para configurar alguns serviços personalizados. A maioria das chaves está sendo configurada corretamente, mas preciso definir a DependOnServicechave para alguns dos serviços, que normalmente são de várias cadeias. É possível definir essa chave a partir de um .regarquivo ou será necessária a entrada manual?
REG_MULTI_SZos dados nos .regarquivos devem ser codificados em hexadecimal. Se o conteúdo nunca mudar, você poderá criar um item fictício em seu registro com os dados, exportá-lo e ajustá-lo às suas necessidades.
Se isso mudar, provavelmente será muito mais fácil usar o regprograma incluído no Windows para adicioná-lo. Para fazer isso, chame regneste formato:
O interruptor do separador é opcional. Se não for utilizado, as seqüências a serem gravadas devem ser separadas pela sequência de escape para o caractere nulo ( \0). Por exemplo, para adicionar um item chamado Flairpara HKLM\SOFTWARE\WhizBang\Excite-O-Ramacom as cordas foo, bare bazvocê deve executar:
Ótima resposta (usando um .batarquivo com regcomando em vez de um .regarquivo), mas por que ele fala sobre REG_MULTI_SZ quando a pergunta é sobre REG_EXPAND_SZ?
Norswap
0
dword: = DWORD
hex(2): = String expansível
hex(7): = Multi-String
A DWORDé um número inteiro não assinado de 32 bits (intervalo decimal: 0- 4294967295) e, no registro, um DWORDsempre começa com 0xe possui 8 dígitos a seguir 0x. Isso pode estar no formato decimal ou hexadecimal; por exemplo, 1000pode ser escrito como 0x00001000ou 0x000003e8.
DWORDSsó pode usar os dígitos 0- 9. Strings, de qualquer tipo, sempre usam ASCII e, no ACSII, 1000só podem ser escritas como 31,30,30,30. Para o tipo de dados String, o ASCII funciona em segundo plano sem que você saiba, porque o computador entende apenas 1s e 0s.
Para os tipos de dados String expansível e String múltipla, eles salvam suas entradas como uma série de códigos ASCII em formato hexadecimal, separados por vírgulas e zeros hexadecimais; então uma String expansível de 1000seriahex(2):31,00,30,00,30,00,30,00
Vamos converter %PROGRAMFILES%em uma string expansível:
Use uma ferramenta de conversão ASCII para Hex , insira %PROGRAMFILES%na caixa de texto Delimitador de saída definido pelo usuário:, %selecione Converter e ele fornecerá:
%25%50%52%4F%47%52%41%4D%46%49%4C%45%53%25
Copie / cole o resultado em um editor de texto: Mova o primeiro %para o final, Encontre / Substitua tudo %por ,00,e remova a vírgula no final da sequência. Voce deveria pegar:
Esta lição contém todo o conhecimento necessário para fazer engenharia reversa de qualquer entrada de registro codificada em hexadecimal que não esteja criptografada.
O link hotfile é apenas um arquivo 7z com uma página html (que contém o conversor) armazenada. Por que não apenas criar um link para a própria página da web?
John Bensin 08/09
1
Para evitar a podridão do link, poste todas as informações relevantes em sua resposta. para obter mais informações sobre como responder a perguntas, consulte Como responder
.bat
arquivo comreg
comando em vez de um.reg
arquivo), mas por que ele fala sobre REG_MULTI_SZ quando a pergunta é sobre REG_EXPAND_SZ?dword:
=DWORD
hex(2):
= String expansívelhex(7):
= Multi-StringA
DWORD
é um número inteiro não assinado de 32 bits (intervalo decimal:0
-4294967295
) e, no registro, umDWORD
sempre começa com0x
e possui 8 dígitos a seguir0x
. Isso pode estar no formato decimal ou hexadecimal; por exemplo,1000
pode ser escrito como0x00001000
ou0x000003e8
.DWORDS
só pode usar os dígitos0
-9
. Strings, de qualquer tipo, sempre usam ASCII e, no ACSII,1000
só podem ser escritas como31,30,30,30
. Para o tipo de dados String, o ASCII funciona em segundo plano sem que você saiba, porque o computador entende apenas 1s e 0s.Para os tipos de dados String expansível e String múltipla, eles salvam suas entradas como uma série de códigos ASCII em formato hexadecimal, separados por vírgulas e zeros hexadecimais; então uma String expansível de
1000
seriahex(2):31,00,30,00,30,00,30,00
Vamos converter
%PROGRAMFILES%
em uma string expansível:%PROGRAMFILES%
na caixa de texto Delimitador de saída definido pelo usuário:,%
selecione Converter e ele fornecerá:%
para o final, Encontre / Substitua tudo%
por,00,
e remova a vírgula no final da sequência. Voce deveria pegar:Esta lição contém todo o conhecimento necessário para fazer engenharia reversa de qualquer entrada de registro codificada em hexadecimal que não esteja criptografada.
fonte