Lệnh strings trong linux
Fatmawati
Achmad Zaenuri / Shutterstock.com
Bạn muốn xem văn bản bên trong tệp nhị phân hoặc tệp dữ liệu? Linux Show Linux có đầy đủ các lệnh có thể giống như các giải pháp để tìm kiếm các vấn đề. Các Hãy lùi một bước. Tệp nhị phân
— chẳng hạn như tệp chương trình — có thể chứa các chuỗi văn bản mà con người có thể đọc được. Nhưng làm thế nào để bạn có thể nhìn thấy chúng? Nếu bạn dùng Hầu hết các byte trong một tệp nhị phân đều không thể đọc được và không thể được in ra cửa sổ đầu cuối theo cách có ý nghĩa. Không có ký tự hoặc ký hiệu tiêu chuẩn nào để đại diện cho các giá trị nhị phân không tương ứng với ký tự chữ và số, dấu câu hoặc khoảng trắng. Nói chung, chúng được gọi là các ký tự “có thể in được”. Phần còn lại là các ký tự “không in được”. Vì vậy, cố gắng xem hoặc tìm kiếm thông qua tệp nhị phân hoặc tệp dữ liệu cho các chuỗi văn bản là một vấn đề. Và đó là nơi Không có gì phức tạp về Ở đây, chúng ta sẽ sử dụng các chuỗi trên một tệp nhị phân — một tệp thực thi — được gọi là “jibber”. Chúng tôi gõ strings jibber Các chuỗi được trích xuất từ tệp và được liệt kê trong cửa sổ đầu cuối. Đặt độ dài chuỗi tối thiểuTheo mặc định, các chuỗi sẽ tìm kiếm các chuỗi có bốn ký tự trở lên. Để đặt độ dài tối thiểu dài hơn hoặc ngắn hơn, hãy sử dụng Lưu ý rằng độ dài tối thiểu càng ngắn thì khả năng bạn nhìn thấy nhiều rác càng cao. Một số giá trị nhị phân có cùng giá trị số với giá trị đại diện cho một ký tự có thể in được. Nếu hai trong số các giá trị số đó nằm cạnh nhau trong tệp và bạn chỉ định độ dài tối thiểu là hai, các byte đó sẽ được báo cáo như thể chúng là một chuỗi. Để hỏi strings -n 2 jibber Bây giờ chúng ta có các chuỗi gồm hai chữ cái trong kết quả. Lưu ý rằng khoảng trắng được tính là một ký tự có thể in được. Đường ống thông qua ít hơnVì độ dài của đầu ra từ strings jibber | less Danh sách hiện đã được giới thiệu cho chúng tôi trong Sử dụng chuỗi với các tệp đối tượngThông thường, các tệp mã nguồn của chương trình được biên dịch thành các tệp đối tượng. Chúng được liên kết với các tệp thư viện để tạo tệp thực thi nhị phân. Chúng tôi có tệp đối tượng jibber để xử lý, vì vậy hãy xem bên trong tệp đó. Lưu ý phần mở rộng tệp “.o”. jibber.o | less Tập hợp chuỗi đầu tiên được bao bọc ở cột tám nếu chúng dài hơn tám ký tự. Nếu chúng đã được bọc, ký tự “H” ở cột chín. Bạn có thể nhận ra những chuỗi này là câu lệnh SQL. Cuộn qua đầu ra cho thấy rằng định dạng này không được sử dụng trong toàn bộ tệp. Thật thú vị khi thấy sự khác biệt trong chuỗi văn bản giữa tệp đối tượng và tệp thực thi đã hoàn thành. Tìm kiếm trong các khu vực cụ thể trong tệpCác chương trình đã biên dịch có các
khu vực khác nhau được sử dụng để lưu trữ văn bản. Theo mặc định, strings -d jibber | less Trừ khi bạn có lý do chính đáng, bạn cũng có thể sử dụng cài đặt mặc định và tìm kiếm toàn bộ tệp. In offset chuỗiChúng ta có thể có strings -o parse_phrases | less Phần bù được đưa ra trong Hệ bát phân. Để hiển thị hiệu số trong một cơ số số khác, chẳng hạn như thập phân hoặc thập lục phân, hãy sử dụng strings -t d parse_phrases | less Các hiệu số bây giờ được in dưới dạng thập phân. strings -t x parse_phrases | less Các hiệu số hiện được in dưới dạng thập lục phân. Bao gồm khoảng trắng
strings -w add_data | less Chúng ta có thể thấy dòng trống trong đầu ra, là kết quả của ký tự xuống dòng (ẩn) và ký tự xuống dòng ở cuối dòng thứ hai. Chúng tôi không giới hạn đối với tệpChúng ta có thể sử
dụng Với lệnh này, chúng ta có thể xem qua bộ nhớ truy cập ngẫu nhiên (RAM) của máy tính. Chúng ta cần sử dụng sudo strings /dev/mem | less Danh sách không phải là toàn bộ nội dung của RAM của bạn. Nó chỉ là các chuỗi có thể được trích xuất từ nó. LIÊN QUAN: “Mọi thứ là một tệp” có nghĩa là gì trong Linux? Tìm kiếm nhiều tệp cùng một lúcCác ký tự đại diện có thể được sử
dụng để chọn các nhóm tệp cần tìm kiếm. Các Chúng tôi sẽ sử dụng ký tự đại diện và tìm kiếm qua tất cả các tệp thực thi trong thư mục / bin. Bởi vì danh sách sẽ chứa kết quả từ nhiều tệp, chúng tôi sẽ sử dụng Chúng tôi đang tổng hợp kết quả thông qua grep và tìm kiếm các chuỗi có chứa từ “Bản quyền”. strings -f /bin/* | grep Copyright Chúng tôi nhận được một danh sách ngắn gọn về các tuyên bố bản quyền cho mỗi tệp trong thư mục / bin, với tên của tệp ở đầu mỗi dòng. chuỗi được làm sáng tỏKhông có gì bí ẩn đối với các chuỗi; nó là một lệnh Linux điển hình. Nó làm một cái gì đó rất cụ thể và làm nó rất tốt. Đó là một trong những bánh răng khác của Linux, và thực sự trở nên sống động khi nó hoạt động với các lệnh khác. Khi bạn thấy cách nó có thể nằm giữa các tệp nhị phân và các công cụ khác như |