วิธีการสร้าง Hexdump ของไฟล์หรือสตริงของข้อความ

บทนำ

การถ่ายโอนข้อมูล hex คือมุมมองเลขฐานสิบหกของข้อมูล คุณอาจต้องการใช้เลขฐานสิบหกเมื่อแก้ไขข้อบกพร่องของโปรแกรมหรือทำวิศวกรรมย้อนกลับ

ตัวอย่างเช่นรูปแบบไฟล์จำนวนมากมีอักขระ hex เฉพาะเพื่อแสดงประเภทของไฟล์ ถ้าคุณกำลังพยายามอ่านไฟล์โดยใช้โปรแกรมและเหตุผลบางอย่างมันไม่ได้โหลดอย่างถูกต้องอาจเป็นไปได้ว่าไฟล์ไม่อยู่ในรูปแบบที่คุณคาดหวัง

ถ้าคุณต้องการดูว่าโปรแกรมทำงานได้อย่างไรและคุณไม่มีรหัสที่มาหรือชิ้นส่วนของซอฟต์แวร์ที่ทำให้วิศวกรสามารถย้อนรหัสคุณสามารถดูข้อมูลการถ่ายโอนข้อมูลแบบเฮกเตอร์เพื่อลองทำสิ่งที่เกิดขึ้นได้

เลขฐานสิบหกคืออะไร?

คอมพิวเตอร์คิดใน รูปแบบไบนารี อักขระตัวเลขและสัญลักษณ์ทุกตัวจะถูกอ้างอิงด้วยค่าเลขฐานสองอันหรือหลายค่า

อย่างไรก็ตามมนุษย์มีแนวโน้มที่จะคิดเป็นทศนิยม

พัน หลายร้อย นับ หน่วย
1 0 1 1

ในฐานะมนุษย์จำนวนต่ำสุดของเราจะเรียกว่า units และแสดงตัวเลขตั้งแต่ 0 ถึง 9 เมื่อเราไปถึง 10 เรารีเซ็ตคอลัมน์ units กลับเป็น 0 และเพิ่ม 1 ถึงสิบคอลัมน์ (10)

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

ในไบนารีจำนวนน้อยที่สุดจะแสดงเฉพาะ 0 และ 1 เท่านั้นเมื่อเราผ่านมา 1 เราใส่ 1 ในคอลัมน์ 2 และ 0 ในคอลัมน์ 1 เมื่อคุณต้องการแสดง 4 คุณใส่ 1 ในคอลัมน์ 4 และรีเซ็ตคอลัมน์ 2 และ 1

ดังนั้นเพื่อเป็นตัวแทนของ 15 คุณจะมี 1111 ซึ่งหมายถึง 1 แปด, 1 สี่, 1 สองและ 1 (8 + 4 + 2 + 1 = 15)

ถ้าเราดูไฟล์ข้อมูลในรูปแบบไบนารีก็จะเป็นอย่างมากและแทบเป็นไปไม่ได้ที่จะทำให้ความรู้สึก

ขั้นตอนต่อไปจากไบนารีเป็น octal ซึ่งใช้ 8 เป็นหมายเลขพื้นฐาน

24 16 8 1
0 1 1 0

ในระบบฐานแปดจะมีคอลัมน์แรกเป็น 0 ถึง 7 คอลัมน์ที่สองคือ 8 ถึง 15 คอลัมน์ที่สาม 16 ถึง 23 และคอลัมน์ที่สี่ 24-31 เป็นต้น ขณะที่อ่านได้ง่ายกว่าไบนารีที่คนส่วนใหญ่ชอบใช้เลขฐานสิบหก

เลขฐานสิบหกใช้เลขฐาน 16 ตอนนี้เป็นที่ที่มันได้รับความสับสนเพราะเป็นมนุษย์ที่เราคิดว่าตัวเลขเป็น 0 ถึง 9

ดังนั้นสิ่งที่ใช้สำหรับ 10, 11, 12, 13, 14, 15? คำตอบคือตัวอักษร

ค่า 100 จะถูกแสดงด้วย 64 คุณจะต้องมีคอลัมน์ 6 จาก 16s ซึ่งจะนำคอลัมน์ 96 ขึ้นและจากนั้น 4 คอลัมน์ในคอลัมน์ 100

อักขระทั้งหมดในไฟล์จะแสดงด้วยค่าเลขฐานสิบหก ค่าเหล่านี้หมายถึงอะไรขึ้นอยู่กับรูปแบบของไฟล์ รูปแบบของไฟล์แสดงด้วยค่าเลขฐานสิบหกซึ่งมักจะเก็บไว้ที่ตำแหน่งเริ่มต้นของไฟล์

ด้วยความรู้เกี่ยวกับลำดับของค่า เลขฐานสิบหก ที่ปรากฏที่จุดเริ่มต้นของไฟล์คุณสามารถกำหนดรูปแบบไฟล์ที่กำหนดไว้ด้วยตนเองการดูไฟล์ในการถ่ายโอนข้อมูลแบบ hex จะช่วยให้คุณสามารถค้นหาอักขระที่ซ่อนอยู่ซึ่งจะไม่แสดงขึ้นเมื่อไฟล์นั้นมีอยู่ โหลดลงในโปรแกรมแก้ไขข้อความปกติ

วิธีการสร้างการถ่ายโอนข้อมูล Hex โดยใช้ Linux

เมื่อต้องการสร้างการถ่ายโอนข้อมูล hex โดยใช้ Linux ให้ใช้คำสั่ง hexdump

เมื่อต้องการแสดงไฟล์เป็น hex ไป ยังเทอร์มินัล (เอาต์พุตมาตรฐาน) ให้รันคำสั่งต่อไปนี้:

ชื่อไฟล์ hexdump

ตัวอย่างเช่น

hexdump image.png

ผลลัพธ์เริ่มต้นจะแสดงหมายเลขบรรทัด (ในรูปแบบเลขฐานสิบหก) และจากนั้น 8 ชุด 4 ค่าเลขฐานสิบหกต่อบรรทัด

ตัวอย่างเช่น:

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

คุณสามารถใส่สวิตช์ที่แตกต่างกันเพื่อเปลี่ยนเอาต์พุตเริ่มต้น ตัวอย่างเช่นการระบุสวิตช์ b ลบจะทำให้เกิดการชดเชย 8 หลักตามด้วย 16 คอลัมน์สามคอลัมน์ศูนย์ข้อมูลที่ป้อนข้อมูลไบต์เป็นข้อมูลไบต์ในรูปแบบฐานแปด

hexdump -b.png.png

ดังนั้นตัวอย่างข้างต้นจะถูกแสดงเป็นดังนี้:

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

รูปแบบข้างต้นเรียกว่าการแสดงผลแบบแปดด้านไบต์

อีกวิธีหนึ่งในการดูไฟล์คือการแสดงอักขระหนึ่งไบต์โดยใช้สวิตช์ c c

hexdump -c.png.png

นี้อีกครั้งจะแสดงชดเชย แต่เวลานี้ตามด้วยช่องว่างสิบหกแยกสามคอลัมน์ช่องว่างอักขระกรอกข้อมูลต่อบรรทัด

ตัวเลือกอื่น ๆ ได้แก่ การแสดงผล hex + ascii Canonical ซึ่งสามารถแสดงผลได้โดยใช้ปุ่มลบ C และแสดงเลขทศนิยมสองไบต์ซึ่งสามารถแสดงผลได้โดยใช้สวิตช์ลบ d สวิตช์ o o สามารถใช้เพื่อแสดงการแสดงผลแบบไบต์สองไบต์ สุดท้ายสวิตช์ minux x สามารถใช้เพื่อแสดงการแสดงเลขฐานสิบหกแบบไบต์ที่สอง

hexdump -C image.png

hexdump -d image.png

hexdump -o image.png

hexdump -x image.png

หากไม่มีรูปแบบใดที่ตรงกับความต้องการของคุณให้ใช้สวิตช์อีอีเพื่อระบุรูปแบบ

ถ้าคุณรู้ว่าไฟล์ข้อมูลยาวมากและคุณต้องการเห็นอักขระสองสามตัวแรกที่ระบุประเภทของไฟล์คุณสามารถใช้สวิตช์ -n เพื่อระบุจำนวนไฟล์ที่จะแสดงเป็น hex

hexdump -n100.png.png

คำสั่งดังกล่าวแสดงไบต์แรก 100 รายการ

หากคุณต้องการข้ามส่วนของไฟล์คุณสามารถใช้สวิตช์ minus s เพื่อตั้งค่าออฟเซ็ตเพื่อเริ่มต้นได้

hexdump -s10 image.png

หากคุณไม่ระบุชื่อไฟล์จะอ่านข้อความจากอินพุตมาตรฐาน

เพียงป้อนคำสั่งต่อไปนี้:

hexdump

จากนั้นป้อนข้อความลงในอินพุตมาตรฐานและเสร็จสิ้นโดยพิมพ์คำว่าเลิก เฮดเดอร์จะแสดงผลออกมาตรฐาน

สรุป

อรรถประโยชน์ hexdump เป็นเครื่องมือที่มีประสิทธิภาพอย่างเป็นธรรมและแน่นอนคุณควรอ่านหน้าคู่มือเพื่อรับอย่างเต็มที่เพื่อจับกับคุณสมบัติทั้งหมด

นอกจากนี้คุณยังต้องการความเข้าใจที่ดีในสิ่งที่คุณกำลังมองหาเมื่ออ่านข้อมูล

หากต้องการ ดูหน้าคู่มือ ให้ทำตามคำสั่งต่อไปนี้:

คน hexdump