Úvod
Hex výpis je hexadecimální pohled na data. Pokud ladíte program nebo spustíte program, můžete použít hexadecimální.
Například mnoho formátů souborů má specifické hexadecimální znaky, které označují jejich typ. Pokud se pokoušíte číst soubor pomocí programu a z nějakého důvodu se nevkládá správně, může se stát, že soubor není ve formátu, který očekáváte.
Chcete-li vidět, jak program funguje a nemáte zdrojový kód nebo software, který zpomaluje kódování, můžete se podívat na hexadecimální výpis a pokusit se zjistit, co se děje.
Co je hexadecimální?
Počítače myslí v binární . Každá písmena, číslo a symbol jsou označeny binárními nebo několika binárními hodnotami.
Lidské bytosti mají však tendenci myslet v desítkách.
Tisíce | Stovky | Desítky | Jednotky |
1 | 0 | 1 | 1 |
Jako lidé se naše nejnižší čísla nazývají jednotky a reprezentují čísla 0 až 9. Když dosáheme 10, vrátíme sloupec jednotek zpět na 0 a přidáme 1 do deseti sloupců (10).
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
V binárním čísle nejmenší číslo představuje pouze 0 a 1. Když se dostaneme kolem 1, umístíme 1 do sloupce 2 a 1 do sloupce 1. Pokud chcete reprezentovat 4, vložte 1 do sloupce 4 a vynulujte sloupec 2 a 1.
Proto reprezentovat 15 byste měli 1111, což znamená 1 osm, 1 čtyři, 1 dvě a 1 jedna. (8 + 4 + 2 + 1 = 15).
Kdybychom si prohlíželi datový soubor v binárním formátu, bylo by to naprosto obrovské a prakticky nemožné pochopit.
Další krok od binárního je osmičkový, který jako základní číslo používá 8.
24 | 16 | 8 | 1 |
0 | 1 | 1 | 0 |
V osmičkovém systému se první sloupec pohybuje od 0 do 7, druhý sloupec je 8 až 15, třetí sloupec 16 až 23 a čtvrtý sloupec 24 až 31 a tak dále. Zatímco je obecně snazší číst než binární, většina lidí raději používá hexadecimální.
Hexadecimal používá 16 jako základní číslo. Nyní je to místo, kde se matoucí, protože jako lidé myslíme na čísla jako 0 až 9.
Takže co se používá pro 10, 11, 12, 13, 14, 15? Odpověď je dopisy.
- 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
Hodnota 100 je tudíž reprezentována číslem 64. Budete potřebovat 6 ze sloupce 16s, které zobrazí 96 a pak 4 ve sloupci jednotek 100.
Všechny znaky v souboru budou označeny hexadecimální hodnotou. Hodnoty těchto hodnot závisí na formátu samotného souboru. Formát souboru je označen hexadecimálními hodnotami, které jsou obvykle uloženy na začátku souboru.
Se znalostí sekvence hexadecimálních hodnot, které se objeví na začátku souborů, můžete ručně zjistit, v jakém formátu se soubor nachází. Zobrazení souboru v hexadecimálním výpisu vám pomůže najít skryté znaky, které se nezobrazí, když je soubor v normálním textovém editoru.
Jak vytvořit Hex výpis pomocí Linuxu
Chcete-li vytvořit hexadecimální výpis pomocí systému Linux, použijte příkaz hexdump.
Chcete-li soubor zobrazit jako hexadecimální konektor (standardní výstup), spusťte následující příkaz:
hexdump název souboru
Například
hexdump image.png
Výchozí výstup zobrazí číslo řádku (v šestnáctkovém formátu) a pak 8 sad čtyř hexadecimálních hodnot na jeden řádek.
Například:
00000000 5089 474e 0a0d 0a1a 0000 0d00 4849 5244
K výměně výchozího výstupu můžete dodat různé přepínače. Například určením přepínače mínus b vznikne osmimístný offset, následovaný 16 třemi sloupci, vyplněnými nulami, bajty vstupních dat v osmičkovém formátu.
hexdump -b image.png
Výše uvedený příklad bude nyní znázorněn následovně:
00000000 211 120 116 107 015 012 032 012 000 000 000 015 111 110 104 122
Výše uvedený formát je známý jako osmičkový osmičkový displej.
Dalším způsobem, jak zobrazit soubor, je zobrazování jednoho bajtového znaku pomocí přepínače minus c.
hexdump -c image.png
Toto opět zobrazuje posun, ale tentokrát následuje šestnáct oddělených prostorů, tři sloupce a místo naplněné znaky vstupních dat na řádek.
Mezi další možnosti patří Canonical hex + ascii displej, který lze zobrazit pomocí přepínače minus C a dvoubajtového desetinného displeje, který lze zobrazit pomocí přepínače mínus d. Přepínač minus o lze použít k zobrazení osmičkového osmičkového zobrazení. Nakonec lze přepínač minux x použít k zobrazení dvoubajtového hexadecimálního zobrazení.
hexdump -C image.png
hexdump -d image.png
hexdump -o image.png
hexdump -x image.png
Pokud žádný z výše uvedených formátů nevyhovuje vašim potřebám, použijte přepínač minus e pro zadání formátu.
Pokud víte, že datový soubor je velmi dlouhý a chcete určit pouze několik prvních znaků, můžete pomocí přepínače -n určit, kolik souboru má být zobrazeno v šestnáctce.
hexdump-n100 image.png
Výše uvedený příkaz zobrazí první sto bajtů.
Chcete-li přeskočit část souboru, můžete použít přepínač minus s pro nastavení počátečního posunu.
hexdump -s10 image.png
Pokud neposkytnete název souboru, text se přečte ze standardního vstupu.
Jednoduše zadejte následující příkaz:
hexdump
Potom zadejte text do standardního vstupu a ukončete zadáním ukončete. Šestnáctka se zobrazí na standardním výstupu.
souhrn
Nástroj hexdump je samozřejmě poměrně silný nástroj a měli byste si určitě přečíst manuálovou stránku, abyste se plně seznámili se všemi funkcemi.
Také byste potřebovali dobré pochopení toho, co hledáte při čtení výstupu.
Chcete-li zobrazit manuálovou stránku, spusťte následující příkaz:
man hexdump