Overzicht
Binaire bestanden bestaan uit code van nullen en enen die direct door de computer worden uitgevoerd. Wanneer je ze opent met een gewone teksteditor, lijken ze onleesbaar. Het `strings`-commando zoekt in deze binaire bestanden naar vier of meer opeenvolgende afdrukbare tekens en extraheert deze als tekst. Hiermee kun je nuttige informatie achterhalen die in het binaire bestand is opgenomen, zoals foutmeldingen, bestandspaden, URL's en configuratiewaarden.
Belangrijkste kenmerken
De belangrijkste kenmerken van het `strings`-commando zijn:
- Extraheert leesbare tekstreeksen uit binaire bestanden.
- Zoekt standaard naar vier of meer opeenvolgende afdrukbare tekens.
- Ondersteunt verschillende tekenencoderingen (ASCII, UTF-16, enz.).
- Handig voor het identificeren van bibliotheeknamen of configuratie-informatie die door een programma wordt gebruikt.
Toepassingsgebieden van strings
strings kan worden gebruikt in diverse gebieden, verder dan alleen het controleren van bestanden.
- Malware-analyse: Extraheert informatie zoals C&C-serveradressen, bestandsnamen en API-aanroepen uit malware-binaries.
- Debuggen: Vindt foutmeldingen of debug-strings in uitvoerbare bestanden om problemen op te lossen.
- Analyse van onbekende bestanden: Wanneer de bestandsextensie onduidelijk is, gebruik je strings om de interne tekst te controleren en de aard van het bestand te schatten.
Belangrijkste opties
De belangrijkste opties van het `strings`-commando zijn gegroepeerd op doel.
1) Extractie-opties
2) Hulp
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`strings` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Gebruiksvoorbeelden
Leer de functionaliteit van het `strings`-commando aan de hand van diverse gebruiksvoorbeelden.
Basisreeksen extraheren uit een binair bestand
strings /usr/bin/top
Extraheert tekenreeksen met de standaardinstelling (4 tekens of meer) uit het binaire bestand `/usr/bin/top`.
Alleen langere reeksen extraheren
strings -n 8 /usr/bin/top
Gebruik de `-n` optie om alleen tekenreeksen van 8 tekens of langer te extraheren.
Tekenreeksen en hexadecimale offset samen uitvoeren
strings -t x /usr/bin/top
Met de `-t x` optie wordt de hexadecimale offset waar elke tekenreeks in het bestand begint, samen uitgevoerd. Dit is nuttig bij binaire analyse.
Gebruik met pipe (|)
strings /usr/bin/top | grep error
Extraheert en controleert alleen tekenreeksen die 'error' bevatten uit het bestand `/usr/bin/top`.
UTF-16 gecodeerde tekenreeksen extraheren
strings -e l /path/to/binary
Gebruik de `-e` optie om UTF-16 gecodeerde tekenreeksen te extraheren. `l` staat voor little-endian, `b` voor big-endian.
Installatie
strings maakt deel uit van het `binutils`-pakket en is standaard inbegrepen bij de meeste Linux-distributies. Er is geen aparte installatie nodig.
Debian/Ubuntu
sudo apt update
sudo apt install -y binutils
RHEL/CentOS/Fedora
sudo dnf install -y binutils
Tips & Waarschuwingen
Hier zijn enkele belangrijke overwegingen bij het gebruik van het `strings`-commando.
Tips
- `strings` biedt veel schonere en nuttigere informatie dan `cat` op binaire bestanden. `cat` kan de terminal beschadigen door onbewerkte binaire inhoud uit te voeren.
- De geëxtraheerde tekenreeksen kunnen regeleinden of spaties bevatten, dus door ze te combineren met tools zoals `grep` of `awk` via een pipe, kunnen ze nog nuttiger worden verwerkt.