Introdución
Un volcado hexadecimal é unha vista hexadecimal de datos. Pode desear usar hexadecimal ao depurar un programa ou para encamiñar un programa.
Por exemplo, moitos formatos de ficheiro teñen caracteres hexaculares específicos para denotar o seu tipo. Se estás a ler un ficheiro usando un programa e por algún motivo non está a cargar correctamente, pode ser que o ficheiro non estea no formato que estás esperando.
Se queres ver como funciona un programa e non tes o código fonte ou o software que inverte o código, podes ollar ao volcado hexadecimal para probar o que está a suceder.
¿Que é hexadecimal?
Os computadores pensan en binario . Cada carácter, número e símbolo son referenciados por un binario ou varios valores binarios.
Os seres humanos, porén, tenden a pensar en decimal.
Miles | Centos | Decenas | Unidades |
1 | 0 | 1 | 1 |
Como humanos, os nosos números máis baixos chámanse unidades e representan os números do 0 ao 9. Cando chegamos a 10, restablecemos a columna das unidades de volta a 0 e engade 1 á columna de decenas (10).
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
En binario, o número máis baixo só representa 0 e 1. Cando pasamos 1 puxemos un 1 na columna 2 e un 0 na columna 1. Cando quere representar 4 pór unha columna 1 na 4 e restablecer a columna 2 e 1.
Polo tanto, para representar 15 tes 1111 o que representa 1 oito, 1 catro, 1 dous e 1. (8 + 4 + 2 + 1 = 15).
Se vimos un ficheiro de datos en formato binario sería absolutamente enorme e prácticamente imposible dar sentido.
O seguinte paso do binario é octal, que usa o número 8 como base.
24 | 16 | 8 | 1 |
0 | 1 | 1 | 0 |
Nun sistema octal a primeira columna vai de 0 a 7, a segunda columna é de 8 a 15, a terceira columna 16 a 23 ea cuarta columna 24 a 31 e así por diante. Aínda que xeralmente son máis fáciles de ler que binarios, a maioría da xente prefire usar hexadecimal.
Os valores hexadecimales usan 16 como número de base. Agora, aquí é onde se pon confusión porque, como seres humanos, pensamos en números de 0 a 9.
Entón, o que se usa para 10, 11, 12, 13, 14, 15? A resposta é letras.
- 0 = 0
- 1 = 1
- 2 = 2
- 3 = 3
- 4 = 4
- 5 = 5
- 6 = 6
- 7 = 7
- 8 = 8
- 9 = 9
- 10 = A
- 11 = B
- 12 = C
- 13 = D
- 14 = E
- 15 = F
O valor 100 é, polo tanto, representado por 64. Necesitarás 6 da columna 16s que achega 96 e logo 4 na columna das unidades facendo 100.
Todos os caracteres dun ficheiro serán denostados por un valor hexadecimal. O que significan estes valores depende do formato do ficheiro. O formato do ficheiro denota valores hexadecimales que normalmente se almacenan ao comezo do ficheiro.
Co coñecemento da secuencia de valores hexadecimales que aparecen ao comezo dos ficheiros, pode calcular manualmente o formato no que está o ficheiro. Ver un ficheiro nun volcado hexadecimal pode axudarche a atopar caracteres ocultos que non se mostran cando o ficheiro é cargado nun editor de texto normal.
Como crear un depósito de hexágono usando Linux
Para crear un depósito hexagonal con Linux, use o comando hexdump.
Para mostrar un ficheiro como hexadecimal ao terminal (saída estándar) executa o seguinte comando:
nome de ficheiro hexdump
Por exemplo
hexdump image.png
A saída predeterminada mostrará o número de liña (en formato hexadecimal) e logo 8 conxuntos de 4 valores hexadecimales por liña.
Por exemplo:
00000000 5089 474e 0a0d 0a1a 0000 0d00 4849 5244
Pode fornecer diferentes switches para cambiar a saída predeterminada. Por exemplo, especificar o interruptor menos b producirá un desprazamento de 8 díxitos seguido de 16 columnas, cero enchido, bytes de datos de entrada en formato octal.
hexdump-b image.png
Polo tanto, o exemplo anterior agora estará representado do seguinte xeito:
00000000 211 120 116 107 015 012 032 012 000 000 000 015 111 110 104 122
O formato anterior é coñecido como display octal de un byte.
Outra forma de ver o ficheiro está en visualización de caracteres de un byte usando o modificador de menos c.
hexdump -c image.png
Este novo mostra o desprazamento, pero esta vez seguido por dezaseis espazos separados, tres columnas, caracteres de espazo de datos de entrada por liña.
Outras opcións inclúen a Canonical hex + ascii display que se pode mostrar usando o minúsculo C e unha pantalla decimal de dous bytes que se pode mostrar usando o interruptor diminuto d. O minus o switch pode usarse para mostrar a pantalla octal de dous bytes. Finalmente o minux x switch pódese usar para mostrar a pantalla hexadecimal de dous bytes.
hexdump -C image.png
hexdump -d image.png
hexdump -o image.png
hexdump -x image.png
Se ningún dos formatos mencionados anteriormente atender ás súas necesidades, use o minus e switch para especificar o formato.
Se sabe que un ficheiro de datos é moi longo e só quere ver os primeiros caracteres para determinar o seu tipo, pode usar o botón -n para especificar o tamaño do ficheiro para mostrar en hexadecimal.
hexdump -n100 image.png
O comando anterior mostra os primeiros cen bytes.
Se desexa omitir unha porción do ficheiro pode usar o interruptor de minus s para establecer unha compensación para comezar.
hexdump -s10 image.png
Se non fornece un nome de ficheiro, o texto é lido dende a entrada estándar.
Simplemente introduza o seguinte comando:
hexdump
A continuación, introduza o texto na entrada estándar e remate escribindo saír. O hexágono mostrarase na saída estándar.
Resumo
A utilidade do hexdump é obviamente unha ferramenta bastante poderosa e definitivamente debe ler a páxina de manual para que chegue a todas as funcións.
Tamén necesitará unha boa comprensión do que está a procurar ao ler a saída.
Para ver a páxina de manual, execute o seguinte comando:
home hexdump