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.
- 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
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