Hex Viewer: อ่านไฟล์ทุกชนิดแบบ byte-by-byte พร้อมคู่มืออ่าน Hex Dump ฉบับสมบูรณ์
เรียนรู้วิธีใช้ Hex Viewer ตรวจสอบ text, hex string และ binary file ในรูปแบบ hex dump แบบคลาสสิก พร้อม offset, byte และ ASCII columns — และวิธีอ่านให้เป็น
Table of Contents
ไฟล์ทุกชนิดบนคอมพิวเตอร์ของคุณ — ทุก image, executable, font และ database — ในที่สุดแล้วคือชุดของ byte ที่เรียงต่อกันยาวเหยียด text editor แสดงเพียง "การตีความ" ของ byte เหล่านั้น แต่ hex dump แสดง "ความจริง" ถ้าคุณเคยสงสัยว่า PNG signature หน้าตาเป็นอย่างไร ทำไมไฟล์ JSON ถึง parse ไม่ผ่าน หรือมีอะไรซ่อนอยู่ใน attachment ที่น่าสงสัย hex dump คือทางลัดที่เร็วที่สุดในการหาคำตอบ
Hex Viewer จาก Online Tools Forge แสดง text, hex string หรือ binary file ใดๆ ในรูปแบบ hex dump แบบคลาสสิก พร้อมคอลัมน์ offset, byte และ ASCII คุณสามารถ search ภายใน dump, copy ผลลัพธ์ hex และ download ได้ทันที — และเนื่องจากทุกอย่างทำงานใน browser ของคุณเอง ไฟล์จะไม่ถูกส่งออกจากเครื่องแม้แต่ byte เดียว
ในคู่มือนี้ เราจะพาไปดูว่าเครื่องมือทำงานอย่างไร จะอ่าน hex dump ให้เป็นอย่างไร และสถานการณ์จริงที่การตรวจสอบระดับ byte ช่วยแก้ปัญหาได้
ทำไมต้องใช้ Hex Viewer?
- ความเป็นส่วนตัวแบบ zero-upload — เครื่องมือประมวลผลทุกอย่าง client-side ด้วย JavaScript binary file, API payload และข้อมูลลับของคุณจะไม่ถูกส่งขึ้น server เด็ดขาด ซึ่งสำคัญมากเมื่อตรวจสอบข้อมูลที่อ่อนไหว
- โหมด input รวม 3 แบบในที่เดียว — paste text ธรรมดาเพื่อดู UTF-8 bytes, paste hex string ดิบเพื่อ decode และจัดรูปแบบใหม่ หรืออัปโหลด binary file ทั้งไฟล์ (สูงสุด 1 MB) เพื่อ dump ทันที
- Layout 3 คอลัมน์แบบคลาสสิก — offset, hexadecimal bytes และ ASCII อยู่ด้วยกัน ในรูปแบบเดียวกับ xxd, hexdump และ hex editor ที่ developer ใช้กันมาหลายสิบปี dump ที่ copy ไปแจ้งเพื่อนร่วมทีมจึงอ่านเข้าใจได้ทันที
- Search ในตัว — ค้นหา hex byte sequence เฉพาะเจาะจงอย่าง CA FE หรือ text string อย่าง PK พร้อม match count ให้รู้ว่าเจอกี่จุดและอยู่ตรงไหน
- ตัวเลือก copy และ export ครบ — copy เฉพาะคอลัมน์ hex, copy ทั้ง dump ที่จัดรูปแบบแล้ว หรือ download เป็นไฟล์เพื่อแนบ bug report และ documentation
- ปรับ row ได้ตามต้องการ — เปลี่ยนค่า bytes-per-row ให้ตรงกับ convention ของทีมหรือ tool ที่ใช้ — 8, 16 หรือค่าอื่นๆ ตามต้องการ
ฟีเจอร์เด่น
| ฟีเจอร์ | ทำอะไร |
|---|---|
| โหมด Text | paste text แล้วแสดง UTF-8 bytes ในรูปแบบ hex dump |
| โหมด Hex | รับ hex string ดิบ (เช่น 48 65 6C 6C 6F) แล้วจัดรูปแบบเป็น dump |
| โหมด File | อัปโหลด binary file ใดๆ แล้ว dump ได้ถึง 1 MB ใน browser |
| Search | หา hex byte sequence หรือ plain text ภายใน dump พร้อม match count |
| Copy / Download | copy hex string หรือทั้ง dump; download dump เป็นไฟล์ |
| ปรับขนาด row | เปลี่ยนจำนวน bytes ต่อแถว (default 16) |
มีรายละเอียดที่น่ารู้อีกเล็กน้อย: ค่า cap ที่ 1 MB ช่วยให้ rendering เร็วแม้ไฟล์ใหญ่ เพราะการวาดหลายพันแถวใน DOM นั้นหนักมาก คอลัมน์ ASCII จะแสดง printable character ตามปกติและแทน control byte ด้วยจุด ตรงกับ command-line hexdump tool แบบเดียวกัน และเพราะ parsing ทำ locally ผลลัพธ์จึงโผล่ทันที — ไม่มี round trip ไม่มีรอคิว
วิธีใช้งาน
- เปิด Hex Viewer แล้วเลือกโหมด input: Text, Hex หรือ File
- ใส่ข้อมูลของคุณ — พิมพ์หรือ paste text, paste hex string หรืออัปโหลด binary file
- อ่าน dump: คอลัมน์ซ้ายคือ byte offset, ตรงกลางคือ hexadecimal, ขวาคือ ASCII
- ใช้ช่อง search เพื่อหา hex sequence (เช่น 0D 0A) หรือ text string; ผลการค้นหาจะถูก highlight พร้อมนับจำนวน
- Copy ผลลัพธ์ hex, copy ทั้ง dump หรือ download ได้เลย — และปรับ bytes-per-row ได้ถ้าต้องการ layout อื่น
ทำความเข้าใจ Hex Dump
hex dump ดูน่ากลัวในแวบแรก แต่จริงๆ มี pattern เดียวที่ต้องเข้าใจ นี่คือแถวจริงๆ หนึ่งแถว:
00000000 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 0A 00 3F |Hello, W..orld!?.|
คอลัมน์ offset — ตัวเลขซ้ายสุด (00000000) คือตำแหน่งของ byte แรกในแถวนั้น นับจากจุดเริ่มต้นข้อมูล แถวที่สองเริ่มที่ 00000010 — ซึ่งเท่ากับ 16 ใน decimal เพราะ hex 10 = 16 offset เป็นเลขฐานสิบหก ดังนั้นหลัง 0000000F ก็คือ 00000010 วิธีนี้ทำให้คุณข้ามไปยัง byte ตำแหน่งที่รู้ล่วงหน้าได้เลยโดยไม่ต้องนับทีละตัว
คอลัมน์ hex — แต่ละ byte แสดงเป็นเลข hexadecimal สองหลัก ตั้งแต่ 00 ถึง FF (0–255 decimal) การมีสิบหก byte ต่อแถวเป็น convention สากล และมักแบ่งเป็นสองกลุ่มละแปดตัวเพื่อให้อ่านง่าย programmer นิยมเติม prefix 0x หน้าค่า hex ดังนั้น 0x48 คือ byte เดียวกับ 48 ในที่นี้ — คือ decimal 72 ซึ่งเป็น ASCII code ของอักษร H
คอลัมน์ ASCII — คอลัมน์ขวา render แต่ละ byte เป็นตัวอักษรเมื่อ print ได้ และเป็นจุดเมื่อ print ไม่ได้ 48 กลายเป็น H แต่ 0A (newline) และ 00 (null) จะแสดงเป็นจุด คอลัมน์นี้คือเพื่อนที่ดีที่สุดของคุณ: fragment ที่อ่านออกจะโดดเด่นทันที ช่วยให้เห็น string, label และโครงสร้างที่ซ่อนอยู่ใน binary ที่ดูไร้หน้าตา
อักขระ multi-byte — ถ้า paste text ที่มีอักขระนอกเหนือ ASCII พื้นฐาน — อักษรมีสระ ภาษาไทย หรือ emoji — UTF-8 จะ encode แต่ละตัวเป็นสองถึงสี่ byte อักขระไทย ก ตัวอย่างเช่น กินพื้นที่สาม byte (E0 B8 81) และแสดงเป็นสามจุดในคอลัมน์ ASCII การได้เห็นภาพนี้คือวิธีเร็วที่สุดที่จะเข้าใจว่าทำไม "หนึ่งอักขระ" ไม่จำเป็นต้องเท่ากับ "หนึ่ง byte"
กรณีใช้งานจริง
ระบุชนิดไฟล์จาก magic bytes
นามสกุลไฟล์โกหกได้ แต่ magic bytes ไม่โกหก Java class file เริ่มด้วย CA FE BA BE, ไฟล์ ZIP (และ format ที่ based บน ZIP อย่าง DOCX และ JAR) เริ่มด้วย 50 4B 03 04 (PK) และ PNG เริ่มด้วย 89 50 4E 47 เปิดไฟล์ปริศนาใน Hex Viewer แล้วแถวแรกมักบอกคุณได้ทันทีว่ามันคืออะไรกันแน่ — มีประโยชน์มากเมื่อไฟล์ที่ download มามีนามสกุลผิดหรือ header เสียหาย
Debug encoding และอักขระที่มองไม่เห็น
ไฟล์ CSV ที่ "ดูปกติ" แต่ทำ parser พัง มักมีตัวการซ่อนอยู่: UTF-8 BOM (EF BB BF) ที่จุดเริ่มต้น, line ending สไตล์ Windows CRLF (0D 0A) ปนกับ Unix LF (0A) หรือ null byte ตกค้างจากการ export ที่พัง การ search ใน dump หา 0D หรือ EF BB BF จะเจอภายในไม่กี่วินาที ในขณะที่ text editor จะไม่แสดงอะไรเลย
ตรวจสอบ network payload และ protocol
เมื่อคุณ capture traffic ดิบของ TCP, WebSocket หรือ BLE payload จะมาถึงในรูปแบบ byte การ paste hex payload ลงใน Hex Viewer ช่วยให้อ่าน protocol field, สังเกต ASCII fragment (hostname, token, error message) และจับคู่ตำแหน่ง byte กับ protocol spec ของคุณได้ — เป็นงานประจำใน network debugging และการพัฒนา IoT
CTF challenges และ security analysis
การแข่งขัน capture-the-flag มักซ่อนข้อมูลในไฟล์: text ที่แนบท้ายหลัง end marker ของ PNG, string ที่ obfuscate ด้วย XOR หรือโครงสร้างใน blob ไม่รู้จัก hex dump คือ step แรกมาตรฐาน และเนื่องจากเครื่องมือรันใน browser โดยไม่ต้อง upload จึงปลอดภัยสำหรับการตรวจสอบ malware sample หรือไฟล์ลับที่ไม่ควรส่งให้ web service แปลกหน้า
แนวทางปฏิบัติที่ดี
- ดู 16 bytes แรกก่อนเสมอ — magic number อยู่ต้นไฟล์; บ่อยครั้งแถวเดียวก็พอระบุ format ได้
- ใช้ hex search หา byte, text search หา string — search 0D 0A เจอ CRLF pair; search error เจอ message ที่ฝังอยู่ใน binary
- นับจากศูนย์ — offset เริ่มที่ 00000000 ดังนั้น byte "ที่ offset 5" คือ byte ตัวที่หก การสับสนตรงนี้เป็นความผิดพลาดที่พบมากที่สุดในการอ่าน hex dump
- จำไว้ว่าหนึ่ง byte = เลข hex สองหลัก — ช่องว่างใน hex string มักแปลว่าขาดหลักเดียว ไม่ใช่ขาดหนึ่ง byte — ตรวจความยาว input ถ้า parse ไม่ผ่าน
- เคารพง cap 1 MB — ไฟล์ขนาดใหญ่ให้ dump เฉพาะส่วน (เช่นใช้ head -c ใน command line) แล้วเอาส่วนที่สนใจมาดูใน browser
- อย่าแนบ dump ที่มีข้อมูลลับลง ticket — hex dump ของ config file หรือ key material ลับเท่าตัวไฟล์เดิม — ต้อง redact ก่อนแชร์เสมอ
สรุป
ความชำนาญระดับ byte เป็น superpower เงียบๆ: มันเปลี่ยน "ไฟล์นี้พัง" ให้เป็น "ไฟล์นี้มี BOM ที่ offset 0 และ line ending ปนกัน" Hex Viewer ทำให้ทักษะนี้เข้าถึงง่ายโดยไม่ต้องติดตั้งอะไร ไม่ต้อง upload และไม่มีค่าใช้จ่าย — paste อะไรก็ได้ลงไปแล้วดูว่าเครื่องเห็นอะไร
ครั้งหน้าที่ไฟล์แปลกประหลาด เลิกเดาเถอะ เปิด Hex Viewer อ่านแถวแรก แล้วให้ byte เล่าเรื่องให้คุณฟัง
เครื่องมือที่เกี่ยวข้อง
- Base64 Encoder/Decoder — แปลงข้อมูลดิบกับ Base64 เมื่อต้องการ text representation ที่ปลอดภัยต่อการส่งผ่าน
- ASCII Table Reference — ค้นหาค่า decimal, hex, octal และ binary ของทุก ASCII character
- File Hash Checker — ตรวจสอบความถูกต้องของไฟล์ด้วย checksum MD5, SHA-1 และ SHA-256
ขอให้สนุกกับการสำรวจข้อมูล!