คุณช่วยแนะนำ hex editor ที่สามารถรันจาก shell ได้หรือไม่? ฉันต้องสามารถแก้ไขไม่เพียง แต่ดูเนื้อหา
คุณช่วยแนะนำ hex editor ที่สามารถรันจาก shell ได้หรือไม่? ฉันต้องสามารถแก้ไขไม่เพียง แต่ดูเนื้อหา
คำตอบ:
emacs
มีโหมด hexl สำหรับการแก้ไข hex
dd
ภูมิภาคที่คุณต้องการแก้ไขเป็นไฟล์และเปิดใน emacs จากนั้นdd
ก็กลับมา
xxd
เครื่องมือนี้เป็นเครื่องมือที่พบได้ทั่วไปสำหรับงานประเภทนี้ (มีให้ตามค่าเริ่มต้นทั้ง Ubuntu และ macOS ล่าสุด) คุณสามารถลบส่วนที่อ่านได้ของ ASCII ทางด้านขวาหากต้องการโดยใช้-p
และคุณสามารถเปลี่ยนกลับได้ (เปลี่ยนการป้อนข้อมูล ASCII เป็นข้อมูลไบนารี) โดยใช้-r
ฟังก์ชัน นี่คือตัวอย่างง่ายๆที่ใช้:
การแปลงเป็น hex ด้วยมุมมอง ascii:
echo example | xxd
แปลงเป็น hexdump (ไม่มีมุมมอง ascii ทางด้านขวา):
echo example | xxd -p
การแปลงจาก hexdump กลับไปเป็นข้อมูลไบนารี:
echo 746573740a | xxd -p -r
คุณสามารถมีความซับซ้อนมากขึ้นด้วยสิ่งนี้ในเชลล์สคริปต์ ฉันได้ใช้จริงนี้และ "DD" เพื่อสแกนหาลำดับที่เฉพาะเจาะจงและแก้ไขได้ในแบบที่กำหนดไว้ล่วงหน้าทั้งหมดจากเชลล์สคริปต์ใช้อะไร แต่ทุบตีและdd
xxd
คุณไม่จำเป็นต้องใช้ dd จริงๆเพราะคุณสามารถ "ค้นหา" ไปยังตำแหน่งเฉพาะและเขียนไปยังตำแหน่งนั้นตามลำดับไบต์ที่คุณต้องการ ข้อได้เปรียบที่ใหญ่ที่สุดของวิธีนี้คือสามารถเขียนสคริปต์ได้ง่าย
นอกจากนี้ยังมีDHEX
apt-cache show dhex
ncurses editor hex แบบอิงพร้อมโหมด diff
นี่เป็นมากกว่าตัวแก้ไข hex อื่น: มันมีโหมด diff ซึ่งสามารถใช้เพื่อเปรียบเทียบไบนารีไฟล์สองไฟล์ได้อย่างง่ายดายและสะดวก เนื่องจากมันขึ้นอยู่กับ ncurses และเป็นรูปแบบมันจึงสามารถทำงานได้กับระบบและสถานการณ์ต่างๆ ด้วยการใช้บันทึกการค้นหาทำให้สามารถติดตามการเปลี่ยนแปลงในการวนซ้ำของไฟล์ต่าง ๆ ได้อย่างง่ายดาย
หากคุณไม่คุ้นเคยกับเสียงเรียกเข้าหรือ emacs คนนี้ดูเหมือนจะไม่ได้เรียนรู้อะไรมากมาย
คุณอาจใช้ vi / vim เป็นตัวแก้ไข hex ได้เช่นกัน (สามารถเรียก xxd)
เข้าสู่โหมด hex:
:%!xxd
ออกจากโหมด hex:
:%!xxd -r
:%!xxd
การเพิ่มตัวละครใหม่ (เช่นบรรทัดใหม่) ลงในไฟล์
xxd
คนที่ทำสิ่งนี้: ค่อนข้างเป็นกลุ่มตัวเอง
:set binary
! มิฉะนั้น VIM มีแนวโน้มที่จะทำให้ไฟล์เสียหายโดยการเพิ่ม line-end (CR / LF / CRLF) ที่ส่วนท้ายของไฟล์ (ขึ้นอยู่กับสิ่งที่คุณมีรูปแบบที่กำหนดเป็น ( set ff=[mac/unix/dos]
)) นี่เป็นโอกาสสูงที่จะทำลายไฟล์เรียกทำงานและไบนารีข้อมูล และมันก็เป็นเช่นนั้น มาก. ตรวจสอบให้แน่ใจว่า VIM อยู่ในโหมดไบนารีจะป้องกันไม่ให้เกิดขึ้น
ฉันรู้ว่านี่เป็นคำถามเก่า แต่ฉันไม่พอใจกับคำตอบทั้งหมดที่นี่ ฉันกำลังมองหาโปรแกรมแก้ไขเลขฐานสิบหกที่อนุญาตให้ฉันสร้างไฟล์ไบนารีของตัวเอง (โหมดแทรก aka) และสามารถจัดการไฟล์ที่มีขนาดใหญ่มาก
ฉันเจอการปรับแต่งซึ่งตอบสนองความต้องการทั้งสองนี้และ OPs
- Tweak รองรับโหมดการแทรก (ไม่มีประโยชน์อย่างยิ่งหากคุณกำลังแก้ไขไฟล์ที่เรียกใช้งานได้หรืออิมเมจระบบไฟล์ แต่สามารถมีประโยชน์อย่างยิ่งในรูปแบบไฟล์อื่นเช่น PNG)
- การตัดการคัดลอกและการวางภายในไฟล์ที่คุณแก้ไขนั้นมีประสิทธิภาพอย่างมาก ไม่ว่าข้อมูลของคุณจะเคลื่อนไหวไปมากขนาดไหน - แม้ว่าจะเป็นส่วน 200Mb ของอิมเมจซีดี - Tweak จะทำงานได้อย่างมีประสิทธิภาพทันที
- Tweak รองรับการโหลดไฟล์อินพุตที่ขี้เกียจ: แทนที่จะดูดมันทั้งหมดลงในหน่วยความจำทันทีมันจะจำได้ว่าส่วนใดของบัฟเฟอร์การแก้ไขคือสำเนาซึ่งส่วนใดส่วนหนึ่งของไฟล์อินพุตและอ้างถึงไฟล์บนดิสก์เมื่อต้องการ ปรับแต่งจะต้องใช้เวลาอย่างมีนัยสำคัญเมื่อคุณต้องการอ่านไฟล์ทั้งหมดอย่างแท้จริง การดำเนินการสองอย่างเท่านั้นที่มีคุณสมบัตินี้กำลังค้นหาและบันทึกเวอร์ชันที่แก้ไขของไฟล์ลงในดิสก์ ทุกสิ่งทุกอย่างเป็นเรื่องทันที
tweak
แต่สำหรับฉันมันช่างน่าอึดอัดใจ ฉันอาจลองอีกครั้งถ้าต้องการแก้ไขจริงๆ เรียกใช้man tweak
จากเทอร์มินัลเพื่อดูภาพรวมและรายการคำสั่ง
Bless Hex Editorเป็นตัวแก้ไขไบนารี (ฐานสิบหก) และในปัจจุบันมีคุณสมบัติดังต่อไปนี้:
คุณสามารถ dounload ได้จากที่นี่: http://packages.debian.org/sid/all/bless/download
หากต้องการติดตั้งให้ดูที่ฉันจะติดตั้งไฟล์. deb ผ่านบรรทัดคำสั่งได้อย่างไร
ต้องการมาก?
bless
คำสั่งหลังจากติดตั้ง
ลองใช้hexedซึ่งสร้างขึ้นเพื่อใช้ในสคริปต์และสร้างไฟล์
อันนี้ตายง่ายต่อการใช้:
sudo apt-get install hexcurse
ht
นอกจากนี้ยังมี ติดตั้งเป็น
sudo apt-get install ht
hte
แล้วเรียกใช้โดยการพิมพ์
ฉันไม่ได้ลองกับไฟล์ / พาร์ติชั่นขนาดใหญ่จริงๆ