Come usare il comando stringhe in Linux

Contenuti

Terminale Linux su un laptop

Vuoi vedere il testo all'interno di un file binario o di dati?? El Linux strings Il comando estrae quei frammenti di testo, chiamato “Catene”, per te.

Linux è pieno di comandi che possono sembrare soluzioni ai problemi. il strings Il comando rientra decisamente in quel campo. Qual è il tuo obiettivo?? C'è un punto in un comando che elenca le stringhe stampabili da un file binario??

Facciamo un passo indietro. File binari, come i file di programma, può contenere stringhe di testo leggibili dall'uomo. Ma, Come puoi vederli?? Se usi cat oh less probabilmente ti ritroverai con una finestra terminale bloccata. I programmi progettati per funzionare con file di testo non funzionano bene se vengono immessi caratteri non stampabili..

La maggior parte dei byte all'interno di un file binario non sono leggibili dall'uomo e non possono essere stampati nella finestra del terminale in un modo che abbia senso. Non esistono caratteri o simboli standard per rappresentare valori binari che non corrispondono a caratteri alfanumerici, punteggiatura o spazi vuoti. Su tutto, Questi sono noti come caratteri “Stampabile”. Il resto sono personaggi “non stampabile”.

Perché, provare a visualizzare o cercare stringhe di testo in un file binario o di dati è un ostacolo. Ed è lì che strings entra. Estratto stringhe di file stampabili quindi altri comandi possono usare le stringhe senza dover gestire caratteri non stampabili.

Usando il comando stringhe

Non c'è niente di complicato in esso strings comando, e il suo utilizzo di base è molto semplice. Forniamo il nome del file che desideriamo strings per cercare sulla riga di comando.

Qui, useremo stringhe in un file binario, un file eseguibile, chiamato “strambare”. Abbiamo scritto strings, Uno spazio, “strambare” e poi premi Invio.

jibber di corde

Le stringhe vengono estratte dal file ed elencate nella finestra del terminale.

Impostazione della lunghezza minima dell'accordo

Per impostazione predefinita, strings cercherà stringhe di quattro o più caratteri. Per determinare una lunghezza minima più o meno lunga, Utilizzare il -n (Lunghezza minima) opzione.

Nota che minore è la lunghezza minima, maggiori sono le possibilità di vedere più spazzatura.

Alcuni valori binari hanno lo stesso valore numerico del valore che rappresenta un carattere stampabile. Se due di questi valori numerici sono uno accanto all'altro nel file e specifichi una lunghezza minima di due, quei byte saranno riportati come una stringa.

Chiedere strings usare due come lunghezza minima, usa il seguente comando.

stringhe -n 2 strambare

Ora abbiamo due stringhe di lettere incluse nei risultati. Nota che gli spazi vengono contati come un carattere stampabile.

Stringa di tubi attraverso Less

A causa della lunghezza della presa strings, lo canalizzeremo less. Prossimo, possiamo scorrere il file cercando il testo di interesse.

jibber di corde | meno

L'elenco è ora presentato a noi a less, con la parte superiore dell'elenco visualizzata per prima.

Usa le stringhe con i file oggetto

Regolarmente, i file sorgente del programma sono compilati in file oggetto. Questi sono collegati ai file di libreria per creare un file eseguibile binario. Abbiamo il file dell'oggetto jibber a portata di mano, quindi diamo un'occhiata all'interno di quel file. Prendere nota dell'estensione del file “.oh”.

jibber.o | meno

Il primo set di stringhe è racchiuso nella colonna otto se hanno più di otto caratteri. Se sono stati regolati, Viene visualizzato un carattere “h” nella colonna nove. Puoi riconoscere queste stringhe come istruzioni SQL.

Scorrendo l'output si scopre che questo formato non viene utilizzato in tutto il file.

È interessante vedere le differenze nelle stringhe di testo tra il file oggetto e l'eseguibile finito.

Cerca in aree specifiche del file

I programmi compilati hanno diverse aree al loro interno che vengono utilizzate per memorizzare il testo. Predefinito, strings cerca il testo nell'intero file. È come se avessi usato il -a (tutti) opzione. Per le stringhe da cercare solo su sezioni di dati caricate e inizializzate nel file, utilizzare il -d opzione (dati).

stringhe -d jibber | meno

A meno che tu non abbia una buona ragione per farlo, puoi anche utilizzare le impostazioni predefinite e cercare l'intero file.

Stampa offset a catena

Possiamo avere strings stampa l'offset dall'inizio del file in cui si trova ogni stringa. Per fare questo, usa el -o (compensazione) opzione.

stringhe -o parse_phrases | meno

Lo spostamento avviene in ottale.

Per visualizzare l'offset in una base numerica diversa, come decimale o esadecimale, Utilizzare il -t (radix) opzione. L'opzione radix deve essere seguita da d (decimale), x (esadecimale), oh o (ottale). Usando -t o è lo stesso che usare -o.

stringhe -t d parse_phrases | meno

Gli offset sono ora stampati in decimale.

stringhe -t x parse_phrases | meno

Gli offset ora sono stampati in esadecimale.

Compresi gli spazi vuoti

strings considera i caratteri di tabulazione e spazio come parte delle stringhe che trova. Altri caratteri di spazio bianco, come nuove righe e ritorni a capo, non sono trattati come se facessero parte delle catene. il -w L'opzione (spazio bianco) fa in modo che le stringhe trattino tutti i caratteri di spaziatura come se facessero parte della stringa.

stringhe -w aggiungi_dati | meno

Possiamo vedere la riga vuota in uscita, che è il risultato del ritorno a capo (invisibile) e i caratteri della nuova riga alla fine della seconda riga.

Non siamo limitati ai file

Possiamo usare strings con qualunque cosa, o può produrre, un flusso di byte.

Con questo comando, possiamo guardare attraverso il memoria ad accesso casuale (RAM) dal nostro computer.

Dobbiamo usare sudo perché stiamo accedendo / sviluppo / meme. Questo è un file di dispositivo a caratteri che contiene un'immagine della memoria principale del tuo computer.

sudo stringhe /dev/mem | meno

L'elenco non è il contenuto completo della tua RAM. Sono solo i fili che possono essere tirati da esso.

IMPARENTATO: Cosa significa “tutto è un file” en Linux?

Cerca più file contemporaneamente

I caratteri jolly possono essere utilizzati per scegliere gruppi di file da cercare. il * il carattere rappresenta più caratteri, e il ? il carattere rappresenta qualsiasi singolo carattere. Inoltre puoi scegliere di fornire molti nomi di file sulla riga di comando.

Useremo un carattere jolly e cercheremo tutti i file eseguibili nella directory / bidone. Perché l'elenco conterrà i risultati di molti file, useremo il -f opzione (nome del file). Questo stamperà il nome del file all'inizio di ogni riga. Quindi possiamo vedere in quale file è stata trovata ciascuna stringa.

Stiamo canalizzando i risultati attraverso grepe la ricerca di stringhe che contengono la parola “Diritto d’autore”.

stringhe -f /bin/* | grep Copyright

Otteniamo un elenco ordinato di dichiarazioni di copyright per ogni file nella directory / bidone, con il nome del file all'inizio di ogni riga.

corde sbrogliate

Le corde non hanno mistero; è un tipico comando Linux. Fa qualcosa di molto specifico e lo fa molto bene.

È un altro ingranaggio di Linux e prende davvero vita quando funziona con altri comandi.. Quando vedi come puoi spostarti tra file binari e altri strumenti come grep, inizia ad apprezzare la funzionalità di questo comando un po 'buio.

impostaTimeout(funzione(){
!funzione(F,B,e,v,n,T,S)
{Se(f.fbq)Restituzione;n=f.fbq=funzione(){n.callMethod?
n.callMethod.apply(n,argomenti):n.queue.push(argomenti)};
Se(!f._fbq)f._fbq = n;n.push=n;n.loaded=!0;n.version='2.0′;
n.coda=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(T,S) } (window, documento,'copione',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('dentro', '335401813750447');
fbq('traccia', 'Visualizzazione della pagina');
},3000);

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.