Pindai file gambar atau disk untuk mencari pola dan kembalikan lokasinya

4

Katakanlah saya memiliki perangkat blok atau file gambar. Dan katakan saya juga memiliki urutan byte atau string atau beberapa pola pencarian. Bagaimana saya bisa mendapatkan posisi kemunculan pola atau string seperti itu? Apakah ada alat untuk itu?

Melab
sumber

Jawaban:

4

Solusi sederhana akan digunakan

grep -aob "string to find" /dev/blockdev
  • saklar "a" memperlakukan file sebagai teks, sehingga ia menampilkan output, saklar "o" membatasi output ke offset dan string yang Anda cari sehingga Anda tidak mendapatkan sampah biner dan tombol "b" memberi tahu untuk mencetak byte offset juga.
davidgo
sumber
0

Pertanyaan ini memiliki beberapa jawaban, tergantung pada apa yang ingin Anda cari secara tepat.

Jika Anda ingin menemukan semua string karakter di dalam file biner, maka perintahnya adalah string : dari Manual ,

string (1)

Nama

string - mencetak string karakter yang dapat dicetak dalam file.

.... Untuk setiap file yang diberikan, string GNU mencetak urutan karakter yang dapat dicetak yang panjangnya minimal 4 karakter (atau angka yang diberikan dengan opsi di bawah) dan diikuti oleh karakter yang tidak diinginkan. Secara default, ini hanya mencetak string dari bagian file objek yang diinisialisasi dan dimuat; untuk jenis file lainnya, ia mencetak string dari seluruh file.

Jika Anda tertarik untuk mencari file biner untuk string biner , Anda dapat menggunakan bgrep (bukan di repos, AFAIK):

bgrep adalah utilitas untuk mencari kemunculan string biner dalam file biner. Seperti namanya, antarmuka dan desainnya dimodelkan setelah perintah "grep" yang ada di mana-mana, yang digunakan untuk mencari kemunculan pola teks dalam file teks.

Atau, Anda dapat menggunakan tipu daya berikut:

cat YourFile | hexdump -C | grep YourPattern

Ini menggunakan hexdump: lagi dari Manual ,

hexdump (1)

Nama

hexdump - ascii, desimal, heksadesimal, dump oktal

Saya menggunakan -Cformat yang mudah :

Tampilan -C Canonical hex + ASCII. Tampilkan offset input dalam heksadesimal, diikuti oleh enam belas spasi-terpisah, dua kolom, byte heksadesimal, diikuti oleh enam belas byte yang sama dalam format% _p yang terlampir dalam karakter '' | ''.

sementara beberapa orang lebih suka -cformat:

-c Tampilan karakter satu byte. Tampilkan offset input dalam heksadesimal, diikuti oleh enam belas karakter yang dipisahkan spasi, tiga kolom, diisi spasi, karakter data input per baris.

MariusMatutiae
sumber