Hogyan készíthetünk egy hexadecumentumot egy fájlból vagy egy szövegtörzsből?

Bevezetés

A hex dump az adatok hexadecimális nézete. Előfordulhat, hogy hexadecimális programot szeretne végrehajtani hibakeresésnél vagy egy program visszafejtéséhez.

Például számos fájlformátumnak meghatározott hex karakterek vannak a típusuk megjelölésére. Ha egy fájlt egy program használatával próbál meg olvasni, és valamilyen oknál fogva nem megfelelően töltődik be, előfordulhat, hogy a fájl nem a kívánt formátumban van.

Ha meg szeretné tudni, hogyan működik a program, és nem rendelkezik olyan forráskóddal vagy szoftvercsomaggal, amely visszafordítja a kódot, akkor megnézheti a hex dumpot, hogy megpróbálja kitalálni, mi történik.

Mi hexadecimális?

A számítógépek binárisan gondolkodnak. Minden karaktert, számot és szimbólumot bináris vagy több bináris értékre hivatkoznak.

Az ember azonban hajlamos tizedesre gondolni.

Ezrek Több száz Tens egységek
1 0 1 1

Emberként a legalacsonyabb számunkat egységnek nevezzük, és a 0 és 9 közötti számokat jelölik. Amikor eljutunk 10-re, visszaállítjuk az egységek oszlopát 0-ra, és hozzáadjuk 1-t a tízes oszlophoz (10).

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

Binárisan a legalacsonyabb szám csak 0-t és 1-et jelent. Amikor elértük az 1-et, 1-et a 2-es oszlopba és az 1-es oszlopban 0-ot helyezünk el. Ha 4-et akarsz képviselni, 1-et helyezsz a 4 oszlopba, és állítsd vissza a 2-es és az 1-es oszlopot.

Ezért a 15-ös ábrázoláshoz 1111-nek kellene lennie, amely 1 8, 1 4, 1 kettő és 1 egy. (8 + 4 + 2 + 1 = 15).

Ha egy bináris formátumú adatfájlt néztünk volna, akkor teljesen óriási lenne, és gyakorlatilag lehetetlen lenne értelmezni.

A következő lépés a binárisból az oktális, amely a bázisszámként 8-at használ.

24 16 8 1
0 1 1 0

Az oktális rendszerben az első oszlop 0-tól 7-ig, a második oszlop 8-15, a harmadik 16-23 oszlop és a negyedik 24-31. Oszlop, és így tovább. Bár általában könnyebben olvasható, mint a bináris, a legtöbb ember inkább hexadecimális.

A hexadecimális szám 16 alapszámként használja. Ez az, ahol ez zavarossá válik, mert emberként a számok 0 és 9 között gondolkodnak.

Tehát mi használják a 10, 11, 12, 13, 14, 15? A válasz betűk.

A 100 értéket ezért 64-es ábrázolja. A 16-os oszlopból 6-nak kell 6-nak lennie, amely 96-at, majd 4-et tesz ki a 100-as oszlopban.

Egy fájl összes karakterét hexadecimális értékkel jelölik. Ezek az értékek attól függenek, hogy milyen formátumú a fájl. A fájl formátumát hexadecimális értékekkel jelölik, amelyek általában a fájl elején vannak tárolva.

A fájlok kezdetén megjelenő hexadecimális értékek ismeretében tudod kézzel megvizsgálni, hogy a fájl milyen formátumban van. A hexadecimális fájlok megtekintéséhez segít megtalálni azokat a rejtett karaktereket, amelyek nem jelennek meg, amikor a fájl betöltve egy normál szövegszerkesztőbe.

Hogyan lehet létrehozni egy hexadecimális linuxot?

A hexdump használatával a hexdump parancsot használhatja.

Ha a fájlt határolja a terminálnak (szabványos kimenet), futtassa a következő parancsot:

hexdump fájlnév

Például

hexdump image.png

Az alapértelmezett kimenet megjeleníti a vonal számát (hexadecimális formátumban), majd soronként 4 db 4 hexadecimális értéket.

Például:

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

Az alapértelmezett kimenet megváltoztatásához különböző kapcsolókat is megadhat. Például a mínusz b kapcsoló megadása 8 számjegyű eltolást, majd 16 oszlopot, nulla töltött, oktális formátumú bemeneti adat bájtot eredményez.

hexdump -b image.png

Ezért a fenti példa a következőképpen fog megjelenni:

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

A fenti formátumot úgynevezett egybájtos oktális kijelzésnek nevezik.

A fájl megtekintésének másik módja az egy bájtos karakterkijelzés a mínusz c kapcsolóval.

hexdump -c image.png

Ez ismét megjeleníti az eltolást, de ezután tizenhat helyet elválasztott, három oszlop, soronként töltött betű karakter.

Más lehetőségek közé tartozik a Canonical hex + ascii kijelző, amely a mínusz C kapcsolóval és a két bájtos decimális kijelzővel jeleníthető meg, amely a mínusz d kapcsolóval megjeleníthető. A mínusz o kapcsolóval megjeleníthető a kétbájtos oktális kijelzés. Végül a minux x kapcsoló használható a kétbájtos hexadecimális kijelző megjelenítéséhez.

hexdump -C image.png

hexdump -d image.png

hexdump -o image.png

hexdump -x image.png

Ha a fenti formátumok egyike sem felel meg az igényeinek, használja a mínusz e kapcsolót a formátum megadásához.

Ha tudod, hogy egy adatfájl nagyon hosszú, és csak azt szeretnéd látni, hogy az első néhány karakter határozza meg a típusát, használhatja a -n kapcsolót, és megadhatja, hogy mennyi a hatalmas hexadecimális fájl.

hexdump -n100 image.png

A fenti parancs megjeleníti az első száz bájtot.

Ha kihagyja a fájl egy részét, akkor a mínusz kapcsolóval beállíthatja az eltolást.

hexdump -s10 image.png

Ha nem adja meg a fájlnevet, akkor a szöveg a szabványos bemenetről olvasható.

Egyszerűen írja be a következő parancsot:

hexdump

Ezután írja be a szöveget a szabványos bemenetbe, és zárja be a kilépéshez. A hexa megjelenik a szabványos kimeneten.

összefoglalás

A hexdump segédprogram nyilvánvalóan viszonylag hatékony eszköz, és mindenképpen olvassa el a manuális oldalt, hogy teljes mértékben megragadhassa az összes funkciót.

Szükséged lesz egy jó megértésre, hogy mit keres a kimenet olvasásakor.

A kézi oldal megtekintéséhez a következő parancsot kell futtatni:

férfi hexdump