it-swarm-vi.tech

Lệnh Linux để tìm Chuỗi trong tệp nhị phân hoặc không ascii

Có bất kỳ lệnh linux để trích xuất tất cả các chuỗi ascii từ một tệp nhị phân thực thi hoặc khác? Tôi cho rằng tôi có thể làm điều đó với một grep, nhưng tôi nhớ đã nghe thấy ở đâu đó rằng một lệnh như vậy tồn tại?

40
Ethan Heilman

Lệnh bạn đang tìm kiếm là strings

Tên của nó khá tự giải thích, nó lấy bất kỳ chuỗi có thể in nào từ một tệp nhất định.

man strings đưa ra:

CHUINGSI (1)

[~ # ~] tên [~ # ~]
[.__.] chuỗi - tìm các chuỗi có thể in trong một đối tượng hoặc tệp nhị phân khác

[~ # ~] tóm tắt [~ # ~]
[.__.] strings [ - ] [ -a ] [ -o ] [ -t format ] [ -number ] [ -n number ] [--] [file ...]

72
drAlberT

Lệnh chuỗi là cách giải quyết loại vấn đề cụ thể này. Đôi khi bạn cũng phải chuyển nó ra grep.

Ví dụ:

strings somebinaryfile | grep textuwanttofind
11
luis.espinal

Lệnh không tồn tại và được gọi là .... chuỗi!

4
Mark

Lệnh od có thể làm điều này:

od -c *filename*
3
Kyle Brandt

Một vấn đề với việc sử dụng chuỗi là bạn không nhìn thấy các bản in không phải xung quanh và bạn phải cẩn thận với độ dài chuỗi tối thiểu.

Một vấn đề sử dụng

fILE
hexdump -C TẬP TIN

Một cái gì đó tôi rất thích cho điều này là ZTreeWin chạy trong WINE trên Linux - bạn có thể làm rất nhiều với nó nhưng việc tìm kiếm trong bất kỳ tệp hoặc nhị phân chỉnh sửa nào có thể đặc biệt hữu ích.

Gói ytree tuyệt vời có sẵn cho nhiều biến thể Linux và Unix và có chế độ xem kết xuất Hex tốt cho bất kỳ tệp nào nhưng không có tìm kiếm mà ZTreeWin (và tiền thân 16bit của nó, XTree) có.

2
qeff