Com crear un fitxer de text d'un arxiu o cadena de text

Introducció

Un bolcat hexadecimal és una vista hexadecimal de dades. És possible que vulgueu utilitzar hexadecimal en depurar un programa o en engegar un programa invers.

Per exemple, molts formats de fitxer tenen caràcters hexadecimals específics per denotar el seu tipus. Si esteu intentant llegir un fitxer amb un programa i, per alguna raó, no esteu carregant correctament, és possible que el fitxer no estigui en el format que esteu esperant.

Si voleu veure com funciona un programa i no té el codi font o la peça de programari que inverteix el codi d'enginyers, podeu consultar l'abocador hexagonal per provar el que està passant.

Què és hexadecimal?

Els ordinadors pensen en binari . Cada caràcter, número i símbol es fa referència a un valor binari binari o múltiple.

Els éssers humans, però, tendeixen a pensar en un decimal.

Milers Centenars Tens Unitats
1 0 1 1

Com a éssers humans, els nostres nombres més baixos s'anomenen unitats i representen els números del 0 al 9. Quan arribem a 10, restablirem la columna d'unitats a 0 i afegim 1 a la columna de desenes (10).

128 64 32 16 8 4 2 1
1 0 0 1 0 0 0 1

En binari, el nombre més baix només representa 0 i 1. Quan arribem a l'1, col·loquem 1 a la columna 2 i 0 a la columna 1. Quan vulgueu representar 4, posa un 1 de la columna 4 i restabliu la columna 2 i 1.

Per tant, per representar 15, tindríeu 1111, que representa 1 vuit, 1 quatre, 1 dos i 1 un. (8 + 4 + 2 + 1 = 15).

Si veiéssim un fitxer de dades en format binari, seria absolutament enorme i pràcticament impossible tenir sentit.

El següent pas del binari és octal, que utilitza 8 com a número base.

24 16 8 1
0 1 1 0

En un sistema octal, la primera columna va de 0 a 7, la segona columna és de 8 a 15, la tercera columna 16 a la 23 i la quarta columna 24 a 31 i així successivament. Encara que generalment és més fàcil de llegir que binari, la majoria de la gent prefereix utilitzar hexadecimal.

L'hexadecimal utilitza 16 com a número base. Ara, aquí és on es fa confús perquè, com a humans, pensem en números entre 0 i 9.

Llavors, què s'utilitza per 10, 11, 12, 13, 14, 15? La resposta és lletra.

Per tant, el valor 100 és representat per 64. Necessitaràs 6 de la columna 16s que obre 96 i després 4 a la columna d'unitats fent 100.

Tots els caràcters d'un fitxer es denotaran amb un valor hexadecimal. El significat d'aquests valors depèn del format del fitxer. El format del fitxer es denota pels valors hexadecimals que normalment s'emmagatzemen al principi del fitxer.

Amb el coneixement de la seqüència de valors hexadecimals que apareixen al principi dels fitxers, podeu comprovar manualment quin format té el fitxer. Visualitzar un fitxer en un abocador hexadecimal us pot ajudar a trobar caràcters ocults que no es mostren quan el fitxer és carregat en un editor de text normal.

Com crear un abocament hexagonal amb Linux

Per crear un abocador hexadecimal usant Linux utilitzeu l'ordre hexdump.

Per mostrar un fitxer com hexadecimal al terminal (sortida estàndard) executeu el següent comandament:

hexdump filename

Per exemple

hexdump image.png

La sortida predeterminada mostrarà el número de línia (en format hexadecimal) i després 8 sèries de 4 valors hexadecimals per línia.

Per exemple:

00000000 5089 474e 0a0d 0a1a 0000 0d00 4849 5244

Podeu proporcionar diferents commutadors per canviar la sortida predeterminada. Per exemple, especificar l'opció menys l'interruptor b produirà un desplaçament de 8 dígits seguit de 16 columnes, zero ple, bytes de dades d'entrada en format octal.

hexdump-b image.png

Per tant, l'exemple anterior es representarà de la manera següent:

00000000 211 120 116 107 015 012 032 012 000 000 000 015 111 110 104 122

El format anterior es coneix com a visualització octal d'un byte.

Una altra manera de veure el fitxer es mostra en un byte amb el modificador de menys c.

hexdump -c image.png

Això torna a mostrar el desplaçament, però aquesta vegada, seguit de setze espais separats, tres columnes, caràcters plens d'espai de dades d'entrada per línia.

Altres opcions inclouen la pantalla Canonical hex + ascii que es pot visualitzar utilitzant el minus C switch i la pantalla decimal de dos bytes que es pot visualitzar utilitzant el switch d minus d. El minus o switch es pot utilitzar per mostrar la pantalla octal de dos bytes. Finalment, el minux x switch es pot utilitzar per mostrar la pantalla hexadecimal de dos bytes.

hexdump -C image.png

hexdump -d image.png

hexdump -o image.png

hexdump -x image.png

Si cap dels formats anteriors s'adapta a les vostres necessitats, utilitzeu el botó menys l'interruptor per especificar el format.

Si sabeu que un fitxer de dades és molt llarg i només voleu veure els primers caràcters per determinar el tipus, podeu utilitzar el botó -n per especificar quina part del fitxer es mostrarà en hexadecimal.

hexdump -n100 image.png

L'ordre anterior mostra els primers cents bytes.

Si voleu saltar una part del fitxer, podeu utilitzar l'interruptor de minus s per establir un desplaçament per començar.

hexdump -s10 image.png

Si no proporcioneu un nom de fitxer, es llegeix el text de l'entrada estàndard.

Simplement introduïu l'ordre següent:

hexdump

A continuació, introduïu el text a l'entrada estàndard i acabeu escrivint deixar de fumar. L'hexadecimal es mostrarà a la sortida estàndard.

Resum

La utilitat hexdump és, òbviament, una eina bastant poderosa i definitivament hauria de llegir la pàgina del manual per tal d'obtenir totes les funcions.

També necessitareu una bona comprensió del que esteu buscant al llegir la sortida.

Per veure la pàgina de manual, executeu el següent comandament:

home hexdump