Hex skládka - Hex dump
V práci na počítači , je skládka hex je hexadecimální zobrazení (na obrazovce nebo papíru), počítačových dat z paměti nebo z počítače soubor nebo úložné zařízení. Pohled na hexadecimální výpis dat se obvykle provádí v kontextu ladění nebo reverzního inženýrství .
V hexadecimálním výpisu je každý bajt (8 bitů ) reprezentován jako dvoumístné hexadecimální číslo. Šestihranné skládky jsou běžně organizovány do řad o 8 nebo 16 bajtech, někdy oddělených mezerami. Některé hexadecimální skládky mají na začátku adresu hexadecimální paměti .
Některé společné názvy pro tuto funkci programu jsou hexdump
, hd
, od
, xxd
a jednoduše dump
, nebo dokonce D
.
Vzorky
Ukázkový textový soubor:
0123456789ABCDEF /* ********************************************** */ Table with TABs (09) 1 2 3 3.14 6.28 9.42
jak je zobrazeno Unixem hexdump
:
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
0000075
Sloupec úplně vlevo je hexadecimální posun (nebo adresa) pro hodnoty následujících sloupců. Každý řádek zobrazuje 16 bajtů, s výjimkou řádku obsahujícího jediné *. * Se používá k označení, že bylo vynecháno více výskytů stejného zobrazení. Poslední řádek zobrazuje počet bytů převzatých ze vstupu.
Další sloupec zobrazuje odpovídající překlad znaků ASCII pomocí hexdump -C
nebo 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 |** */..Table wit|
00000050 68 20 54 41 42 73 20 28 30 39 29 0a 09 31 09 09 |h TABs (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.|
00000075
To je užitečné při pokusu o vyhledání znaků TAB v souboru, u kterého se očekává použití více mezer.
Tato -v
volba způsobí, že hexdump zobrazí všechna data podrobně:
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 |** */..Table wit|
00000050 68 20 54 41 42 73 20 28 30 39 29 0a 09 31 09 09 |h TABs (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.|
00000075
od
Příkaz POSIX [1] lze použít k zobrazení hexadecimálního výpisu s volbou -tx.
# od -tx1 tableOfTabs.txt
0000000 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46
0000020 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 2a 2a 20 2a 2f 0a 09 54 61 62 6c 65 20 77 69 74
0000120 68 20 54 41 42 73 20 28 30 39 29 0a 09 31 09 09
0000140 32 09 09 33 0a 09 33 2e 31 34 09 36 2e 32 38 09
0000160 39 2e 34 32 0a
0000165
Hodnocení znaků lze přidat pomocí volby -c:
0000000 0 1 2 3 4 5 6 7 8 9 A B C D E F 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 T a b l e w i t 2a 2a 20 2a 2f 0a 09 54 61 62 6c 65 20 77 69 74 0000120 h T A B 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
V tomto výstupu jsou znaky TAB zobrazeny jako \ t a znaky NEWLINE jako \ n.
DUMP, DDT a DEBUG
V 8bitovém operačním systému CP/M používaném na raných osobních počítačích by standardní program DUMP vypsal soubor o velikosti 16 bajtů na řádek s hexadecimálním offsetem na začátku řádku a ASCII ekvivalentem každého bajtu na konci. Byty mimo standardní rozsah tisknutelných znaků ASCII (20 až 7E) by byly zobrazeny jako jedna perioda pro vizuální zarovnání. Stejný formát byl použit k zobrazení paměti při vyvolání příkazu D ve standardním debuggeru CP/M DDT . Pozdější inkarnace formátu (např. V DOS debugger DEBUG ) změnily prostor mezi 8. a 9. bytem na pomlčku, aniž by došlo ke změně celkové šířky.
Tento zápis byl zachován v operačních systémech, které byly přímo nebo nepřímo odvozeny z CP/M, včetně DR-DOS , MS-DOS , OS/2 a MS-Windows . V systémech Linux produkuje tento klasický výstupní formát také příkaz hexcat . Hlavním důvodem návrhu tohoto formátu je, že se vejde do maximálního množství dat na standardní 80místné obrazovce nebo tiskárně, přičemž je stále velmi dobře čitelný a vizuálně skim.
1234:0000: 57 69 6B 69 70 65 64 69 61 2C 20 74 68 65 20 66 Wikipedia, the f
1234:0010: 72 65 65 20 65 6E 63 79 63 6C 6F 70 65 64 69 61 ree encyclopedia
1234:0020: 20 74 68 61 74 20 61 6E 79 6F 6E 65 20 63 61 6E that anyone can
1234:0030: 20 65 64 69 74 00 00 00 00 00 00 00 00 00 00 00 edit...........
Zde sloupec zcela vlevo představuje adresu, na které jsou umístěny bajty reprezentované následujícími sloupci. CP/M a různé systémy DOS běžely v reálném režimu na procesorech x86 , kde jsou adresy složeny ze dvou částí (základní a offset).
Ve výše uvedených příkladech jsou konečné 00s neexistující bajty za koncem souboru. Některé nástroje pro výpis stavu zobrazují další znaky, takže je jasné, že jsou za koncem souboru, obvykle používají mezery nebo hvězdičky, např .:
1234:0000: 57 69 6B 69 70 65 64 69 61 2C 20 74 68 65 20 66 Wikipedia, the f
1234:0010: 72 65 65 20 65 6E 63 79 63 6C 6F 70 65 64 69 61 ree encyclopedia
1234:0020: 20 74 68 61 74 20 61 6E 79 6F 6E 65 20 63 61 6E that anyone can
1234:0030: 20 65 64 69 74 edit
nebo
1234:0000: 57 69 6B 69 70 65 64 69 61 2C 20 74 68 65 20 66 Wikipedia, the f
1234:0010: 72 65 65 20 65 6E 63 79 63 6C 6F 70 65 64 69 61 ree encyclopedia
1234:0020: 20 74 68 61 74 20 61 6E 79 6F 6E 65 20 63 61 6E that anyone can
1234:0030: 20 65 64 69 74 ** ** ** ** ** ** ** ** ** ** ** edit
Viz také
Reference
externí odkazy
- Jak používat Hexdump Unix Utility Rozsáhlé příklady.
- hdr Hexdump s barevnými rozsahy pro usnadnění vizualizace. Možnosti přeskočení dat, zobrazení bitových polí, definice komplexního rozsahu, ... klikněte na odkaz na 'hdr_examples.pod'.
- Hex cheatsheet pro vyhledávání bajtů a okusů.