Hoe om 'n lêer se afdrukbare karakters met die snaaropdrag te wys

Het jy al ooit probeer om 'n lêer in 'n redakteur oop te maak om uit te vind dat dit onleesbare binêre inhoud bevat?

Die Linux "stringe" opdrag maak dit moontlik om die mens leesbare karakters in enige lêer te besigtig.

Die hoof doel van die gebruik van die "stringe" opdrag is om uit te vind watter tipe lêer dit is waarna u kyk, maar u kan dit ook gebruik om teks te onttrek. As u byvoorbeeld 'n lêer het van 'n eie program wat lêers in 'n vreemde binêre formaat stoor, kan u "snare" gebruik om die teks wat u in die lêer het, uit te haal.

Voorbeeld gebruik van die strings bevel

'N goeie manier om die krag van die snare bevel te demonstreer is om 'n dokument te skep met behulp van LibreOffice Writer.

Maak eenvoudig LibreOffice Writer oop en voer 'n paar teks in en stoor dit dan in die standaard ODT formaat .

Open nou 'n terminaal venster (druk CTRL, ALT en T terselfdertyd) en gebruik dan die katopdrag om die lêer soos volg te vertoon:

kat jou lêernaam.odt | meer

(Vervang die jouselfnaam.odt met die naam van die lêer wat jy geskep het)

Wat jy sal sien is 'n hele muur van onleesbare teks.

Druk die spasiebalk om deur die lêer te blaai. Sporadies deur die lêer sal jy van die teks wat jy ingevoer het, sien.

Die stringe bevel kan gebruik word om net die dele wat menslik leesbaar is, te vertoon.

In sy eenvoudigste vorm kan jy die volgende opdrag uitvoer:

snare yourfilename.odt | meer

Soos voorheen sal 'n teksmuur verskyn, maar slegs teks wat jy as mens kan lees. As jy gelukkig is, sal jy jou teks kan sien.

Wat jy sal kan sien is sleutel, maar is op die eerste reël:

mimetypeapplication / vnd.oasis.opendocument.text

Ons weet dat die lêer tipe is 'n LibreOffice Writer ODT-lêer om 2 redes:

  1. Ons het die lêer geskep
  2. Die uitbreiding is .ODT

Stel jou voor dat jy nie die lêer geskep het nie, of jy het die lêer op 'n herwinbare skyf gevind en die lêer het nie 'n uitbreiding nie.

Windows herstel sal dikwels lêers herstel met name soos 0001, 0002, 0003 ens. Die feit dat die lêers herstel is, is goed, maar probeer om uit te vind wat die tipe lêers was, was 'n nagmerrie.

Deur snare te gebruik, het jy 'n kans om die lêer tipe uit te werk. As jy weet dat 'n lêer 'n opendocument.text lêer is, kan jy dit met die ODT-uitbreiding stoor en dit in LibreOffice-skrywer oopmaak.

As u nie bewus was nie, is 'n ODT-lêer basies 'n saamgeperste lêer. As jy die naam van jou lêernaam.odt na yourfilename.zip, kan jy dit oopmaak in 'n argiefprogram en selfs die lêer losmaak.

Alternatiewe gedrag

Standaard gee die stringe opdrag alle stringe binne 'n lêer, maar jy kan die gedrag omskakel sodat dit snare van geïnitialiseerde, gelaaide data-afdelings in 'n lêer kry.

Wat beteken dit presies? Niemand wil weet nie.

Dit is sinvol om aan te neem dat jy snare gebruik om te probeer om die lêer tipe uit te vind of om spesifieke teks in 'n lêer te soek.

As jy die opdrag van die stringe gebruik met die standaardgedrag, kry jy nie die uitset wat jy gehoop het nie, en probeer dan een van die volgende opdragte om te sien of dit 'n verskil maak:

snare -d jou lêernaam

snare - data joufilename

Die handleiding gee aan dat bogenoemde opdrag kan help om die hoeveelheid vullis wat van stringe afkomstig is, te verminder.

Die "stringe" -opdrag kan opgestel word om in omgekeerde werk te werk, sodat die minus-skakelaar die verstekgedrag is. As dit op u stelsel is, kan u al die data terugstuur deur die volgende opdrag te gebruik:

snare -a jou lêernaam

Formatering Uitvoer

U kan die teks binne die uitvoer kry om die naam van die lêer langs elke lyn van teks weer te gee.

Om dit te doen, voer een van die volgende opdragte uit:

snare -f jou lêernaam

snare - druk-lêer-naam joufilename

Die uitset sal nou so lyk:

Jou lêernaam: 'n stuk teks

joufilenaam: nog 'n stuk teks

As deel van die uitset kan jy ook die offset van waar die teks in 'n lêer verskyn, vertoon. Om dit te doen, voer die volgende opdrag uit:

snare -in jou lêernaam

Die uitset sal so lyk:

16573 jou

17024 teks

Die verrekening is eintlik die oktaal afwyking. Alhoewel, afhangende van hoe snare vir jou stelsel saamgestel is, dit ook maklik die hex of die desimale afstelling kan wees.

'N meer akkurate manier om die vereffenings wat jy wil hê, is om die volgende opdragte te gebruik:

snare -td jou lêernaam

snare-na jou lêernaam

snare -die jou lêernaam

Die minus t beteken die offset terug en die volgende karakter bepaal die verrekeningstipe. (dws d = desimale, o = oktaal, h = heks).

By verstek druk die stringe opdrag elke nuwe tou op 'n nuwe lyn, maar jy kan die afbakening van jou keuse stel. Byvoorbeeld, om 'n pyp simbool ("|") te gebruik as die delimiter die volgende opdrag uitvoer:

snare -s "|" yourfilename

Pas die stringperk aan

Die string bevele verstek soek na 'n string van 4 afdrukbare karakters in 'n ry. U kan die verstek aanpas, sodat dit slegs 'n string met 8 uitdrukbare karakters of 12 drukbare karakters oplewer.

Deur hierdie limiet aan te pas, kan u die uitset aanpas om die beste moontlike resultaat te kry. Deur te soek na 'n string wat te lank is, loop jy die risiko om nuttige teks te verlaat, maar deur dit te kort te maak, kan jy uiteindelik met veel meer rommel terugkeer.

Om die snaarlimiet aan te pas, voer die volgende opdrag uit:

snare -'n 8 joufilename

In bogenoemde voorbeeld het ek die limiet verander na 8.

U kan 8 vervang met die nommer van u keuse.

U kan ook die volgende opdrag gebruik om dieselfde ding te doen:

snare --bytes = 8 joufilename

Sluit witruimte in

Standaard bevat die stringe opdrag witruimte soos 'n oortjie of spasie as 'n drukbare karakter. Daarom, as jy 'n tou het wat soos die kat op die mat sit, dan sal die snaaropdrag die hele teks terugbring.

Nuwe reël karakters en karretjies word nie as standaard drukbare karakters beskou nie.

Om strings te kry om nuwe lynkarakters te herken en vervoeropbrengste as 'n afdrukbare karakter, voer strings op die volgende manier uit:

snare -w jou lêernaam

Verander die kodering

Daar is 5 enkodering opsies beskikbaar vir gebruik met snare:

Die standaard is 7 bis byte.

Om die kodering-lopie te verander, voer die volgende opdrag:

snare - is jou lêernaam

snare --enkodering = s joufilename

In die bogenoemde opdrag het ek die standaard 's' aangedui wat 7 bit byte beteken. Vervang die "s" met die enkodering brief van u keuse.

Verander die binêre lêer beskrywing Naam

U kan die gedrag van snare verander sodat dit 'n ander binêre lêerbeskryweringsbiblioteek gebruik, behalwe die een wat vir u stelsel voorsien word.

Hierdie skakelaar is een vir die kenners. As jy nog 'n biblioteek gebruik, kan jy dit doen deur die volgende stringe opdrag uit te voer:

snare -Bfdname

Leesopsies vanaf 'n lêer

As jy elke keer dieselfde opsies gaan gebruik, wil jy nie al die skakelaars spesifiseer nie elke keer as jy die opdrag uitvoer omdat dit tyd neem.

Wat jy kan doen is om 'n tekslêer te skep met nano en spesifiseer die opsies binne daardie lêer.

Om dit uit te probeer binne 'n terminaal, voer die volgende opdrag uit:

nano stringsopts

Vul die volgende teks in die lêer in:

-f -o -n 3 -s "|"

Stoor die lêer deur Ctrl en O te druk en sluit deur Ctrl en X te druk.

Om die stringe opdragte met hierdie opsies uit te voer, voer die volgende opdrag uit:

strings @ stringsopts joufilename

Die opsies sal vanaf die lêer stringsopts gelees word en u moet die lêernaam voor elke string, die offset en die "|" sien. as skeider.

Hulp kry

As u meer oor snare wil lees, kan u die volgende instruksies uitvoer om hulp te kry.

snare - help

Alternatiewelik kan u ook die handleiding bladsy lees:

man snare

Vind uit watter weergawe van snare jy hardloop

Om die weergawe van die snare wat jy hardloop te vind, voer een van die volgende opdragte uit:

snare -v

snare -V

snare - weergawe