Khi xử lý các tệp tin lạ, việc xem xét các bit thực tế cấu thành tệp tin có thể mang lại giá trị to lớn. Ít nhất bạn có thể đọc header của tệp tin và xác định mục đích của nó. Chỉnh sửa mã hex là một việc phức tạp, nhưng có thể thực hiện được với nhiều trình soạn thảo hex trên macOS. Vậy mã hexadecimal là gì và tại sao nó đáng để xem xét?
Mã Hexadecimal Là Gì?
Trong tin học, hệ thập lục phân cung cấp cách biểu diễn ngắn gọn hơn cho các giá trị nhị phân. Nó sử dụng hệ cơ số 16 thay vì cơ số 2 của nhị phân. Nhờ không gian số lớn hơn, nhiều chữ số nhị phân có thể được biểu diễn trong một chữ số hex. Mỗi chữ số hex biểu diễn bốn chữ số nhị phân. Nếu bạn nhớ về nhị phân, bạn sẽ biết rằng nửa byte có chính xác 16 giá trị có thể có – cùng số lượng giá trị mà một chữ số hex có thể có. Xem bảng dưới đây để thấy sự tương đương.

Kết hợp hai số hexadecimal, bạn có thể biểu diễn tám bit thông tin. Đó tương đương với một byte có 256 giá trị có thể có. Một byte đơn lẻ dao động từ 0000 0000 đến 1111 1111. Dưới dạng hex, đó là 00 đến FF. Bằng cách viết các giá trị hex dưới dạng một chuỗi các cặp, bạn có thể dễ dàng "chia nhỏ" dữ liệu nhị phân của tệp tin thành các byte.
Về bản chất, hex và nhị phân cung cấp các "khung" khác nhau cho cùng dữ liệu cơ bản. Con người đọc hex dễ dàng, trong khi máy tính đọc nhị phân dễ dàng.
Quy ước Đọc và Viết Giá Trị Hexadecimal
Khi viết giá trị hex, ký tự 0x có thể đứng đầu giá trị. Các ký tự này gán nhãn các giá trị tiếp theo là hex. Vì hex, nhị phân và bát phân có thể trông giống nhau ở מבט đầu tiên, tiền tố dành riêng này tránh sự nhầm lẫn và giảm thiểu lỗi.
Ví dụ, 0x2FF0C4 mô tả một địa chỉ bộ nhớ hex tương đương với giá trị nhị phân 0010 1111 1111 0000 1100 0100 và giá trị thập phân 3.141.828. Chỉ có 2FF0C4 mới tính là một phần của giá trị. Các ký tự 0x ở đầu chỉ chỉ ra hệ thống số.
Khi toàn bộ tài liệu được xử lý dưới dạng hex, các giá trị được hiển thị dưới dạng cặp, chẳng hạn FF A0 2D CE. Điều này giúp tách các giá trị thành chuỗi độ dài byte, giúp con người dễ dàng phân tích hơn.
Xem và Chỉnh sửa Mã Hex trên macOS
Bạn sẽ cần một ứng dụng xem hex để xem mã hex trên macOS. Có một vài lựa chọn miễn phí.
- 0xED là một trình mã hóa miễn phí, đơn giản, cung cấp một số tùy chọn tùy chỉnh. Ứng dụng tập trung vào việc giải mã giá trị hex một cách rõ ràng và nhanh chóng. Đây là một trình soạn thảo hex cơ bản nhưng hữu ích để làm quen.

- Synalyze It! là trình thông dịch hex chuyên nghiệp, trả phí, có mã màu tích hợp cho phân tích tệp tin trực quan. Nó cũng bao gồm kho "ngữ pháp" khổng lồ. Các ngữ pháp này áp dụng cấu trúc tệp tin đã biết vào mã hex. Những khung này giúp bạn hiểu, thông dịch, tìm kiếm và chỉnh sửa mã hex.

Khi đã có một trong hai ứng dụng, bạn có thể mở bất kỳ tệp tin nào để xem mã nhị phân cơ bản được trình bày dưới dạng giá trị hex. Điều này hữu ích hơn đối với một số loại tệp tin so với loại khác, nhưng trong hầu hết các trường hợp, bạn sẽ thấy giá trị hex bên trái với giải mã ASCII của các giá trị đó bên phải. Cách này giúp bạn "đọc" tệp tin và bắt đầu hiểu những gì đang xảy ra.
Trình soạn thảo hex cũng có thể chỉnh sửa mã hex. Tuy nhiên, không đơn giản như chỉnh sửa văn bản – cũng không bao dung bằng. Trình soạn thảo hex chỉnh sửa mã theo cặp độ dài byte, ghi đè và thay thế hai giá trị cùng lúc. Nếu bạn không cực kỳ cẩn thận, bạn có thể làm hỏng một tệp tin đang hoạt động ngay lập tức. Để bảo vệ trước sự mong manh này, hãy luôn sao chép tệp tin trước khi chỉnh sửa mã hex của nó.
Kết luận: Trình Soạn Thảo Hex Dùng Để Làm Gì?
Chỉ việc mở ngẫu nhiên các tệp tin trong trình soạn thảo hex có thể thú vị, nhưng không mang lại nhiều ích. Có một phạm vi hẹp các tình huống mà trình soạn thảo hex thể hiện giá trị của mình. Nếu bạn cần xem và chỉnh sửa mã nhị phân, trình soạn thảo hex là công cụ tốt nhất cho công việc đó.
Ví dụ, khi viết chương trình xuất dữ liệu nhị phân, bạn nên kiểm tra thủ công các tệp tin để đảm bảo chất lượng. Chúng cũng có thể giúp khôi phục hoặc phân tích các tệp tin của bên thứ ba bị hỏng. Trình soạn thảo hex có thể mở bất kỳ tệp tin nào, dù bị hỏng hay không hợp lệ. Điều này có nghĩa là đôi khi bạn có thể "sửa" tệp tin hỏng bằng trình soạn thảo hex hoặc ít nhất xác định nguyên nhân gây lỗi. Nếu bạn cần chỉnh sửa chính xác một tệp tin hệ thống, chẳng hạn như thay đổi địa chỉ bộ nhớ trong kext, trình soạn thảo hex là công cụ duy nhất cho công việc đó. Nhờ tính hữu ích rộng rãi, bất kỳ ai quan tâm đến chi tiết cốt lõi của tin học và lập trình đều nên làm quen với một trình soạn thảo hex.