4 คะแนน โดย GN⁺ 2024-06-30 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

โปรแกรมแก้ไข Hex สำหรับนักรีเวิร์สเอนจิเนียร์ โปรแกรมเมอร์ และคนที่ทำงานตอนตี 3

การสนับสนุน

  • สามารถสนับสนุนผ่าน GitHub Sponsors, Patreon และ PayPal

ภาพหน้าจอ

  • มีภาพหน้าจอเพิ่มเติมให้ชม

ฟีเจอร์

มุมมอง Hex ที่ครบครัน

  • การแพตช์ไบต์, การจัดการแพตช์, Undo/Redo ได้ไม่จำกัด
  • คัดลอกไบต์ได้หลายรูปแบบ
  • ค้นหาสตริงและ Hex แบบง่าย
  • ไปยังตำแหน่งเริ่มต้น, สิ้นสุด และตำแหน่งเคอร์เซอร์ปัจจุบัน
  • การไฮไลต์หลากสี
  • แสดงผลด้วยชนิดข้อมูลที่หลากหลาย
  • ถอดรหัสข้อมูลด้วย ASCII และการเข้ารหัสแบบกำหนดเอง
  • ดูข้อมูลแบบแบ่งหน้า

ภาษารูปแบบคล้าย C++

  • โหลดอัตโนมัติตาม MIME type และ magic value
  • รองรับการแสดงภาพของชนิดข้อมูลหลากหลาย
  • มีข้อความแสดงข้อผิดพลาดที่เป็นประโยชน์, การไฮไลต์ไวยากรณ์ และการแสดงตำแหน่งข้อผิดพลาด

รองรับธีม

  • ใช้โหมดกลางคืนเป็นค่าเริ่มต้น และรองรับสีรวมถึงสไตล์แบบกำหนดเอง
  • รองรับฟอนต์แบบกำหนดเอง

การนำเข้าและส่งออกข้อมูล

  • ไฟล์ Base64, แพตช์ IPS และ IPS32, รายงาน Markdown

ตัวตรวจสอบข้อมูล

  • ตีความข้อมูลได้หลายชนิด
  • คัดลอกและแก้ไขไบต์
  • รองรับการเพิ่มชนิดข้อมูลใหม่

ตัวประมวลผลข้อมูลล่วงหน้าแบบ node-based

  • แก้ไขข้อมูล, ถอดรหัสลับ และถอดรหัสข้อมูล
  • รองรับการเพิ่มโหนดแบบกำหนดเอง

โหลดแหล่งข้อมูลได้หลากหลาย

  • ไฟล์ในเครื่อง, ดิสก์แบบ Raw, เซิร์ฟเวอร์ GDB, ข้อมูล Intel Hex และ Motorola SREC, หน่วยความจำของโปรเซส

การค้นหาข้อมูล

  • ค้นหาทั้งไฟล์หรือเฉพาะช่วงที่เลือก
  • ดึงสตริง, ค้นหาลำดับข้อมูล, ค้นหาด้วย regular expression, รูปแบบไบนารี, ค้นหาค่าตัวเลข

รองรับการแฮชข้อมูล

  • ใช้อัลกอริทึมได้หลากหลาย
  • แฮชเฉพาะบางช่วงและสตริงที่กำหนดเองได้

รองรับการ diff

  • เปรียบเทียบแหล่งข้อมูลที่ต่างกัน
  • ไฮไลต์ความแตกต่างและแสดงในรูปแบบตาราง

ตัว disassembler แบบรวมในตัว

  • รองรับทุกสถาปัตยกรรมที่ Capstone รองรับ

บุ๊กมาร์ก

  • รองรับชื่อและสีแบบกำหนดเอง
  • ไฮไลต์ช่วงของบุ๊กมาร์กและไปยังบุ๊กมาร์กได้

เครื่องมือวิเคราะห์และแสดงภาพข้อมูล

  • ตัวแยกวิเคราะห์ไฟล์ตาม file magic และฐานข้อมูล MIME type
  • กราฟการกระจายของชนิดไบต์, กราฟเอนโทรปี

รองรับกฎ YARA

  • สแกนไฟล์ด้วยกฎ YARA อย่างเป็นทางการ
  • ไฮไลต์รายการที่ตรงกันและไปยังตำแหน่งที่ตรงกัน

เครื่องมือที่มีประโยชน์

  • demangler หลากหลายแบบ, ตาราง ASCII, ตัวแทนที่ regular expression, ตัวประเมินนิพจน์คณิตศาสตร์, เครื่องคิดเลขแบบกราฟ, ตัวเลือกสี, ตัวแปลงฐาน, byte swappers, เครื่องคำนวณสิทธิ์ UNIX, ค้นหาคำอธิบายคำศัพท์จาก Wikipedia, ยูทิลิตีไฟล์, ตัวแสดงผล IEEE754 Float, ไคลเอนต์/เซิร์ฟเวอร์ TCP, เครื่องคำนวณอัลกอริทึมของยุคลิด

อัปเดตคอนเทนต์ในตัว

  • ดาวน์โหลดไฟล์จากฐานข้อมูล

อินเทอร์เฟซสมัยใหม่

  • รองรับหลาย workspace และเลย์เอาต์แบบกำหนดเอง
  • หน้าต่างที่แยกออกได้

เริ่มต้นใช้งานได้ง่าย

  • รองรับหลายภาษา, โหมดแบบย่อสำหรับผู้เริ่มต้น, เอกสารประกอบอย่างละเอียด, ไฟล์ตัวอย่างจำนวนมากในฐานข้อมูล, บทเรียนแบบโต้ตอบ

ภาษารูปแบบ

  • กำหนดโครงสร้างและชนิดข้อมูลด้วยไวยากรณ์คล้าย C
  • แยกวิเคราะห์และไฮไลต์เนื้อหาไฟล์

ฐานข้อมูล

  • รูปแบบแพตเทิร์น, ไลบรารี, ไฟล์ magic และไฟล์ค่าคงที่

ข้อกำหนด

  • ต้องใช้ GPU และต้องรองรับ OpenGL 3.0
  • รองรับ Windows, macOS, Linux

การติดตั้ง

  • ดูคู่มือการติดตั้ง

การคอมไพล์

  • ต้องใช้ GCC หรือ Clang และรองรับ C++23 ขึ้นไป

การมีส่วนร่วม

  • ดูคู่มือการมีส่วนร่วม

การพัฒนาปลั๊กอิน

  • ใช้โปรเจกต์เทมเพลต

เครดิต

  • ขอบคุณผู้มีส่วนร่วมหลักและไลบรารีที่ใช้งาน

ไลเซนส์

  • ส่วนใหญ่ใช้ไลเซนส์ GPLv2-only และบางส่วนใช้ไลเซนส์ LGPLv2.1

ความเห็นของ GN⁺

  • ImHex เป็นเครื่องมือที่มีประโยชน์มากสำหรับงานรีเวิร์สเอนจิเนียร์และการเขียนโปรแกรม โดยเฉพาะความสามารถในการแสดงภาพและวิเคราะห์ชนิดข้อมูลที่หลากหลาย
  • มีฟีเจอร์ที่เป็นมิตรกับผู้ใช้ เช่น โหมดกลางคืน ซึ่งช่วยลดความล้าของสายตาเมื่อต้องทำงานเป็นเวลานาน
  • ด้วยความเข้ากันได้กับแหล่งข้อมูลหลากหลาย จึงนำไปใช้งานได้ในหลายสภาพแวดล้อม
  • เครื่องมืออื่นที่มีความสามารถใกล้เคียงกัน ได้แก่ HxD และ 010 Editor
  • เมื่อตัดสินใจใช้เทคโนโลยีใหม่หรือโอเพนซอร์ส ควรพิจารณาข้อดีข้อเสียให้รอบด้าน ตัวอย่างเช่น ImHex จำเป็นต้องมีการรองรับ GPU

1 ความคิดเห็น

 
GN⁺ 2024-06-30
ความคิดเห็นบน Hacker News
  • ImHex เป็นเฮกซ์เอดิเตอร์ที่ดีที่สุดเท่าที่เคยใช้มา

    • ฟีเจอร์เทมเพลตไฟล์จะไฮไลต์ส่วนต่าง ๆ ของชนิดไฟล์ที่รู้จักโดยอัตโนมัติ
    • แสดงการตีความไบต์ที่เลือกพร้อมกันเป็นชนิดข้อมูลหลายแบบ
    • เวลาใช้งานกับไฟล์ขนาดใหญ่ เร็วกว่าตัวแก้ไขอื่นมาก
    • ข้อเสียคือ UI ของ imgui บางครั้งมีบั๊ก
  • สงสัยว่ามีวิธีให้เอดิเตอร์นี้แสดงไบต์ ASCII ด้วย glyph แบบ CP437 หรือไม่

    • เคยอ่านไฟล์ไบนารีบน DOS ด้วยวิธีนี้ และสามารถอ่าน glyph ได้เร็วกว่าค่าเฮกซ์
    • การแสดงอักขระที่พิมพ์ไม่ได้เป็นจุดนั้นไม่ได้ให้ข้อมูลมากนัก
  • เคยลอง ImHex แล้ว แต่รู้สึกว่าซับซ้อนเกินไป

    • บน macOS ยังชอบ Hex Fiend มากกว่า
    • มันเรียบง่าย เร็ว และมีฟีเจอร์ที่ต้องการ
    • บน Windows ยังหาเฮกซ์เอดิเตอร์แบบ "เรียบง่าย" ที่ลงตัวจริง ๆ ไม่เจอ
  • pattern language มีประโยชน์มากและช่วยในการเรียนรู้อย่างมาก

    • ชอบโปรแกรมนี้มาก
  • โดยทั่วไป ImHex ต้องการ GPU ที่รองรับ OpenGL 3.0

    • สงสัยว่าทำไมเฮกซ์เอดิเตอร์ถึงต้องใช้ OpenGL
    • สงสัยว่ามีเหตุผลที่ต้องใช้ OpenGL จริง ๆ หรือแค่เพื่อความเท่
  • ImHex ดูน่าสนใจ

    • ใช้ฟีเจอร์ wildcard search ของ 010 Editor อยู่ แต่ ImHex ก็มีฟีเจอร์นั้นเหมือนกัน
    • และยังมีฟีเจอร์มากกว่า จึงตั้งใจจะลองทดสอบดู
  • ชอบแง่มุมนี้ของวัฒนธรรมคอมพิวเตอร์มาก

    • ไม่ว่าจะเป็นการทำ reverse engineering, การเขียน kernel module, การทำความเข้าใจวิธีการทำงาน และทำสิ่งที่ไม่ได้ถูกออกแบบมาให้ทำ
    • แต่แทบไม่มีวิธีทำสิ่งเหล่านี้อย่างถูกกฎหมาย และมักต้องใช้เวลามากกับความช่วยเหลือจากเพื่อนร่วมงาน
  • โปรเจ็กต์นี้ยอดเยี่ยมมาก

    • สนุกมากกับการดัดแปลง ROM ของสมาร์ตวอตช์ Philips
    • มี DSL แบบฝังตัวที่คล้าย Rust จึงเบามากโดยไม่ต้องจัดการหน่วยความจำ
    • ทำให้สามารถแสดงภาพและดึงข้อมูลเชิงโครงสร้างออกจากสตรีมไบนารีได้
    • ยังมีวิชวลเอดิเตอร์สำหรับคำนวณง่าย ๆ โดยไม่ต้องเขียนโค้ด
    • ตอนที่ลองยังรู้สึกว่าไม่ค่อยสมบูรณ์นัก
    • การเขียนโค้ดด้วย DSL กลับตรงไปตรงมาและง่ายกว่า
  • ตอนนี้จะยังใช้ 010 Editor ต่อไป

    • เป็นเฮกซ์เอดิเตอร์ที่น่าทึ่งที่สุดเท่าที่เคยใช้มา
    • ไม่ชอบ GUI framework (Dear ImGui) ที่โปรเจ็กต์ใหม่ใช้
    • มันเหมาะกับระบบฝังตัวที่หน้าจอเล็กและไม่มี window manager แต่ในสภาพแวดล้อมเดสก์ท็อปกลับให้ประสบการณ์ที่ดูขัด ๆ เพราะการผสาน UI ไม่ดีพอ
  • โปรเจ็กต์นี้ดูค่อนข้างเจ๋ง

    • สงสัยว่าการพัฒนาเฮกซ์เอดิเตอร์เป็นโปรเจ็กต์จะเป็นไอเดียที่ดีไหม
    • เฮกซ์เอดิเตอร์แบบง่าย ๆ ไม่ได้ยากนัก แต่ก็มีพื้นที่ให้ฝึกอีกมาก เช่น การพาร์สฟอร์แมตไฟล์
    • และยังมีพื้นที่อีกมากสำหรับการพัฒนาเครื่องมือ reverse engineering