Làm thế nào để tạo một Hexdump của một tập tin hoặc chuỗi văn bản

Giới thiệu

Một kết xuất hex là một chế độ xem dữ liệu thập lục phân. Bạn có thể muốn sử dụng hệ thập lục phân khi gỡ lỗi chương trình hoặc để thiết kế lại chương trình.

Ví dụ: nhiều định dạng tệp có các ký tự hex cụ thể để biểu thị loại của chúng. Nếu bạn đang cố gắng đọc tệp bằng chương trình và vì lý do nào đó, tệp không tải chính xác, có thể tệp đó không ở định dạng bạn đang mong đợi.

Nếu bạn muốn xem làm thế nào một chương trình hoạt động và bạn không có mã nguồn hoặc phần mềm mà đảo ngược các kỹ sư mã, bạn có thể nhìn vào bãi chứa hex để thử và làm việc ra những gì đang xảy ra.

Hexadecimal là gì?

Máy tính suy nghĩ trong nhị phân . Mỗi ký tự, số và ký hiệu được tham chiếu bởi một giá trị nhị phân hoặc nhiều nhị phân.

Con người, tuy nhiên, có xu hướng suy nghĩ theo thập phân.

Hàng nghìn Hàng trăm Hàng chục Các đơn vị
1 0 1 1

Là con người, con số thấp nhất của chúng ta được gọi là đơn vị và biểu diễn các số từ 0 đến 9. Khi chúng ta đến 10, chúng ta thiết lập lại cột đơn vị về 0 và thêm 1 vào cột hàng chục (10).

128 64 32 16 số 8 4 2 1
1 0 0 1 0 0 0 1

Trong nhị phân, số thấp nhất chỉ đại diện cho 0 và 1. Khi chúng ta vượt qua 1, chúng ta đặt 1 vào cột 2 và 0 trong cột 1. Khi bạn muốn đại diện cho 4 bạn đặt 1 trong cột 4 và đặt lại cột của 2 và 1.

Do đó để đại diện cho 15 bạn sẽ có 1111 là viết tắt của 1 tám, 1 bốn, 1 hai và 1 một. (8 + 4 + 2 + 1 = 15).

Nếu chúng ta xem một tệp dữ liệu ở định dạng nhị phân, nó sẽ hoàn toàn lớn và hầu như không thể hiểu được.

Bước tiếp theo từ nhị phân là bát phân, sử dụng 8 làm số cơ sở.

24 16 số 8 1
0 1 1 0

Trong hệ thống bát phân, cột đầu tiên đi từ 0 đến 7, cột thứ hai là từ 8 đến 15, cột thứ ba từ 16 đến 23 và cột thứ tư từ 24 đến 31 và tiếp tục như vậy. Trong khi nói chung dễ đọc hơn nhị phân hầu hết mọi người thích sử dụng hệ thập lục phân.

Hệ thập lục phân sử dụng 16 làm số cơ sở. Bây giờ đây là nơi nó trở nên khó hiểu vì con người chúng ta nghĩ về các con số từ 0 đến 9.

Vì vậy, những gì được sử dụng cho 10, 11, 12, 13, 14, 15? Câu trả lời là chữ cái.

Do đó, giá trị 100 được đại diện bởi 64. Bạn sẽ cần 6 của cột 16s mang 96 và sau đó 4 trong cột đơn vị tạo ra 100.

Tất cả các ký tự trong một tệp sẽ được biểu thị bằng giá trị thập lục phân. Ý nghĩa của những giá trị này phụ thuộc vào định dạng của tập tin. Định dạng của tệp được biểu thị bằng giá trị thập lục phân thường được lưu trữ ở đầu tệp.

Với kiến ​​thức về chuỗi các giá trị hệ thập lục phân xuất hiện ở đầu tệp, bạn có thể làm việc theo cách thủ công định dạng tệp. Xem tệp trong vùng kết xuất hex có thể giúp bạn tìm các ký tự ẩn không được hiển thị khi tệp được tải vào trình soạn thảo văn bản thông thường.

Làm thế nào để tạo một hố Hex sử dụng Linux

Để tạo một kết xuất hex bằng Linux, sử dụng lệnh hexdump.

Để hiển thị một tập tin dưới dạng hex đến đầu cuối (đầu ra tiêu chuẩn), hãy chạy lệnh sau:

hexdump filename

Ví dụ

hexdump image.png

Đầu ra mặc định sẽ hiển thị số dòng (theo định dạng thập lục phân) và sau đó 8 bộ 4 giá trị thập lục phân trên mỗi dòng.

Ví dụ:

00000000 5089 474e 0a0d 0a1a 0000 0d00 4849 5244

Bạn có thể cung cấp các công tắc khác nhau để thay đổi đầu ra mặc định. Ví dụ, chỉ định công tắc trừ b sẽ tạo ra một bù 8 chữ số theo sau là 16 ba cột, không được lấp đầy, các byte dữ liệu đầu vào theo định dạng bát phân.

hexdump -b image.png

Do đó, ví dụ trên sẽ được trình bày như sau:

00000000 211 120 116 107 015 012 032 012 000 000 000 015 111 110 104 122

Định dạng trên được gọi là hiển thị bát phân một byte.

Một cách khác để xem tệp ở chế độ hiển thị ký tự một byte bằng cách sử dụng công tắc trừ c.

hexdump -c image.png

Điều này một lần nữa sẽ hiển thị bù đắp nhưng lần này theo sau là 16 không gian cách nhau, ba cột, các ký tự điền dấu cách của dữ liệu đầu vào trên mỗi dòng.

Các tùy chọn khác bao gồm màn hình Canonical hex + ascii có thể được hiển thị bằng cách sử dụng công tắc trừ C và hiển thị số thập phân hai byte có thể hiển thị bằng công tắc trừ d. Có thể sử dụng công tắc trừ o để hiển thị hiển thị bát phân hai byte. Cuối cùng, công tắc minux x có thể được sử dụng để hiển thị màn hình thập lục phân hai byte.

hexdump -C image.png

hexdump -d image.png

hexdump -o image.png

hexdump -x image.png

Nếu không có định dạng nào ở trên phù hợp với nhu cầu của bạn, bạn sử dụng công tắc trừ e để chỉ định định dạng.

Nếu bạn biết một tệp dữ liệu rất dài và bạn chỉ muốn xem một vài ký tự đầu tiên để xác định loại của nó, bạn có thể sử dụng nút chuyển đổi -n để chỉ định lượng tệp sẽ hiển thị trong hex.

hexdump -n100 image.png

Lệnh trên hiển thị hàng trăm byte đầu tiên.

Nếu bạn muốn bỏ qua một phần của tập tin, bạn có thể sử dụng công tắc trừ để thiết lập một bù đắp để bắt đầu.

hexdump -s10 image.png

Nếu bạn không cung cấp tên tệp thì văn bản sẽ được đọc từ đầu vào chuẩn.

Chỉ cần nhập lệnh sau:

hexdump

Sau đó nhập văn bản vào đầu vào tiêu chuẩn và kết thúc bằng cách gõ quit. Hex sẽ được hiển thị với đầu ra tiêu chuẩn.

Tóm lược

Tiện ích hexdump rõ ràng là một công cụ khá mạnh và bạn chắc chắn nên đọc trang hướng dẫn sử dụng để hoàn toàn nắm bắt được tất cả các tính năng.

Bạn cũng sẽ cần một sự hiểu biết tốt về những gì bạn đang tìm kiếm khi đọc đầu ra.

Để xem trang hướng dẫn sử dụng, hãy chạy lệnh sau:

người đàn ông hexdump