Cara Menunjukkan Karakter Bercetak Fail Dengan Perintah Strings

Pernahkah anda cuba membuka fail dalam editor hanya untuk mengetahui bahawa ia mengandungi kandungan binari yang tidak boleh dibaca?

Perintah "rentetan" Linux memungkinkan untuk melihat watak-watak yang boleh dibaca manusia dalam sebarang fail.

Tujuan utamanya untuk menggunakan arahan "rentetan" ialah untuk menyelesaikan jenis fail yang anda cari tetapi anda juga boleh menggunakannya untuk mengekstrak teks. Contohnya, jika anda mempunyai fail dari program proprietari yang menyimpan fail dalam format binari yang aneh, anda boleh menggunakan "rentetan" untuk mengekstrak teks yang anda masukkan ke dalam fail.

Contoh Penggunaan Perintah Strings

Cara yang baik untuk menunjukkan kekuatan arahan rentetan ialah membuat dokumen menggunakan FreeOffice Writer.

Cukup buka Writer LibreOffice dan masukkan beberapa teks dan kemudian simpan dalam format ODT standard .

Sekarang buka tetingkap terminal (tekan CTRL, ALT dan T pada masa yang sama) dan kemudian gunakan perintah kucing untuk memaparkan fail seperti berikut:

kucing yourfilename.odt | lebih lagi

(Gantikan yourfilename.odt dengan nama fail yang anda buat)

Apa yang anda akan lihat adalah dinding keseluruhan teks yang tidak boleh dibaca.

Tekan bar ruang untuk menatal fail. Secara spontan sepanjang fail anda akan melihat beberapa teks yang anda masukkan.

Perintah rentetan boleh digunakan untuk memaparkan hanya bahagian yang dibaca oleh manusia.

Dalam bentuk yang paling sederhana, anda boleh menjalankan arahan berikut:

strings yourfilename.odt | lebih lagi

Seperti dahulu, dinding teks akan muncul, tetapi hanya teks yang anda boleh baca sebagai manusia. Jika anda bernasib baik maka anda akan dapat melihat teks anda.

Apa yang anda akan dapat melihat yang penting, bagaimanapun, adalah pada baris pertama:

mimetypeapplication / vnd.oasis.opendocument.text

Kami tahu bahawa jenis fail adalah fail ODT Writer LibreOffice untuk 2 sebab:

  1. Kami mencipta fail
  2. Pelanjutan ini ialah .ODT

Bayangkan anda tidak mencipta fail atau anda mendapati fail itu pada cakera yang pulih dan fail itu tidak mempunyai sambungan.

Pemulihan Windows selalunya akan memulihkan fail dengan nama seperti 0001, 0002, 0003 dan lain-lain. Hakikat bahawa fail telah pulih besar tetapi cuba untuk menyelesaikan apa jenis fail tersebut adalah mimpi ngeri.

Dengan menggunakan rentetan, anda mempunyai peluang berjuang untuk mengerjakan jenis fail. Mengetahui bahawa fail ialah fail opendocument.text bermakna anda boleh menyimpannya dengan sambungan ODT dan membukanya dalam penulis LibreOffice.

Sekiranya anda tidak menyedari fail ODT pada dasarnya adalah fail dimampatkan. Jika anda menamakan semula yourfilename.odt ke yourfilename.zip anda boleh membukanya dalam alat pengarkiban dan unzip fail tersebut.

Kelakuan Alternatif

Secara lalai arahan rentetan mengembalikan semua rentetan dalam fail tetapi anda boleh menukar tingkah laku supaya ia mengembalikan rentetan dari bahagian data yang dimulakan, dimuatkan dalam fail.

Apakah maksudnya betul? Tiada siapa yang tahu.

Ia masuk akal untuk menganggap bahawa anda menggunakan rentetan untuk mencuba dan sama ada mencari jenis fail atau mencari teks tertentu dalam fail.

Jika apabila menjalankan arahan rentetan menggunakan kelakuan lalai anda tidak mendapat output yang anda harapkan maka cuba cuba menjalankan salah satu arahan berikut untuk melihat apakah ia membuat perbezaan:

strings -d yourfilename

tali - data yourfilename

Halaman manual menyatakan bahawa arahan di atas dapat membantu mengurangkan jumlah sampah yang dikembalikan dari rentetan.

Perintah "rentetan" boleh ditetapkan untuk berfungsi sebaliknya supaya suis minus d adalah tingkah laku lalai. Jika ini berlaku pada sistem anda maka anda boleh mengembalikan semua data dengan menggunakan arahan berikut:

rentetan -a yourfilename

Output Pemformatan

Anda boleh mendapatkan teks dalam output untuk memaparkan nama fail bersebelahan dengan setiap baris teks.

Untuk melakukan ini jalankan salah satu daripada arahan berikut:

string -f yourfilename

tali - nama fail-nama-nama anda

Keluaran sekarang akan kelihatan seperti ini:

yourfilename: sekeping teks

yourfilename: satu lagi teks

Sebagai sebahagian daripada output, anda juga boleh memaparkan offset di mana teks itu muncul dalam fail. Untuk berbuat demikian jalankan arahan berikut:

tali -o yourfilename

Output akan kelihatan seperti ini:

16573 anda

17024 teks

Offset sebenarnya adalah offset oktal walaupun bergantung pada bagaimana rentetan telah dikumpulkan untuk sistem anda dengan mudah menjadi hex atau offset perpuluhan juga.

Cara yang lebih tepat untuk mendapatkan offset yang anda inginkan adalah dengan menggunakan arahan berikut:

strings -td yourfilename

strings-to yourfilename

strings -th yourfilename

The minus t bermakna mengembalikan offset dan watak yang berikut menentukan jenis offset. (d = perpuluhan, o = oktal, h = hex).

Secara lalai arahan rentetan mencetak setiap rentetan baru pada barisan baru tetapi anda boleh menetapkan pemisah pilihan anda. Sebagai contoh menggunakan simbol paip ("|") sebagai pemisah menjalankan arahan berikut:

rentetan -s "|" yourfilename

Laraskan Had String

Perintah rentetan secara lalai mencari rentetan 4 aksara dicetak berturut-turut. Anda boleh melaraskan lalai supaya ia hanya mengembalikan rentetan dengan 8 aksara dicetak atau 12 aksara yang boleh dicetak.

Dengan melaraskan had ini, anda boleh menyesuaikan output untuk mendapatkan hasil yang terbaik. Dengan mencari rentetan yang terlalu lama anda berisiko mengabaikan teks yang berguna tetapi dengan menjadikannya terlalu pendek anda mungkin berakhir dengan jauh lebih banyak sampah yang dikembalikan.

Untuk melaraskan had rentetan jalankan perintah berikut:

rentetan -n 8 yourfilename

Dalam contoh di atas saya telah menukar had kepada 8.

Anda boleh menggantikan 8 dengan bilangan pilihan anda.

Anda juga boleh menggunakan arahan berikut untuk melakukan perkara yang sama:

rentetan --bytes = 8 yourfilename

Sertakan Whitespace

Secara lalai, arahan rentetan termasuk ruang kosong seperti tab atau ruang sebagai watak yang boleh dicetak. Oleh itu jika anda mempunyai rentetan yang dibaca sebagai "kucing duduk di atas tikar" maka arahan rentetan akan mengembalikan keseluruhan teks.

Aksara baris baru dan pulangan pengangkutan tidak dianggap sebagai aksara dicetak secara lalai.

Untuk mendapatkan rentetan untuk mengenali aksara baris baru dan pengembalian kereta sebagai rentetan rentetan aksara dicetak dengan cara berikut:

string -w yourfilename

Tukar Pengekodan

Terdapat 5 pilihan pengekodan yang tersedia untuk digunakan dengan rentetan:

Lalai adalah 7 bit byte.

Untuk menukar pengekodan jalankan arahan berikut:

string -es yourfilename

string --encoding = s yourfilename

Dalam arahan di atas, saya telah menetapkan default "s" yang bermaksud 7 bit byte. Cukup ganti "s" dengan huruf pengekodan pilihan anda.

Ubah Perduaan Fail Perintah Nama

Anda boleh menukar tingkah laku rentetan supaya ia menggunakan perpustakaan deskriptor binari yang berbeza selain yang disediakan untuk sistem anda.

Suis ini adalah satu untuk pakar-pakar. Jika anda mempunyai perpustakaan lain untuk digunakan maka anda boleh melakukannya dengan menjalankan perintah rentetan berikut:

string -T bfdname

Membaca Pilihan Daripada Fail

Jika anda akan menggunakan pilihan yang sama pada setiap masa maka anda tidak mahu menentukan semua suis setiap kali anda menjalankan arahan kerana ia mengambil masa.

Apa yang boleh anda lakukan ialah membuat fail teks menggunakan nano dan tentukan pilihan dalam fail itu.

Untuk mencuba ini dalam terminal, jalankan arahan berikut:

nano stringsopts

Dalam fail masukkan teks berikut:

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

Simpan fail dengan menekan CTRL dan O dan keluar dengan menekan CTRL dan X.

Untuk menjalankan arahan rentetan dengan pilihan ini jalankan arahan berikut:

strings @stringsopts yourfilename

Pilihan akan dibaca dari stringsopt fail dan anda harus melihat nama fail sebelum setiap rentetan, mengimbangi dan "|" sebagai pemisah.

Mendapatkan bantuan

Jika anda ingin membaca lebih lanjut mengenai rentetan, anda boleh menjalankan arahan berikut untuk mendapatkan bantuan.

tali - membantu

Sebagai alternatif anda juga boleh membaca halaman manual:

tali lelaki

Cari Out Which Version Of Strings Anda Berjalan

Untuk mencari versi rentetan yang anda jalankan jalankan salah satu daripada arahan berikut:

tali -v

tali -V

tali - pengalihan