Skip to main content

Hur man skapar en hexdump av en fil eller textsträng

Hur skapar man en youtube kanal (Juni 2026)

Hur skapar man en youtube kanal (Juni 2026)
Anonim

Introduktion

En hex-dumpning är en hexadecimal visning av data. Du kanske vill använda hexadecimal när du felsöker ett program eller omvandlar ett program.

Till exempel har många filformat särskilda hex-tecken för att beteckna deras typ. Om du försöker läsa en fil med ett program och av någon anledning inte laddas korrekt kan det vara att filen inte är i det format du förväntar dig.

Om du vill se hur ett program fungerar och du inte har källkoden eller mjukvaran som omvandlar koden, kan du titta på hex-dumpen för att försöka utreda vad som händer.

Vad är hexadecimal?

Datorer tänker i binär. Varje tecken, tal och symbol refereras av binära eller flera binära värden.

Människor tenderar emellertid att tänka i decimal.

tusentalsHundratalsTensEnheter
1011

Som människor kallas våra lägsta tal enhet och representerar siffrorna 0 till 9. När vi kommer till 10 återställer vi kolumnerna tillbaka till 0 och lägger till 1 i tiotals kolumnen (10).

1286432168421
10010001

I binär representerar det lägsta numret endast 0 och 1. När vi kommer över 1 lägger vi en 1 i kolumnen 2 och en 0 i 1 kolumnen. När du vill representera 4 lägger du en 1 i kolumnen 4 och återställer kolumnen 2 och 1.

Därför för att representera 15 skulle du ha 1111 som står för 1 åtta, 1 fyra, 1 två och 1 en. (8 + 4 + 2 + 1 = 15).

Om vi ​​tittat på en datafil i binärformat skulle det vara helt stort och praktiskt taget omöjligt att känna av.

Nästa steg upp från binärt är oktal, som använder 8 som basnumret.

241681
0110

I ett oktalsystem går den första kolumnen från 0 till 7, den andra kolumnen är 8 till 15, den tredje kolumnen 16 till 23 och den fjärde kolumnen 24 till 31 och så vidare. Medan de flesta är enklare att läsa än binära föredrar de flesta att använda hexadecimal.

Hexadecimal använder 16 som basnumret. Nu är det här där det blir förvirrande, eftersom som människor vi tänker på siffror som 0 till 9.

Så vad används för 10, 11, 12, 13, 14, 15? Svaret är bokstäver.

  • 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

Värdet 100 representeras därför av 64. Du behöver 6 av 16-kolumnen som ger upp 96 och sedan 4 i enhetskolonnen som gör 100.

Alla tecken i en fil kommer att betecknas med ett hexadecimalt värde. Vad dessa värden betyder beror på filens format. Filens format betecknas med hexadecimala värden som vanligtvis lagras i början av filen.

Med kunskap om sekvensen av hexadecimala värden som visas i början av filer kan du manuellt ta reda på vilket format filen är. Att titta på en fil i en hex-dump kan hjälpa dig att hitta dolda tecken som inte visas när filen är laddad i en vanlig textredigerare.

Så här skapar du en hex-dump med Linux

För att skapa en hex-dumpning med Linux använd hexdump-kommandot.

För att visa en fil som hex till terminalen (standardutmatning) kör följande kommando:

hexdump filnamn

Till exempel

hexdump image.png

Standardutgången visar linjenummeret (i hexadecimalt format) och sedan 8 uppsättningar 4 hexadecimala värden per rad.

Till exempel:

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

Du kan leverera olika omkopplare för att ändra standardutgången. Till exempel kommer att ange minus b-omkopplaren en 8-siffrig offset följt av 16 tre kolumner, nollfyllda, byte av ingångsdata i oktalt format.

hexdump -b image.png

Därför kommer ovanstående exempel nu att representeras enligt följande:

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

Ovanstående format är känt som enbyte-display.

Ett annat sätt att visa filen finns i enbyte teckenfönstret med minus c-omkopplaren.

hexdump -c image.png

Detta visar igen offset men den här tiden följt av sexton separerade utrymme, tre kolumner, rymdfyllda tecken av ingångsdata per rad.

Andra alternativ inkluderar Canonical hex + ascii display som kan visas med minus C-omkopplaren och två-byte decimalvisning som kan visas med minus d-omkopplaren. Minus o-omkopplaren kan användas för att visa tvåbyte-oktalskärm. Slutligen kan minux x-omkopplaren användas för att visa två-byte hexadecimal visning.

hexdump -C image.png

hexdump -d image.png

hexdump -o image.png

hexdump -x image.png

Om inget av ovanstående format passar dina behov så använder du minus e-omkopplaren för att ange formatet.

Om du vet att en datafil är mycket lång och du bara vill se de första tecknen för att bestämma dess typ kan du använda -n-omkopplaren för att ange hur mycket av filen som ska visas i hex.

hexdump -n100 image.png

Ovanstående kommando visar de första hundra byte.

Om du vill hoppa över en del av filen kan du använda minus s-omkopplaren för att ställa in en offset för att starta från.

hexdump -s10 image.png

Om du inte anger ett filnamn läses texten från standardinmatningen.

Ange bara följande kommando:

hexdump

Skriv sedan in texten i standardinmatningen och avsluta genom att skriva avsluta. Hexen kommer att visas till standardutgången.

Sammanfattning

Verktyget hexdump är uppenbarligen ett ganska kraftfullt verktyg och du bör definitivt läsa den manuella sidan för att få tag i alla funktionerna.

Du skulle också behöva en god förståelse för vad du letar efter när du läser utmatningen.

För att visa den manuella sidan kör följande kommando:

man hexdump