Bạn có thể giới thiệu một trình soạn thảo hex có thể chạy từ shell không? Tôi cần có khả năng chỉnh sửa không chỉ xem nội dung.
Bạn có thể giới thiệu một trình soạn thảo hex có thể chạy từ shell không? Tôi cần có khả năng chỉnh sửa không chỉ xem nội dung.
Câu trả lời:
emacs
có chế độ hexl để chỉnh sửa hex.
dd
vùng bạn muốn chỉnh sửa thành tệp và mở tệp đó trong emacs, sau dd
đó quay lại.
xxd
Công cụ này là công cụ phổ biến nhất mà tôi đã tìm thấy cho loại nhiệm vụ này (có sẵn theo mặc định trên cả Ubuntu và macOS mới nhất). Bạn có thể loại bỏ phần ascii có thể đọc được ở bên phải nếu cần sử dụng -p
và bạn có thể hoàn nguyên (thay đổi đầu vào ascii thành dữ liệu nhị phân) bằng cách sử dụng -r
chức năng. Dưới đây là một số ví dụ đơn giản sử dụng:
Chuyển đổi sang hex với chế độ xem ascii:
echo example | xxd
Chuyển đổi sang hexdump (không có chế độ xem ascii ở bên phải):
echo example | xxd -p
Chuyển đổi từ hexdump trở lại dữ liệu nhị phân:
echo 746573740a | xxd -p -r
Bạn có thể trở nên phức tạp hơn nhiều với điều này trong shell script. Tôi thực sự đã sử dụng cái này và "dd" để quét các chuỗi cụ thể và sửa đổi chúng theo kiểu được xác định trước tất cả từ một tập lệnh shell không sử dụng gì ngoài bash dd
, và xxd
. Bạn thực sự không cần dd cho điều này vì bạn có thể "tìm kiếm" đến một vị trí cụ thể và ghi vào vị trí đó chuỗi byte bạn cần. Ưu điểm lớn nhất của phương pháp này là dễ dàng viết kịch bản.
Ngoài ra còn có DHEX
apt-cache show dhex
trình soạn thảo hex dựa trên ncurses với chế độ khác
Đây không chỉ là một trình soạn thảo hex khác: Nó bao gồm một chế độ khác, có thể được sử dụng để so sánh dễ dàng và thuận tiện hai tệp nhị phân. Vì nó dựa trên ncurses và có thể sử dụng được, nên nó có thể chạy trên bất kỳ số lượng hệ thống và kịch bản nào. Với việc sử dụng nhật ký tìm kiếm, có thể theo dõi các thay đổi trong các lần lặp khác nhau của các tệp một cách dễ dàng.
Nếu bạn không quen thuộc với vim hoặc emacs, thì cái này dường như không có nhiều đường cong học tập.
Bạn cũng có thể sử dụng vi / vim làm trình soạn thảo hex (nó có thể gọi xxd).
Vào chế độ hex:
:%!xxd
Thoát chế độ hex:
:%!xxd -r
:%!xxd
thêm các ký tự mới (tức là dòng mới) vào tệp.
xxd
ai làm việc này: đúng hơn là Vim.
:set binary
! Mặt khác, VIM có khả năng làm hỏng tệp bằng cách thêm một dòng kết thúc (CR / LF / CRLF) ở cuối tệp (tùy thuộc vào những gì bạn có định dạng được đặt thành ( set ff=[mac/unix/dos]
)). Điều này rất có khả năng phá vỡ các tệp thực thi và nhị phân dữ liệu. Và nó làm. Rất nhiều. Đảm bảo VIM ở chế độ nhị phân sẽ ngăn điều đó xảy ra.
Tôi biết đây là một câu hỏi cũ, nhưng tôi không hài lòng với tất cả các câu trả lời ở đây. Tôi đang tìm kiếm một trình soạn thảo hex cho phép tôi tạo các tệp nhị phân của riêng mình (còn gọi là chế độ chèn) và có thể xử lý các tệp rất lớn.
Tôi đã xem qua tinh chỉnh , đáp ứng cả hai yêu cầu này, cũng như các OP.
- Tweak hỗ trợ chế độ chèn (không đặc biệt hữu ích nếu bạn đang chỉnh sửa tệp thực thi hoặc hình ảnh hệ thống tệp, nhưng có thể cực kỳ tiện dụng trong các định dạng tệp khác như PNG).
- Cắt, sao chép và dán trong tệp bạn đang chỉnh sửa là cực kỳ hiệu quả. Cho dù khối dữ liệu bạn đang di chuyển lớn đến mức nào - ngay cả khi đó là phần 200Mb của hình ảnh CD - Tweak sẽ luôn thực hiện thao tác hiệu quả ngay lập tức.
- Tweak hỗ trợ tải tập tin đầu vào một cách lười biếng: thay vì hút tất cả vào bộ nhớ ngay lập tức, nó chỉ cần nhớ phần nào của bộ đệm chỉnh sửa là bản sao của phần nào của tệp đầu vào và tham chiếu đến tệp trên đĩa khi cần. Tweak chỉ phải mất thời gian đáng kể khi bạn thực sự cần nó để đọc toàn bộ tập tin. Hai thao tác duy nhất với thuộc tính này là tìm kiếm và lưu phiên bản sửa đổi của tệp vào đĩa. Mọi thứ khác là ngay lập tức.
tweak
, nhưng đối với tôi điều đó thật khó xử. Tôi có thể thử lại nếu tôi thực sự cần chỉnh sửa. Chạy man tweak
từ thiết bị đầu cuối để biết tổng quan và danh sách các lệnh.
Bless Hex Editor là trình chỉnh sửa nhị phân (hex) và hiện cung cấp các tính năng sau:
Bạn có thể tải nó từ đây: http://packages.debian.org/sid/all/bless/doad .
Để cài đặt nó, hãy xem Làm cách nào để cài đặt tệp .deb qua dòng lệnh?
Cần nhiều hơn?
bless
lệnh sau khi được cài đặt.
Cái này rất đơn giản để sử dụng:
sudo apt-get install hexcurse