Kako ustvariti hexdump datoteke ali niz besedila

Uvod

Heksov dump je šestnajstiški pogled na podatke. Morda boste želeli uporabiti heksadecimal pri razhroščevanju programa ali obratnem inženirju programa.

Na primer, številni zapisi datotek imajo specifične šestnajstiške znake, ki označujejo njihovo vrsto. Če poskušate prebrati datoteko z uporabo programa in se zaradi tega ne natisnejo pravilno, morda je, da datoteka ni v formatu, ki ga pričakujete.

Če želite videti, kako deluje program in nimate izvorne kode ali kosa programske opreme, s katero se kodo obrnete, si lahko ogledate hex deponijo, da poskusite ugotoviti, kaj se dogaja.

Kaj je šestnajstiško?

Računalniki mislijo v binarnem . Vsak znak, številka in simbol se sklicujejo na binarni ali večkratni binarni vrednosti.

Človeška bitja pa težijo k razmišljanju v decimalnih mestih.

Tisoči Stotine Deset Enote
1 0 1 1

Kot ljudje se naša najnižja števila imenujejo enote in predstavljajo številke od 0 do 9. Ko pridemo do 10, bomo stolpec enot ponastavili nazaj na 0 in dodali 1 v deseto kolono (10).

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

V binarnem redu je najmanjše število le 0 in 1. Ko pridemo do 1, v stolpec 2 postavimo 1 in 0 v 1 stolpec. Če želite predstaviti 4, postavite 1 v 4 stolpcu in ponastavite stolpec 2 in 1.

Zato, da bi predstavljali 15, bi imeli 1111, kar pomeni, 1 8, 1 4, 1 2 in 1. (8 + 4 + 2 + 1 = 15).

Če smo si ogledali podatkovno datoteko v binarni obliki, bi bilo absolutno ogromno in praktično nemogoče razumeti.

Naslednji korak od binarnega je osmišljen, ki uporablja 8 kot bazno številko.

24 16 8 1
0 1 1 0

V oktalnem sistemu je prvi stolpec od 0 do 7, drugi stolpec je 8 do 15, tretji stolpec 16 do 23 in četrti stolpec 24 do 31 in tako naprej. Čeprav je na splošno lažje brati kot binarni, večina ljudi raje uporabi šestnajstiško.

Šestnajstišina uporablja kot osnovno številko 16. Zdaj je to zmedeno, ker ljudje mislimo na številke od 0 do 9.

Torej, kaj se uporablja za 10, 11, 12, 13, 14, 15? Odgovor je črk.

Vrednost 100 je zato predstavljena s 64. Potrebovali boste 6 od 16 stolpcev, ki prikaže 96 in nato 4 v stolpcu enot, ki ustvarja 100.

Vsi znaki v datoteki bodo označeni s šestnajstiško vrednostjo. Te vrednosti so odvisne od oblike datoteke same. Oblika datoteke je označena s heksadecimalnimi vrednostmi, ki so običajno shranjene na začetku datoteke.

Z znanjem o zaporedju šestnajstiških vrednosti, ki se pojavijo na začetku datotek, lahko ročno izveste, v kakšnem formatu je datoteka. Pregledovanje datoteke v hex dumpu vam lahko pomaga najti skrite znake, ki niso prikazani, ko je datoteka naložen v običajni urejevalnik besedil.

Kako ustvariti hex dump z uporabo Linuxa

Če želite ustvariti šestnajstiško odlagališče z uporabo Linuxa, uporabite ukaz hexdump.

Za prikaz datoteke kot hex za terminal (standardni izhod) zaženite naslednji ukaz:

hexdump filename

Na primer

hexdump image.png

Privzeti izhod bo prikazal številko vrstice (v šestnajstiškem formatu) in nato 8 nizov 4 heksadecimalnih vrednosti na vrstico.

Na primer:

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

Za spreminjanje privzetega izhoda lahko dobite različna stikala. Na primer, pri določitvi stikala minus b se prikaže 8-mestni odmik, ki mu sledi 16 treh stolpcev, nič polnjenih, bajtov vhodnih podatkov v oktalnem formatu.

hexdump -b image.png

Zato bo zgornji primer predstavljen na naslednji način:

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

Zgornja oblika je znana kot enobajtni oktalni prikazovalnik.

Drug način za ogled datoteke je prikaz enobajtnega znaka z uporabo minus c stikala.

hexdump -c image.png

To znova prikaže offset, vendar tokrat sledi šestnajst ločenih presledkov, tri stolpca, znaki vhodnih podatkov na vrstico, ki so napolnjeni s presledkom.

Druge možnosti vključujejo Canonical hex + ascii zaslon, ki se lahko prikaže z uporabo minus C stikala in dvobajtnega decimalnega zaslona, ​​ki se lahko prikaže z uporabo minus d stikala. Stikalo minus o se lahko prikaže za dvobajtni osmični prikaz. Končno lahko stikalo minux x uporabite za prikaz dvostranskega šestkotnega prikaza.

hexdump -C image.png

hexdump -d image.png

hexdump -o image.png

hexdump-x image.png

Če noben od zgornjih formatov ne ustreza vašim potrebam, uporabite stikalo minus e, da določite obliko.

Če veste, da je podatkovna datoteka zelo dolga in želite videti samo prvih nekaj znakov za določitev njene vrste, lahko uporabite stikalo -n, da določite, kolikšen del datoteke se bo prikazoval v hex.

hexdump-n100 image.png

Zgornji ukaz prikazuje prve sto bajtov.

Če želite preskočiti del datoteke, lahko uporabite stikalo minus s, da nastavite odmik od katerega se želite začeti.

hexdump -s10 image.png

Če ne navedete imena datoteke, se bere besedilo s standardnega vhoda.

Preprosto vnesite ta ukaz:

hexdump

Nato vnesite besedilo v standardni vhod in konec, tako da vnesete prekinitev. Heks je prikazan na standardnem izhodu.

Povzetek

Orodje hexdump je očitno precej močno orodje in zagotovo morate prebrati strani z navodili, da se v celoti spoprime z vsemi funkcijami.

Prav tako bi morali dobro razumeti, kaj iščete pri branju rezultatov.

Če si želite ogledati priročnik, zaženite naslednji ukaz:

človek hexdump