İkili veya ascii olmayan dosyalarda Dizeleri bulmak için Linux Komutu


38

Tüm ascii dizelerini çalıştırılabilir veya başka bir ikili dosyadan çıkarmak için herhangi bir linux komutu var mı? Sanırım bir grep ile yapabilirim, ama böyle bir komutun var olduğunu duyduğumu hatırlıyorum.

Yanıtlar:


71

Aradığınız komut strings

Adı oldukça açıklayıcıdır, verilen bir dosyadan yazdırılabilir herhangi bir dize alır.

man strings verir:

İPLERİ (1)

NAME
dizeleri - yazdırılabilir dizeleri bir nesnede veya başka bir ikili dosyada bulun

ÖZET
strings [ - ] [ -a ] [ -o ] [ -t format ] [ -number ] [ -n number ] [--] [file ...]


9

Dizeleri komut sorunların bu özel türü için gitmek yoludur. Bazen de onu ezmek için çıkarmalısın .

Örneğin:

strings somebinaryfile | grep textuwanttofind


3

Od komutu bunu yapabilir:

od -c *filename*

3
evet, bu ASCII karakterlerini çıkarır, fakat aslında karakter dizileri değildir. Ben 'dizeleri' çoğu durumda için daha yararlı olduğunu düşünüyorum.
user5336

Ya, bu emri bilmiyordum ama şimdi biliyorum! AlberT benim '+1' :-) 'ı aldı
Kyle Brandt

2

Dizeleri kullanmakla ilgili bir sorun, çevreleyen basılabilirleri görmemeniz ve minimum dizgi uzunluğuna dikkat etmeniz gerektiğidir.

Kullanarak bir sorun

od -c DOSYA
veya
hexdump-C DOSYA
bir dizinin bir çizgiyi sararsa olmadığını bulmak zor olabilir.

Bunun için çok hoşuma giden bir şey , Linux'ta WINE'da çalışan ZTreeWin - bununla çok şey yapabilirsiniz, ancak herhangi bir dosyada arama yapmak veya ikili dosyaları düzenlemek özellikle yararlı olabilir.

Müthiş ytree paketi birçok Linux ve Unix varyantı için mevcut ve herhangi bir dosyanın iyi bir Hex döküm görünümüne sahip, ancak ZTreeWin (ve 16bit selefi, XTree) 'nin yaptığı aramalara sahip değil.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.