
Wilt u de tekst in een binaire of een data-bestand? De Linux snaren commando haalt die stukjes van de tekst—de zogenaamde “strings”—out voor je.
Linux is vol van de opdrachten die eruit kan zien, oplossingen op zoek naar problemen. De snaren opdracht valt absoluut in die kamp. Wat is het doel? Is er een punt om een opdracht met een overzicht van de afdrukbare strings binnen een binair bestand?
Laten we eens een stap achteruit. Binaire bestanden zoals programma bestanden kunnen bevatten snaren van leesbare tekst. Maar hoe krijg je ze zien? Als u een kat of minder bent u waarschijnlijk om te eindigen met een opgehangen terminal venster. Programma ‘ s die zijn ontworpen om te werken met tekst-bestanden niet goed omgaan als niet-afdrukbare tekens worden gevoed door middel van hen.
De meeste van de bytes in een binair bestand niet leesbaar is en niet kan worden afgedrukt op het terminal-venster op een manier die zinvol. Er zijn geen tekens of standaard symbolen te vertegenwoordigen binaire waarden die niet overeenkomen met de alfanumerieke tekens, interpunctie of spatie. Gezamenlijk zijn deze bekend als “printable” tekens. De rest zijn “niet-afdrukbare tekens.
Dus, in een poging om te bekijken of te zoeken via een binaire of een data-bestand voor tekenreeksen is een probleem. En dat is waar de snaren komt. Het haalt de snaren van afdrukbare tekens van bestanden, zodat andere commando ‘ s kunnen gebruik maken van de snaren, zonder dat te maken met niet-afdrukbare tekens.
Met behulp van de snaren Opdracht
Er is niets ingewikkelds aan de snaren opdracht, en het gebruik is zeer eenvoudig. Wij bieden de naam van het bestand dat we willen snaren te zoeken door op de commando-regel.
Hier, we gaan gebruiken om de snaren op een binair bestand is een uitvoerbaar bestand genaamd “jibber.” We type snaren, een ruimte, “jibber” en druk op Enter.
snaren jibber
De snaren zijn geëxtraheerd uit het bestand, en vermeld in het terminal-venster.
Instellen van de Minimale Lengte van het touw
Standaard snaren zoeken naar tekenreeksen die vier karakters zijn of langer. Om een langere of kortere minimale lengte, gebruik je de-n (minimum lengte) optie.
Merk op dat hoe korter de minimale lengte, hoe groter de kans zie je meer rommel.
Sommige binaire waarden hebben dezelfde numerieke waarde als de waarde die het vertegenwoordigt een afdrukbaar teken. Als twee van die numerieke waarden toevallig naast elkaar in de file en u geeft een minimale duur van twee, die bytes zal worden gerapporteerd, alsof ze een string.
Vragen tekenreeksen twee als de minimale lengte, gebruik je het volgende commando.
snaren -n 2 jibber
We hebben nu twee-letter snaren opgenomen in de resultaten. Let op dat er spaties tellen als een afdrukbaar teken.
Leidingen snaren Door Minder
Vanwege de lengte van de uitvoer van strings, we gaan pijp door minder. We kunnen blader door het bestand op zoek naar de tekst van belang.
snaren jibber | minder
De lijst is nu voor ons minder, met de top van de lijst als eerste weergegeven.
Met behulp van snaren met Object-Bestanden
Meestal broncode van een programma bestanden worden gecompileerd in object-bestanden. Deze zijn gekoppeld met bibliotheek bestanden voor het maken van een binair uitvoerbaar bestand. We hebben de jibber object bestand bij de hand, dus laten we eens een kijkje in dat bestand. Opmerking het werk’.o ‘ extensie.
jibber.o | minder
De eerste set snaren zijn verpakt in kolom acht als ze langer zijn dan acht tekens. Als ze zijn verpakt, een “H” – teken in de kolom negen. Je herkent deze snaren als SQL-instructies.
Het scrollen door de uitgang blijkt dat deze opmaak wordt niet gebruikt in het bestand.
Het is interessant om te zien dat de verschillen in de tekst tussen het bestand en de voltooid uitvoerbaar.
Zoeken In Specifieke Gebieden in het Bestand
Gecompileerde programma ‘ s hebben verschillende gebieden binnen het zelf, die zijn gebruikt voor het opslaan van tekst. Standaard strings zoekt in het hele bestand op zoek naar de tekst. Dit is net alsof u gebruikt de-a (alle) optie. Om strings zoek alleen in geïnitialiseerd, worden de geladen gegevens secties in het bestand, gebruikt u de -d (alleen gegevens) optie.
snaren -d jibber | minder
Tenzij je er een goede reden voor, je kan net zo goed de standaard instelling gebruiken en zoeken het hele bestand.
Het afdrukken van de String Offset
We hebben strings afdrukken van de offset vanaf het begin van het bestand waarmee elke string is gelegen. Om dit te doen, gebruik je de-o (offset) optie.
snaren -o parse_phrases | minder
De offset wordt gegeven in een Octaal getal.
Om de offset weergegeven in een andere numerieke basis, zoals de decimale of hexadecimale, gebruik je de-t (radix) optie. De radix optie moet worden gevolgd door een d (decimaal), x (hexadecimaal) of o (Octaal). Het gebruik van -t-o is hetzelfde als de optie-o.
snaren -t d parse_phrases | minder
De verschuivingen worden nu gedrukt in een decimaal getal.
snaren -t x parse_phrases | minder
De verschuivingen worden nu gedrukt in hexadecimale notatie.
Inclusief Spaties
snaren van mening tabs en spaties zijn om een deel van de snaren die het vindt. Andere witruimte-tekens, zoals nieuwe regels en vervoer geretourneerd, worden niet behandeld alsof zij onderdeel waren van de snaren. De -w (spatie) optie zorgt ervoor dat de snaren om de behandeling van alle witruimte-tekens alsof ze deel zijn van de string.
snaren -w add_data | minder
We zien de lege regel in de uitvoer, die een gevolg is van de (onzichtbare) carriage return en newline-tekens aan het einde van de tweede lijn.
We zijn Niet Beperkt tot Bestanden
We kunnen gebruik maken van strings met alles dat is, of kunnen produceren, een stroom van bytes.
Met deze opdracht kunnen we kijken door de RAM (random access memory) van de computer.
We moeten gebruik maken van sudo omdat we de toegang tot /dev/mem. Dit is een teken toestel bestand die houder is van een image van het geheugen van uw computer.
sudo strings /dev/mem en | of minder
De vermelding is niet de gehele inhoud van uw RAM-geheugen. Het is gewoon de snaren die kunnen worden uitgepakt.
GERELATEERD: Wat Betekent “Alles Is een Bestand” Betekenen in Linux?
Het Zoeken Veel Bestanden Tegelijk
Jokertekens kunnen worden gebruikt voor het selecteren van groepen bestanden worden gezocht. Het * teken staat voor meerdere tekens, en de ? teken staat voor één willekeurig teken. U kunt ook kiezen om veel bestandsnamen op de commando-regel.
We gaan gebruik maken van een wildcard en zoeken door alle van de uitvoerbare bestanden in de /bin directory. Omdat de lijst bevat de resultaten van veel bestanden, zullen we gebruik maken van de -f (bestandsnaam) optie. Dit print de bestandsnaam die bij het begin van elke regel. We kunnen dan zien welke bestand elke tekenreeks is gevonden in.
We zijn de leidingen van de resultaten door middel van grep, en op zoek naar tekenreeksen met het woord “Copyright.”
snaren -f /bin/* | grep Copyright
We krijgen een keurige vermelding van het copyright verklaringen voor elk bestand in de /bin-directory, met de naam van het bestand aan het begin van elke regel.
snaren Ontrafeld
Er is geen mysterie voor strijkers; het is een typisch Linux-commando. Het doet iets heel specifieke en doet het heel goed.
Het is een andere Linux tanden, en komt pas echt tot leven wanneer het samen met andere opdrachten. Als je ziet hoe het kan gaan zitten tussen binaire bestanden en andere tools zoals grep, je begint te genieten van de functionaliteit van deze enigszins obscure opdracht.
LEES VERDER
- “Hoe Controleer en Draai Je iPhone de Privacy-Instellingen
- “Het Gebruik van Linux ar Opdracht voor het Maken van Statische Bibliotheken
- “Wat Is een Deepfake, en Moet ik me zorgen maken?
- “Hoe Internet Snelheid Testen In Zijn Werk? (en Hoe Nauwkeurig Zijn Ze?)
- “Hoe om te Controleren Uw Wi-Fi-signaalsterkte