บทนำ
การถ่ายโอนข้อมูล 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? คำตอบคือตัวอักษร
- 0 = 0
- 1 = 1
- 2 = 2
- 3 = 3
- 4 = 4
- 5 = 5
- 6 = 6
- 7 = 7
- 8 = 8
- 9 = 9
- 10 = A
- 11 = B
- 12 = C
- 13 = D
- 14 = E
- 15 = F
ค่า 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