Ako vytvoriť Hexdump súboru alebo reťazec textu

úvod

Hex výpis je hexadecimálny pohľad na dáta. Pri ladení programu alebo spätnom inžinierstve programu môžete použiť šestnástkový súbor.

Napríklad veľa formátov súborov má špecifické hexadecimálne znaky na označenie ich typu. Ak sa pokúšate prečítať súbor pomocou programu a z nejakého dôvodu sa nenahrádza správne, môže sa stať, že súbor nie je vo formáte, ktorý očakávate.

Ak chcete vidieť, ako program funguje a nemáte zdrojový kód alebo softvér, ktorý spätne spracováva kód, môžete sa pozrieť na hexadecimálny výpis a pokúsiť sa zistiť, čo sa deje.

Čo je šestnástková?

Počítače myslia v binárnom . Každý znak, číslo a symbol sú označené binárnymi alebo viacnásobnými binárnymi hodnotami.

Ľudské bytosti majú však tendenciu myslieť na desatinné miesta.

tisíce stovky desiatky Jednotky
1 0 1 1

Ako ľudia, naše najnižšie čísla sa nazývajú jednotky a predstavujú čísla od 0 do 9. Keď sa dostaneme na 10, vynulujeme stĺpec jednotiek späť na 0 a pridáme 1 do desiatkového stĺpca (10).

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

V binárnom čísle najmenšie číslo predstavuje iba 0 a 1. Keď prekonáme 1, umiestnime 1 v stĺpci 2 a stĺpec 0 v stĺpci 1. Ak chcete reprezentovať 4, vložte 1 do stĺpca 4 a vynulujte stĺpec 2 a 1.

Preto, aby ste zastupovali 15, mali by ste 1111, čo predstavuje 1 osem, 1 štyri, 1 dva a 1 jedno. (8 + 4 + 2 + 1 = 15).

Ak by sme videli dátový súbor v binárnom formáte, bolo by to úplne obrovské a prakticky nemožné pochopiť.

Nasledujúci krok z binárneho okienka je osemčlenný, ktorý používa 8 ako základné číslo.

24 16 8 1
0 1 1 0

V osmičkovom systéme je prvý stĺpec od 0 do 7, druhý stĺpec je 8 až 15, tretí stĺpec 16 až 23 a štvrtý stĺpec 24 až 31 atď. Zatiaľ čo sú všeobecne ľahšie čitateľné ako binárne, väčšina ľudí dáva prednosť použitiu šestnástkového súboru.

Hexadecimálne používa 16 ako základné číslo. Teraz je to miesto, kde sa dostane mätúce, pretože ako ľudia si myslíme, že čísla ako 0 až 9.

Takže čo sa používa pre 10, 11, 12, 13, 14, 15? Odpoveď je písmená.

Hodnota 100 je preto reprezentovaná číslom 64. Budete potrebovať 6 zo stĺpca 16s, ktorý prináša 96 a potom 4 v stĺpci jednotiek 100.

Všetky znaky v súbore budú označené hexadecimálnou hodnotou. Čo tieto hodnoty závisia od formátu samotného súboru. Formát súboru je označený hexadecimálnymi hodnotami, ktoré sú zvyčajne uložené na začiatku súboru.

S poznaním sekvencie šestnástkových hodnôt, ktoré sa zobrazujú na začiatku súborov, môžete manuálne zistiť, v akom formáte sa nachádza súbor. Zobrazenie súboru v hexadecimálnej pokladnici vám pomôže nájsť skryté znaky, ktoré sa nezobrazia, keď je súbor vložený do bežného textového editora.

Ako vytvoriť Hex výpis pomocou Linuxu

Ak chcete vytvoriť hexadecimálny výpis pomocou systému Linux, použite príkaz hexdump.

Ak chcete zobraziť súbor ako hexadecimálny konektor (štandardný výstup), spustite nasledujúci príkaz:

hexdump názov súboru

Napríklad

hexdump image.png

Predvolený výstup zobrazí číslo riadku (v hexadecimálnom formáte) a potom 8 sád šestnástkových hodnôt na riadok.

Napríklad:

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

Na zmenu predvoleného výstupu môžete dodať rôzne prepínače. Napríklad určením prepínača mínus b vznikne 8-miestny posun, po ktorom nasleduje 16 stĺpcov, nula plných bajtov vstupných dát v osmičkovom formáte.

hexdump -b image.png

Preto vyššie uvedený príklad bude teraz reprezentovaný nasledovne:

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

Vyššie uvedený formát je známy ako oktávový displej s jedným bajtom.

Ďalší spôsob zobrazenia súboru je v jednom bajtovom zobrazení pomocou spínača minus c.

hexdump -c image.png

Toto znova zobrazuje posun, ale tentoraz nasleduje šestnásť oddelených priestorov, tri stĺpce a znaky na ploche vyplnené znakmi.

Ďalšie možnosti zahŕňajú Canonical hex + ascii displej, ktorý možno zobraziť pomocou prepínača mínus C a dvojbajtového desatinného displeja, ktorý možno zobraziť pomocou prepínača mínus d. Pomocou prepínača mínus o môžete zobraziť dvojbalený osmičkový displej. Nakoniec prepínač minux x možno použiť na zobrazenie šestnástkového zobrazenia s dvoma bajtami.

hexdump -C image.png

hexdump -d image.png

hexdump -o image.png

hexdump -x image.png

Ak žiadny z vyššie uvedených formátov nevyhovuje vašim potrebám, použite prepínač minus e na určenie formátu.

Ak viete, že dátový súbor je veľmi dlhý a chcete určiť len niekoľko prvých znakov, môžete použiť prepínač -n a určiť, koľko súboru sa má zobraziť v šestnástke.

hexdump -n100 image.png

Uvedený príkaz zobrazuje prvých sto bajtov.

Ak chcete preskočiť časť súboru, môžete použiť prepínač minus s na nastavenie posunu, od ktorého chcete začať.

hexdump -s10 image.png

Ak neposkytnete názov súboru, text sa prečíta zo štandardného vstupu.

Jednoducho zadajte nasledujúci príkaz:

hexdump

Potom zadajte text do štandardného vstupu a skončíte napísaním ukončenia. Šestnásobok sa zobrazí na štandardnom výstupe.

zhrnutie

Pomôcka hexdump je samozrejme pomerne silný nástroj a mali by ste si určite prečítať manuálnu stránku, aby ste sa plne oboznámili so všetkými funkciami.

Tiež by ste potrebovali dobré pochopenie toho, čo hľadáte pri čítaní výstupu.

Ak chcete zobraziť manuálovú stránku, spustite nasledujúci príkaz:

man hexdump