Skip to main content

Slik lager du en Hexdump av en fil eller streng av tekst

Slik lager du en nydelig potetmos (Juni 2026)

Slik lager du en nydelig potetmos (Juni 2026)
Anonim

Introduksjon

En hex-dump er en heksadesimal visning av data. Det kan hende du ønsker å bruke heksadesimale når du feilsøker et program eller for å omforme et program.

For eksempel har mange filformater bestemte heksetecken for å betegne deres type. Hvis du prøver å lese en fil ved hjelp av et program og av en eller annen grunn ikke laster inn riktig, kan det hende at filen ikke er i det formatet du forventer.

Hvis du vil se hvordan et program fungerer, og du ikke har kildekoden eller programvaren som omvendt konstruerer koden, kan du se på hex-dumpen for å prøve å finne ut hva som skjer.

Hva er hexadecimal?

Datamaskiner tenker i binær. Hver karakter, tall og symbol refereres av binære eller flere binære verdier.

Menneskene har imidlertid en tendens til å tenke i desimal.

tusenvishundrevistitus~~POS=TRUNCenheter
1011

Som mennesker kalles våre laveste tall for enheter og representerer tallene 0 til 9. Når vi kommer til 10, tilbakestiller vi enhetskolonnen tilbake til 0 og legger til 1 i tiene-kolonnen (10).

1286432168421
10010001

I binær representerer laveste tall kun 0 og 1. Når vi kommer forbi 1, setter vi en 1 i kolonnen til 2 og en 0 i 1-kolonnen. Når du vil representere 4, legger du en 1 i 4-kolonnen og tilbakestiller kolonne 2 og 1.

Derfor representerer 15 du vil ha 1111 som står for 1 åtte, 1 fire, 1 to og 1 ett. (8 + 4 + 2 + 1 = 15).

Hvis vi så på en datafil i binærformat, ville det være helt stort og praktisk talt umulig å forstå.

Det neste trinnet opp fra binær er oktal, som bruker 8 som basenummer.

241681
0110

I et oktalsystem går den første kolonnen fra 0 til 7, den andre kolonnen er 8 til 15, den tredje kolonne 16 til 23 og den fjerde kolonne 24 til 31 og så videre. Mens det generelt er lettere å lese enn binært, foretrekker folk flest å bruke heksadesimale.

Hexadecimal bruker 16 som basenummer. Nå er det her forvirrende, for som mennesker tenker vi på tall som 0 til 9.

Så hva er det som brukes til 10, 11, 12, 13, 14, 15? Svaret er bokstaver.

  • 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

Verdien 100 er derfor representert ved 64. Du trenger 6 av 16s-kolonnen som bringer opp 96 og deretter 4 i enhetskolonnen som gjør 100.

Alle tegnene i en fil vil bli betegnet med en heksadesimal verdi. Hva disse verdiene betyr, avhenger av formatet til selve filen. Formatet på filen er betegnet med heksadesimale verdier som vanligvis lagres i begynnelsen av filen.

Med kjennskap til sekvensen av heksadesimale verdier som vises i begynnelsen av filene, kan du manuelt finne ut hvilket format filen er i. Ved å vise en fil i en hex-dump kan du finne skjulte tegn som ikke vises når filen er lastet inn i en vanlig tekstredigerer.

Slik lager du en hex dump ved hjelp av Linux

For å lage en hex-dump ved hjelp av Linux, bruk hexdump-kommandoen.

For å vise en fil som heks til terminalen (standardutgang), kjør følgende kommando:

hexdump filnavn

For eksempel

hexdump image.png

Standardutgangen viser linjenummeret (i heksadesimale format) og deretter 8 sett med 4 heksadesimale verdier per linje.

For eksempel:

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

Du kan levere forskjellige brytere for å endre standardutgang. For eksempel angir minus b-bryteren en 8-sifret forskyvning etterfulgt av 16 tre kolonne, null fylt, byte av inngangsdata i oktalformat.

hexdump -b image.png

Derfor vil eksemplet ovenfor nå bli representert som følger:

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

Ovennevnte format er kjent som enbyte-oktalskjerm.

En annen måte å vise filen på, er i ett-byte tegnvisning ved hjelp av minus-c-bryteren.

hexdump -c image.png

Dette viser igjen forskyvningen, men denne gangen etterfølges av seksten mellomrom, tre kolonner, mellomfylte tegn på inngangsdata per linje.

Andre muligheter inkluderer Canonical hex + ascii display som kan vises med minus C-bryteren og to-byte desimalvisning som kan vises med minus d-bryteren. Minus o-bryteren kan brukes til å vise to-byte oktal-skjerm. Til slutt kan minux x-bryteren brukes til å vise to-bytes hexadecimal skjerm.

hexdump -C image.png

hexdump -d image.png

hexdump -o image.png

hexdump -x image.png

Hvis ingen av de ovennevnte formene passer til dine behov, bruker du minus e-bryteren til å spesifisere formatet.

Hvis du vet at en datafil er veldig lang og du bare vil se de første få tegnene for å bestemme dens type, kan du bruke -n-bryteren til å angi hvor mye av filen som skal vises i hex.

hexdump -n100 image.png

Kommandoen ovenfor viser de første hundre bytes.

Hvis du ønsker å hoppe over en del av filen, kan du bruke minus s-bryteren til å angi en forskyvning for å starte fra.

hexdump -s10 image.png

Hvis du ikke oppgir et filnavn, leses teksten fra standardinngangen.

Bare skriv inn følgende kommando:

hexdump

Skriv deretter inn teksten i standardinngangen og avslutt ved å skrive avslutte. Heksen vil bli vist til standardutgangen.

Sammendrag

Heksedumpen er åpenbart et ganske kraftig verktøy, og du bør definitivt lese den manuelle siden for å få tak i alle funksjonene.

Du vil også trenge en god forståelse av hva du leter etter når du leser utdataene.

For å vise den manuelle siden, kjør følgende kommando:

mann hexdump