En informática , un volcado hexadecimal es una representación textual hexadecimal (en pantalla o en papel) de datos informáticos, ya sea de la memoria , un archivo o un dispositivo de almacenamiento . El uso de un volcado hexadecimal de datos se suele realizar en el contexto de la depuración , la ingeniería inversa o la informática forense . [ 1 ] Los editores interactivos que ofrecen una representación similar, pero que además permiten manipular los datos en cuestión, se denominan editores hexadecimales .
En un volcado hexadecimal, cada byte (8 bits ) se representa como un número hexadecimal de dos dígitos . Los volcados hexadecimales suelen organizarse en filas de 8 o 16 bytes, a veces separadas por espacios en blanco. Algunos volcados hexadecimales tienen la dirección de memoria hexadecimal al principio. En sistemas donde la representación convencional de datos es octal , el equivalente es un volcado octal .
Algunos nombres comunes para esta función del programa son hexdump, hd, od, xxdy simplemente dumpo incluso D.
Muestras
El siguiente ejemplo muestra la salida de un programa de Unix hexdump; otros sistemas tienen programas que generan una salida similar.
0123456789ABCDEF /* ********************************************** */ Tabla con pestañas (09) 1 2 3 3.14 6.28 9.42
tal como lo muestra Unixhexdump :
0000000 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 0000010 0a 2f 2a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0000020 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a * 0000040 2a 2a 20 2a 2f 0a 09 54 61 62 6c 65 20 77 69 74 0000050 68 20 54 41 42 73 20 28 30 39 29 0a 09 31 09 09 0000060 32 09 09 33 0a 09 33 2e 31 34 09 36 2e 32 38 09 0000070 39 2e 34 32 0a 0000075La columna de la izquierda muestra el desplazamiento hexadecimal (o dirección) de los valores de las columnas siguientes. Cada fila muestra 16 bytes, a excepción de la fila que contiene un asterisco (*). El asterisco (*) indica que se omitieron múltiples apariciones del mismo valor. La última línea muestra el número de bytes tomados de la entrada.
Una columna adicional muestra la traducción del carácter ASCIIhexdump -C correspondiente con o hd:
00000000 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 | 0123456789ABCDEF | 00000010 0a 2f 2a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ./* ************ | 00000020 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | **************** | * 00000040 2a 2a 20 2a 2f 0a 09 54 61 62 6c 65 20 77 69 74 | ** */..Mesa ingenio | 00000050 68 20 54 41 42 73 20 28 30 39 29 0a 09 31 09 09 | h PESTAÑAS (09)..1.. | 00000060 32 09 09 33 0a 09 33 2e 31 34 09 36 2e 32 38 09 | 2..3..3.14.6.28. | 00000070 39 2e 34 32 0a | 9.42. | 00000075Esto resulta útil al intentar localizar caracteres de tabulación en un archivo que se espera que utilice varios espacios.
Esta -vopción hace que hexdump muestre todos los datos de forma detallada:
00000000 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 | 0123456789ABCDEF | 00000010 0a 2f 2a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ./* ************ | 00000020 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | **************** | 00000030 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | **************** | 00000040 2a 2a 20 2a 2f 0a 09 54 61 62 6c 65 20 77 69 74 | ** */..Mesa ingenio | 00000050 68 20 54 41 42 73 20 28 30 39 29 0a 09 31 09 09 | h PESTAÑAS (09)..1.. | 00000060 32 09 09 33 0a 09 33 2e 31 34 09 36 2e 32 38 09 | 2..3..3.14.6.28. | 00000070 39 2e 34 32 0a | 9.42. | 00000075sobredosis
El comando POSIX [ 2 ]od se puede utilizar para mostrar un volcado hexadecimal con la opción -t x2 .
# od -t x2 tableOfTabs.txt 00000000: 1f8b 0808 d2e9 9766 0203 6461 7461 322e 00000010: 6269 6e00 0141 02be fd42 5a68 3931 4159 00000020: 2653 59ea 2468 ae00 0017 7fff dadb b7fb 00000030: dbff 5ffb f3fb d776 3d6f fffb dbea fdbd 00000040: 85db edfc ffa9 7def faaf efdf b001 386c 00000050: 1001 a0d0 6d40 01a0 1a00 0006 8006 8000 00000060: 0000 d034 01a1 a34d 0034 3d43 40d0 0d34 00000070: d034 34da 9ea1 b49e a7a8 f29e 5106 4326 00000080: 9a19 1934 d1a0 341a 6234 d018 d468 6834 00000090: 00c9 a308 6434 0000 0308 d068 0680 1900 000000a0: 0034 d068 1a34 d068 c3a7 a41a 0c9a 0d34 000000b0: 641a 0646 8346 4003 4d34 1a68 6806 9a06 000000c0: 9a64 d064 001a 0681 a343 10d0 d00d 1840 000000d0: 01a3 21a0 68c9 a050 008a 0009 619a 9541 000000e0: 25d5 8bc0 0ff3 e679 7fd0 31b2 c784 e7f7 000000f0: 8fcb 33b8 28a5 bf86 4ac4 274f ce21 eeea 00000100: 2c19 2633 60e9 ddd1 8d60 18e9 b189 4a94 00000110: 3a14 ee61 ac8d d369 f545 a964 2617 f1fd 00000120: 72dc 51d1 e601 1071 745d 846c 4677 4ba2 00000130: 0562 5d79 894a 9150 dfe1 8083 e4c0 896f 00000140: b75c d58b 4264 021c 625c c4f2 816a 8907 00000150: 8b80 2b3e 4d2a f1b3 4fb4 6cee a869 1316 00000160: c318 cdb5 b1cd 21c4 a23a 0297 65ae 8a2a 00000170: 0cd2 0864 8a47 ed68 48f3 a65f 5803 dc9f 00000180: b2e5 bbe0 daac 3d56 8c8b 4181 510f 017f 00000190: 1328 9a47 6027 62c1 e4b4 db74 bb3a 9455 000001a0: 07dd fd5b 19b5 e522 32e0 9b3e a3cf 0189 000001b0: 4d9a 5edb 27be 1855 880f 7517 0ec0 a878 000001c0: 2ee0 92a3 e339 4138 5cb7 517a a8b7 4dab 000001d0: 8645 a681 214b 7f27 0cee 8ee5 3f4b 3a60 000001e0: 530a 74b2 8acf 9044 e73c ca09 0d28 e5b4 000001f0: 1471 0963 4a9c 3b75 73c0 4057 0c9c d0f2 . 00000200: 132a bb2c cc84 29cf 3568 9101 0a77 f033 00000210: 41a4 8cfa f520 3ed5 8a4a 9528 1314 7b32 00000220: 87c6 4825 698a 921e e1da 8f2d 4237 2da1 00000230: 3f68 051d fe05 08cb 096d 4a17 ed35 2130 00000240: 9d75 6c2f a414 8003 e650 ea14 4eb1 5fe2 00000250: ee48 a70a 121d 448d 15c0 8914 1b20 4102 . 00000260: 0000Se pueden agregar evaluaciones de caracteres con la opción -c :
0000000 0 1 2 3 4 5 6 7 8 9 ABCDEF 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 0000020 \n / * * * * * * * * * * * * * 0a 2f 2a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0000040 * * * * * * * * * * * * * * * * 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0000100 * * * / \n \t Tabla de texto 2a 2a 20 2a 2f 0a 09 54 61 62 6c 65 20 77 69 74 0000120 h TAB s ( 0 9 ) \n \t 1 \t \t 68 20 54 41 42 73 20 28 30 39 29 0a 09 31 09 09 0000140 2 \t \t 3 \n \t 3 . 1 4 \t 6 . 2 8 \t 32 09 09 33 0a 09 33 2e 31 34 09 36 2e 32 38 09 0000160 9 . 4 2 \n 39 2e 34 32 0a 0000165
En esta salida, los caracteres de tabulación se muestran como \t y los caracteres de nueva línea como \n .
VOLCADO, DDT y DEPURACIÓN
En el sistema operativo CP/M de 8 bits utilizado en las primeras computadoras personales, el programa DUMP estándar listaba un archivo de 16 bytes por línea con el desplazamiento hexadecimal al inicio de la línea y el equivalente ASCII de cada byte al final. [ 3 ] : 1-41, 5-40–5-46 Los bytes fuera del rango estándar de caracteres ASCII imprimibles (20 a 7E) se mostraban como un solo punto para la alineación visual. Este mismo formato se utilizaba para mostrar la memoria al invocar el comando D en el depurador estándar CP/M DDT . [ 3 ] : 4-5 Las encarnaciones posteriores del formato (por ejemplo, en el depurador MS-DOS DEBUG ) cambiaron el espacio entre el 8.º y el 9.º byte por un guion, sin cambiar el ancho general.
Esta notación se ha conservado en sistemas operativos derivados directa o indirectamente de CP/M, como MS-DOS y sistemas compatibles, OS/2 y Windows . En sistemas Linux , el comando hexcat también genera este formato de salida clásico. La principal razón de este diseño es que permite mostrar la máxima cantidad de datos posible en una pantalla o impresora estándar de 80 caracteres, a la vez que facilita la lectura y la exploración visual.
1234 : 0000 : 57 69 6B 69 70 65 64 69 61 2C 20 74 68 65 20 66 Wikipedia, la f 1234 : 0010 : 72 65 65 20 65 6E 63 79 63 6C 6F 70 65 64 69 61 enciclopedia libre 1234 : 0020 : 20 74 68 61 74 20 61 6E 79 6F 6E 65 20 63 61 6E que cualquiera puede 1234 : 0030 : 20 65 64 69 74 00 00 00 00 00 00 00 00 00 00 00 editar...........Aquí, la columna de la izquierda representa la dirección donde se encuentran los bytes representados por las columnas siguientes. CP/M y MS-DOS se ejecutan en modo real en las CPU x86 , donde las direcciones se componen de dos partes (base y desplazamiento).
En los ejemplos anteriores, los últimos 00 son bytes inexistentes más allá del final del archivo. Algunas herramientas de volcado muestran otros caracteres para que quede claro que están más allá del final del archivo, normalmente usando espacios o asteriscos, por ejemplo:
1234 : 0000 : 57 69 6B 69 70 65 64 69 61 2C 20 74 68 65 20 66 Wikipedia, la f 1234 : 0010 : 72 65 65 20 65 6E 63 79 63 6C 6F 70 65 64 69 61 enciclopedia libre 1234 : 0020 : 20 74 68 61 74 20 61 6E 79 6F 6E 65 20 63 61 6E que cualquiera puede 1234 : 0030 : 20 65 64 69 74 editaro
1234 : 0000 : 57 69 6B 69 70 65 64 69 61 2C 20 74 68 65 20 66 Wikipedia, la f 1234 : 0010 : 72 65 65 20 65 6E 63 79 63 6C 6F 70 65 64 69 61 enciclopedia libre 1234 : 0020 : 20 74 68 61 74 20 61 6E 79 6F 6E 65 20 63 61 6E que cualquiera puede 1234 : 0030 : 20 65 64 69 74 ** ** ** ** ** ** ** ** ** ** ** editarVéase también
Referencias
- ↑ Liberatore, Marc (Primavera de 2017). "02: hexdump" . COMPSCI 365/590F . Informática forense. Archivado del original el 29/10/2023 . Consultado el 05/09/2022 .
- ↑ "POSIX" . Consultado el 29 de octubre de 2023 .
- 1 2 Manual del sistema operativo CP/M (PDF) (3.ª ed.). Pacific Grove, California, EE. UU.: Digital Research . Septiembre de 1983. págs. 1-41, 4-5, 5-40 – 5-46 . Archivado (PDF) del original el 1 de abril de 2023. Recuperado el 29 de octubre de 2023 .
Enlaces externos
- Cómo usar la utilidad Hexdump de Unix: Ejemplos detallados.
- hdr Hexdump con rangos coloreados para facilitar la visualización. Opciones para omitir datos, mostrar campos de bits, definición de rangos complejos, etc. Siga el enlace a 'hdr_examples.pod'.
- Hoja de referencia hexadecimal para buscar byte-nibbles y nibble-bits.
- Depuración
- sistema numérico hexadecimal