GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar el comando Hexdump de Linux con ejemplos prácticos

Hexdump es un comando de Linux muy útil para desarrolladores y depuradores de aplicaciones. Tiene la capacidad de volcar el contenido de los archivos en muchos formatos, como hexadecimal, octal, ASCII y decimal. Este comando toma un archivo, o cualquier entrada estándar, como parámetro de entrada y lo convierte al formato de su elección. Supongamos que trabaja con datos binarios y no puede comprender el formato de un archivo, puede utilizar el comando Hexdump para obtener el contenido del archivo en un formato mucho mejor legible. Este comando viene preinstalado con todos los sistemas operativos Linux modernos como CentOS, Fedora, Ubuntu, Debian, Arch Linux, etc. En este artículo, demostraremos el uso del comando hexdump usando varios ejemplos. Escrito en lenguaje C, este comando puede ser fácil de entender para los programadores profesionales de C, pero para otros profesionales de TI, puede ser un comando complicado. Intentaremos hacer todo lo posible para demostrar su uso y propósito aquí en este artículo.

1) Volcado hexadecimal -b

El uso del interruptor "-b" con Hexdump mostrará el desplazamiento de entrada en formato hexadecimal. Esta opción también se denomina "Visualización octal de un byte". La salida será seguida por dieciséis bytes de datos de entrada separados por espacios, tres columnas y ceros, en octal, por línea. Este es el resultado de ejemplo que recibimos cuando ejecutamos este comando con el interruptor "-b" en un archivo llamado "Linoxide".

# hexdump -b Linoxide
0000000 124 150 151 163 040 151 163 040 040 141 040 164 145 163 164 040
0000010 114 151 156 157 170 151 144 145 040 106 151 154 145 012 125 163
0000020 145 144 040 146 157 162 040 144 145 155 157 156 163 164 162 141
0000030 164 151 157 156 040 160 165 162 160 157 163 145 163 012 012
000003f

2) Volcado hexadecimal -c

Esta opción se conoce como "Visualización de caracteres de un byte". Puede usar este parámetro de comando para mostrar el desplazamiento de entrada en hexadecimal. La cadena de salida irá seguida de dieciséis caracteres de datos de entrada separados por espacios, tres columnas y llenos de espacios por línea. Aquí está el resultado de ejemplo de este comando.

hexdump -c Linoxide
0000000   T   h   i   s       i   s           a       t   e   s   t
0000010   L   i   n   o   x   i   d   e       F   i   l   e  \n   U   s
0000020   e   d       f   o   r       d   e   m   o   n   s   t   r   a
0000030   t   i   o   n       p   u   r   p   o   s   e   s  \n  \n
000003f

3) Volcado hexadecimal -C

También conocida como "pantalla hexadecimal canónica + ASCII", muestra el desplazamiento de entrada en hexadecimal, la salida va seguida de dieciséis bytes hexadecimales de dos columnas separados por espacios, junto con los mismos dieciséis bytes en formato %_p encerrados en ``| '' caracteres. Aquí hay un ejemplo práctico de esta opción de comando.

# hexdump -C Linoxide
00000000  54 68 69 73 20 69 73 20  20 61 20 74 65 73 74 20  |This is  a test |
00000010  4c 69 6e 6f 78 69 64 65  20 46 69 6c 65 0a 55 73  |Linoxide File.Us|
00000020  65 64 20 66 6f 72 20 64  65 6d 6f 6e 73 74 72 61  |ed for demonstra|
00000030  74 69 6f 6e 20 70 75 72  70 6f 73 65 73 0a 0a     |tion purposes..|
0000003f

4) Volcado hexadecimal -d

Este interruptor/opción muestra el desplazamiento de entrada en hexadecimal, junto con ocho unidades de datos de entrada de dos bytes, cinco columnas, ceros y separados por espacios. La salida está en decimal sin signo por línea. También se conoce como modo de "visualización decimal de dos bytes". Aquí hay un ejemplo de salida de este comando.

 hexdump -d Linoxide
0000000   26708   29545   26912   08307   24864   29728   29541   08308
0000010   26956   28526   27000   25956   17952   27753   02661   29525
0000020   25701   26144   29295   25632   28005   28271   29811   24946
0000030   26996   28271   28704   29301   28528   25971   02675   00010
000003f

5) Volcado hexadecimal -o

También conocida como "visualización octal de dos bytes", muestra el desplazamiento de entrada especificado en hexadecimal. La salida del comando va seguida de ocho cantidades de datos de entrada, en octal, por línea, separadas por espacios, seis columnas, rellenos con ceros y dos bytes.

# hexdump -o Linoxide
0000000  064124  071551  064440  020163  060440  072040  071545  020164
0000010  064514  067556  064570  062544  043040  066151  005145  071525
0000020  062145  063040  071157  062040  066545  067157  072163  060562
0000030  064564  067157  070040  071165  067560  062563  005163  000012
000003f

6) Volcado hexadecimal -x

Muestra el desplazamiento en hexadecimal, seguido de ocho cantidades de datos de entrada de dos bytes, separados por espacios, cuatro columnas y ceros, en hexadecimal. Se denomina "visualización hexadecimal de dos bytes".

# hexdump -x Linoxide
0000000    6854    7369    6920    2073    6120    7420    7365    2074
0000010    694c    6f6e    6978    6564    4620    6c69    0a65    7355
0000020    6465    6620    726f    6420    6d65    6e6f    7473    6172
0000030    6974    6e6f    7020    7275    6f70    6573    0a73    000a
000003f

7) Volcado hexadecimal -v

De forma predeterminada, hexdump usa el signo de asterisco (*) para reemplazar la línea idéntica en la cadena de salida, pero la opción -v hace que hexdump muestre todos los datos de entrada. Esta opción es útil cuando se realiza el análisis de la salida completa de cualquier cadena o texto. Este comando también se puede usar en scripts de shell/bash para una mejor automatización de las tareas deseadas.

8) Volcado hexadecimal -s

"Hexdump -s" muestra solo el número especificado de bytes de un archivo, la sintaxis general para usar esta opción es la siguiente.

hexdump -s n -c  File

Donde, reemplace "n" con el número de líneas que desea mostrar y "Archivo" con su nombre de archivo real. El siguiente ejemplo de salida debería aclarar aún más este concepto.

# hexdump -s 1 -c  Linoxide
0000001   h   i   s       i   s           a       t   e   s   t       L
0000011

El comando anterior mostrará solo una línea de salida.

Puede obtener más detalles sobre hexdump usando su manual de ayuda. Simplemente escriba el siguiente comando en la terminal de su sistema Linux y se mostrarán todas las posibilidades y opciones que se pueden usar con hexdump.

man hexdump

Conclusión

Hexdump es una utilidad bastante útil para administradores de sistemas y programadores. Hace que analizar y decodificar los distintos formatos de archivo sea pan comido. Se puede usar fácilmente en programación bash o scripts de lenguaje de programación C para realizar tareas complejas de conversión de formato de archivo o análisis e ingeniería inversa. En este artículo, presentamos hexdump, sus opciones útiles y algunas demostraciones útiles de los comandos relacionados con esta utilidad. Espero que hayas disfrutado este artículo. Si tiene algún comentario o pregunta, no dude en hacérnoslo saber en los comentarios.


Linux
  1. Cómo usar el comando su en Linux con ejemplos

  2. Cómo usar el comando Sed en Linux con ejemplos

  3. Comando SCP en Linux:cómo usarlo, con ejemplos

  4. Cómo usar el comando Rmmod en Linux con ejemplos

  5. Cómo usar el comando Dig en Linux con ejemplos

Comando alias de Linux:cómo usarlo con ejemplos

Cómo usar el comando Grep en Linux + Ejemplos útiles de Grep

Comando ip de Linux con ejemplos

Cómo usar el comando gunzip de Linux con ejemplos

Cómo usar el comando rm de Linux con ejemplos

Cómo usar el comando de suspensión en Linux:explicado con ejemplos