O que é um Hex Dump?
Um despejo hexadecimal é um instantâneo da memória do computador, geralmente exibido como texto em uma tela ou em uma impressão. Hexadecimal, ou hex, é um sistema de números de base 16 usado pelos computadores para representar o código binário quando as pessoas precisam lê-lo. Despejos de computador são o nome comum para gravar informações na memória em um arquivo, geralmente antes de uma falha de software. Com isso em mente, um dump hexadecimal é normalmente usado por pessoas para trabalhar exatamente com o que um computador estava fazendo logo antes de uma falha.
Para entender um dump hexadecimal, é necessário entender um pouco sobre como os sistemas de números alternativos funcionam. Os sistemas numéricos são anotados como sendo base- [valor]. O valor em um sistema numérico determina quantos dígitos de números existem no sistema. Por exemplo, a maioria das pessoas normalmente usa um sistema de base 10 com dez números, de zero a nove. Embora possa ser difícil entender sistemas numéricos que não sejam a base 10, é muito fácil para computadores. Diferentes sistemas de contagem de base permitem programas mais rápidos e melhores métodos de armazenamento do que um sistema base-10 padrão.
A maioria dos códigos de computador funciona em binário, uma série de 1s e 0s que representam ativados e desativados na memória magnética do computador. Como um sistema de base 2, o binário possui números muito grandes que representam números de base 10 relativamente pequenos. Como um exemplo, "1001" em binário é igual a nove na base 10. Quando os computadores armazenam dados binários, eles o fazem em dois blocos de quatro dígitos, chamados de byte, cada um representando um número. Um bloco que lê "0100 1101" seria "4 13" na notação de base 10.
Hexadecimal é um sistema de números da base 16 que contém os valores de zero a 15. Como o maior número que pode ser gravado em quatro dígitos do binário é "1111" ou "15" na base 10, o número binário de quatro dígitos é mais fácil e mais curto para escrever em hexadecimal. A escrita de valores em hexadecimal reduz cada byte de oito dígitos para dois dígitos.
Um valor hexadecimal típico pode parecer um pouco diferente de um dígito de base 10. Enquanto os valores de zero a nove permanecem os mesmos, 10 a 15 ganham um único valor representativo. Esses valores são representados por AF. Na base 10, isso seria um problema matemático básico: 4 + 11 = 15. Em hexadecimal, o mesmo problema ficaria assim: 4 + B = E.
Os dumps hexadecimais usam todas essas conversões e números para cuspir uma representação em texto do que foi gravado na memória do computador no momento do dump. Um dump hexadecimal típico tem linha após linha de números em colunas estreitas e consistentes, todas escritas em hexadecimal. A primeira coluna é o endereço de memória da linha e consiste em sete dígitos. Após o endereço de memória estão os valores desse espaço convertidos em hexadecimal do binário. Normalmente, são grupos de dois valores, representando um byte ou quatro valores, representando dois. A última coluna é a soma de verificação do endereço, um valor usado para verificar a precisão das informações e, geralmente, tem seis dígitos.