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 DWORD
sempre começa com 0x
e possui 8 dígitos a seguir 0x
. Isso pode estar no formato decimal ou hexadecimal; por exemplo, 1000
pode ser escrito como 0x00001000
ou 0x000003e8
.
DWORDS
só pode usar os dígitos 0
- 9
. Strings, de qualquer tipo, sempre usam ASCII e, no ACSII, 1000
só 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 1000
seriahex(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:
25,00,50,00,52,00,4F,00,47,00,52,00,41,00,4D,00,46,00,49,00,4C,00,45,00,53,00,25,00
- Finalmente:
hex(2):25,00,50,00,52,00,4F,00,47,00,52,00,41,00,4D,00,46,00,49,00,4C,00,45,00,53,00,25,00
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.
.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?