Overzicht
xxd toont de inhoud van binaire bestanden in hexadecimale en ASCII-tekenreeksen, vergelijkbaar met `hexdump` of `od`. Het belangrijkste kenmerk is echter de **omkeerfunctie** waarmee gedumpte inhoud kan worden teruggezet naar het originele binaire bestand. Dankzij deze functie is het mogelijk om een binair bestand in een teksteditor in hexadecimaal formaat te wijzigen en vervolgens met `xxd -r` weer als binair bestand op te slaan. Deze flexibiliteit is zeer krachtig voor het analyseren en wijzigen van binaire bestanden, vooral in combinatie met de `vim`-editor.
Belangrijkste kenmerken
De belangrijkste kenmerken van het xxd-commando zijn:
- Geeft de inhoud van bestanden weer in hexadecimaal en ASCII-formaat.
- Kan een hexadecimale dump omzetten naar het originele binaire bestand.
- Kan worden gebruikt voor het bewerken van binaire bestanden met een gewone teksteditor.
- Biedt diverse opties voor gedetailleerde controle over het uitvoerformaat.
Verschillen tussen xxd en hexdump
Hoewel xxd en hexdump vergelijkbaar zijn in hun hexadecimale dumpfunctie, ligt het grootste verschil in de aanwezigheid of afwezigheid van een omkeerfunctie.
- xxd: Biedt de `omkeerfunctie` (`-r`) om een hexadecimale dump terug te zetten naar het originele binaire bestand. Heeft krachtige integratie met `vim`.
- hexdump: Een tool die zich uitsluitend richt op de dumpfunctie en geen omkeerfunctie biedt.
Belangrijkste opties
Veelgebruikte opties van het xxd-commando zijn gegroepeerd op doel.
1) Dump- en omkeeropties
2) Hulp
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`xxd` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Gebruiksvoorbeelden
Leer de functies van het xxd-commando door middel van diverse gebruiksvoorbeelden.
Hexadecimale dump van bestandsinhoud
echo 'Hello World!' > test.txt
xxd test.txt
Geeft de inhoud van het `test.txt`-bestand weer in hexadecimale en ASCII-tekens.
Hexadecimale dump opslaan naar een bestand
xxd /bin/ls > ls_dump.txt
Slaat de inhoud van het binaire bestand `/bin/ls` op in het bestand `ls_dump.txt`.
Dumpbestand terugzetten naar origineel
xxd -r ls_dump.txt ls_copy
Zet het eerder opgeslagen `ls_dump.txt`-bestand terug naar het originele binaire bestand `ls_copy`. **Deze functie is het belangrijkste kenmerk van xxd.**
Binair bestand bewerken met vim
vim file.bin
(in vim) :%!xxd
(bewerken)
(in vim) :%!xxd -r
Schakel in `vim` het huidige bestand naar de hexadecimale dumpmodus met het commando `%!xxd`, bewerk het en sla het vervolgens weer op door terug te zetten met `%!xxd -r`.
Installatie
xxd is inbegrepen in het `vim`-pakket. Omdat de `vim-common` of `vim` pakketten standaard zijn geïnstalleerd op de meeste Linux-distributies, is aparte installatie meestal niet nodig.
Debian/Ubuntu
sudo apt update
sudo apt install -y vim-common
RHEL/CentOS/Fedora
sudo dnf install -y vim-common
Tips & Waarschuwingen
Punten om op te letten bij het gebruik van het xxd-commando.
Tips
- De `-r` optie van `xxd` kan alleen dumpbestanden die met `xxd` zijn gemaakt correct omkeren. Het is mogelijk dat deze niet werkt op hexadecimale dumpbestanden van andere formaten.
- Wees zeer voorzichtig bij het bewerken van binaire bestanden. Eén verkeerde byte kan het hele programma beschadigen.
- Om te voorkomen dat het originele bestand wordt overschreven bij het omkeren, is het altijd veiliger om het onder een andere bestandsnaam op te slaan. (bijv.: `xxd -r old.hex > new.bin`)