Skeakelje in triemtype foar triemen mei de stjoerbehear

Hawwe jo ea besocht om in bestân yn in editor te iepenjen om te finen dat it net lêsber binäre ynhâld befettet?

It kommando "strings" fan Linux makket it mooglik om de minske-lêsbere tekens yn alle triemmen te besjen.

It belangrykste doel fan it gebrûk fan 'e strings' is om te wurkjen hokker type triem it jo besjogge mar jo kinne it ek brûke om tekst te ûntstean. As jo ​​bygelyks in triem hawwe fan in proprietêr programma dat spesjale opsjes yn in frjemd binêr formaat befetsje kinst "strings" brûke om de tekst te meitsjen dy't jo yn it bestân sette.

Foarbyld fan it stringsbehearder

In geweldige manier om de krêft fan 'e stringsbehearder te bewizen is om in dokumint te meitsjen wêrfan LibreOffice Writer brûkt.

Iepenje LibreOffice Writer ienfâldich en ynfiere inkelde tekst en besparse it dan yn it standert ODT-formaat .

Iepenje in terminalfinster (druk CTRL, ALT en T tagelyk) en brûk dan it kommando-kat brûke om de triem as folgjend wer te jaan:

cat yourfilename.odt | mear

(Ferfange de yourfilename.odt mei de namme fan de triem dy't jo makke hawwe)

Wat jo sjogge, is in folsleine muorre fan yllustreare tekst.

Druk op de romte bar om troch de bestân te scrollen. Sporadich fia de triem sjochst guon fan 'e tekst dy't jo ynfierd hawwe.

It kommando strings kin brûkt wurde om allinich de dielen sjen te litten dy't minsklik lêsber binne.

Yn syn ienfâldige foarm kinne jo it folgjende kommando útfiere:

strings yourfilename.odt | mear

As foarige plak sil in muorre fan tekst ferskine, mar allinich tekst dat jo as minsklik lêze kinne. As jo ​​glêdende binne, dan kinne jo jo tekst sjen.

Wat jo sille sjen kinne dat de kaai is, is lykwols op 'e earste line:

mimetypeapplication / vnd.oasis.opendocument.text

Wy kenne dat it triemtype in 2D-triemtafel foar LibreOffice Writer ODT is:

  1. Wy hawwe it bestân makke
  2. De taheaksel is .ODT

Stel dan dat jo de triem net oanmeitsje of jo hawwe de triem fûn op in weromwerpere skiif en it bestân hat gjin útwreiding.

Windows ferwidering soene faak ferfange triemen mei nammen as 0001, 0002, 0003 ensfh. It feit dat de bestannen weromfûnen is geweldich, mar besykje te wurkjen hokker de typen fan dizze bestannen in nachtmerje wie.

Troch gebrûk fan strings hawwe jo in fjochtslach om it triemtype út te wurkjen. Witte dat in triem in opendocument.text-bestân is dat jo it mei de ODT-útwreiding beheare kinne en iepenje yn LibreOffice-skriuwer.

Yn gefal dat jo wierskynlik in ODT bestân is, is yn haadsaak in komprimearre triem. As jo ​​yourfilename.odt nei yourfilename.zip neamden, kinne jo it iepenje yn in argyfynstiel en sels it bestân ferzjen.

Alternative Behavioren

Standert sil it kommando strings alle strings binnen in triem weromlade, mar jo kinne it gedrach ynskeakelje, sadat it weromdraaien fan ynitialisearre, laden bestannen yn in bestân.

Wat betsjut dit krekt? Nimmen liket te witten.

It makket sin te wêzen dat jo gebrûk meitsje fan strings om te probearjen en te finen fan it triemtype of om nei spesifike tekst yn in bestân te sykjen.

As jo ​​it kommando strings brûke mei help fan it standert gedrach jo net de útfier krije jo te hopjen dan besykje ien fan 'e folgjende kommando' s te bestellen om te sjen oft it in ferskil makket:

strings -d jofilename

strings --data jofilename

De hânlieding befettet dat it hjirboppe kommando bemiddelje kin om de bedrach fan 'e snaren werom te krijen fan snaren.

It kommando "strings" kin ynsteld wurde om te wurkjen yn reverse sadat de minus d-skeakel it standert gedrach is. As dit it gefal is op jo systeem dan kinne jo alle gegevens trochjaan troch de folgjende kommando te brûken:

strings -a jofilename

Formaatútfier

Jo kinne de tekst binnen de útfier krije om de namme fan it bestân njonken elke tekst te sjen.

Om dit te dwaan gean ien fan 'e folgjende kommando's:

strings -f jofilename

strings --print-file-name jofilename

De útfier sjogge no sa:

yourfilename: in stikje tekst

yourfilename: in oar stikje tekst

As part fan de útfier kinne jo ek de offset sjen wêr't dizze tekst yn in bestân ferskynt. Om dat sa te dwaan binne it folgjende kommando:

strings -o jofilename

De útfier sil dus sjogge:

16573 jo

17024 tekst

De offset is eigentlik de octaloffset hoewol ôfhinklik fan hoe strings foar jo systeem kompilearre wie it it maklik de hex of de desimaal offset wêze koe.

In krekte krekte manier om de offset te meitsjen dy't jo wolle wolle is de folgjende kommando's te brûken:

strings -td jo nammenamme

strings-nei jo filename

strings -e yourfilename

De minus t betsjut dat de offset weromkomt en it karakter, dat folgje, bepaalt de offsetstype. (d. d = desimale, o = octaal, h = hex).

Standert sil it kommando strings alle nije teken ôfdrukke op in nije line, mar jo kinne de delimiter fan jo keuze ynstelle. Bygelyks om in pylk symboal ("|") te brûken as de delimiter it folgjende kommando útfiere:

strings -s "|" yourfilename

Adjust the string limit

De standert kommando standert soart foar in teken fan 4 printbere karakteren yn rige. Jo kinne de standert oanpasse, sadat it allinnich in tekenrige mei 8 printbere karakters of 12 printbere karakters weromjûn.

Mei it oanpassen fan dizze limyt kinne jo de útfier meitsje om it bêste mooglik resultaat te krijen. Troch jo sykje op in string dy't te lang is, kinst it brûke fan tekst brûke, mar troch it te koart te meitsjen kinne jo mei in soad mear sukses komme.

Om de stringlimiteit oan te passen laat de folgjende kommando:

strings -n 8 jofilename

Yn it hjirboppe foarbyld haw ik de limyt feroare oan 8.

Jo kinne ferfange 8 mei it oantal jo kar.

Jo kinne ek de folgjende kommando brûke om itselde te dwaan:

strings - bytes = 8 jo filename

Meitsje Whitespace

Standert stiet it kommando strings ûnderdielen lykas in ljepblêd of romte as printbere karakter. Dêrom as jo in string hawwe dy't lêst as "de kat siet op 'e mat" dan sil it kommando strings de hiele tekst weromjaan.

Nije rigelspersoanen en wikselkearingen wurde net beskôge as standert foar printbere karakters.

Om stringen te krijen om nije line-tekens te erkennen en weromkommingen werom as tekenrige lettertypen op 'e folgjende wize:

strings -w yourfilename

Feroarje de kodearring

Der binne 5 kodearingsopsjes beskikber foar gebrûk mei strings:

De standert is 7 bit byte.

Om de kodearring te wizigjen laat de folgjende kommando:

strings -es jofilename

strings --encodeling = s jo triemnamme

Yn it boppesteande kommando haw ik de standert "s" oanjûn dat 7 bit byte betsjut. Sykje de "s" ferfange troch de kodearringbrief fan jo kar.

Feroarje de binêre triembehearder Name

Jo kinne it gedrach fan strings feroarje, sadat it in oare binêre triem-descriptorbibliotheek brûkt as de ien foar jo systeem foarkomt.

Dizze skeakel is ien foar de saakkundigen. As jo ​​in oare bibleteek hawwe brûke dan kinne jo dit dwaan troch it folgjende stomme kommando te fieren:

strings -t bfdname

Lêzen opsjes fan in bestân

As jo ​​alle kearen dezelfde opsjes brûke, dan wolle jo alle skeakels allinich opjaan as jo it kommando útfiere omdat it tiid nedich is.

Wat jo kinne dwaan, is in teksttriem mei help fan nano te meitsjen en de opsjes yn dizze bestân oan te jaan.

Om dit út te fieren binnen in terminal ferfange jo it folgjende kommando:

nano stringsopts

Yn 't triem ynfiere de folgjende tekst:

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

Besparje it bestân troch CTRL en O op te slaan, en gean troch te drukken op CTRL en X.

Om de stringsbehearders te runen mei dizze opsjes ferfange de folgjende kommando:

strings @stringsopts jofilename

De opsjes wurde lêzen fan de triemopstopen en jo moatte de triemnamme foardat elke snaar, de offset en de "|" as in skiedingstaal.

Help te krijen

As jo ​​mear oer strings lêze wolle kinne jo it folgjende kommando útfiere om help te krijen.

strings --help

Alternatyf kinne jo ek de hânside lêze:

man strings

Sykje út wêrfoar ferzje fan strings jo rinne

Om de ferzje fan strings te finen, dy 't jo útfiere, rinne ien fan' e folgjende kommando's:

strings -v

strings -V

strings - ferzje