4 điểm bởi GN⁺ 2024-06-30 | 1 bình luận | Chia sẻ qua WhatsApp

Trình chỉnh sửa Hex dành cho các nhà nghiên cứu đảo ngược, lập trình viên và những người làm việc lúc 3 giờ sáng

Hỗ trợ

  • Có thể hỗ trợ qua GitHub Sponsors, Patreon và PayPal

Ảnh chụp màn hình

  • Có thêm ảnh chụp màn hình

Tính năng

Chế độ xem Hex phong phú

  • Vá byte, quản lý bản vá, Undo/Redo không giới hạn
  • Sao chép byte ở nhiều định dạng khác nhau
  • Tìm kiếm chuỗi và Hex đơn giản
  • Di chuyển tới vị trí đầu, cuối và vị trí con trỏ hiện tại
  • Tô sáng nhiều màu sắc
  • Hiển thị dưới nhiều kiểu dữ liệu khác nhau
  • Giải mã dữ liệu bằng ASCII và các bảng mã tùy chỉnh
  • Xem dữ liệu theo trang

Ngôn ngữ mẫu tương tự C++

  • Tự động tải dựa trên kiểu MIME và giá trị magic
  • Hỗ trợ trực quan hóa nhiều kiểu dữ liệu khác nhau
  • Thông báo lỗi hữu ích, tô sáng cú pháp và hiển thị lỗi

Hỗ trợ giao diện chủ đề

  • Mặc định là chế độ tối, hỗ trợ màu sắc và kiểu dáng tùy chỉnh
  • Hỗ trợ phông chữ tùy chỉnh

Nhập và xuất dữ liệu

  • Tệp Base64, bản vá IPS và IPS32, báo cáo Markdown

Trình kiểm tra dữ liệu

  • Diễn giải dữ liệu theo nhiều kiểu khác nhau
  • Sao chép và chỉnh sửa byte
  • Hỗ trợ thêm kiểu dữ liệu mới

Bộ tiền xử lý dữ liệu dựa trên node

  • Sửa đổi, giải mã và giải mã dữ liệu
  • Hỗ trợ thêm node tùy chỉnh

Tải nhiều nguồn dữ liệu khác nhau

  • Tệp cục bộ, đĩa Raw, máy chủ GDB, dữ liệu Intel Hex và Motorola SREC, bộ nhớ tiến trình

Tìm kiếm dữ liệu

  • Tìm kiếm toàn bộ tệp hoặc vùng được chọn
  • Trích xuất chuỗi, tìm kiếm chuỗi tuần tự, tìm kiếm biểu thức chính quy, mẫu nhị phân, tìm kiếm giá trị số

Hỗ trợ băm dữ liệu

  • Có thể dùng nhiều thuật toán khác nhau
  • Băm vùng cụ thể và chuỗi tùy ý

Hỗ trợ diff

  • So sánh các nguồn dữ liệu khác nhau
  • Tô sáng khác biệt và xem dạng bảng

Trình disassembler tích hợp

  • Hỗ trợ mọi kiến trúc mà Capstone hỗ trợ

Dấu trang

  • Hỗ trợ tên và màu sắc tùy chỉnh
  • Tô sáng vùng đánh dấu và di chuyển tới dấu trang

Công cụ phân tích và trực quan hóa dữ liệu

  • Trình phân tích tệp dựa trên file magic và cơ sở dữ liệu kiểu MIME
  • Biểu đồ phân bố loại byte, biểu đồ entropy

Hỗ trợ quy tắc YARA

  • Quét tệp bằng các quy tắc YARA chính thức
  • Tô sáng kết quả khớp và di chuyển tới vị trí khớp

Các công cụ hữu ích

  • Nhiều trình demangle khác nhau, bảng ASCII, công cụ thay thế biểu thức chính quy, trình đánh giá biểu thức toán học, máy tính vẽ đồ thị, bộ chọn màu, bộ chuyển đổi cơ số, byte swapper, máy tính quyền UNIX, tra cứu định nghĩa thuật ngữ trên Wikipedia, tiện ích tệp, trình trực quan hóa số thực IEEE754, máy khách/máy chủ TCP, máy tính thuật toán Euclid

Cập nhật nội dung tích hợp

  • Tải tệp từ cơ sở dữ liệu

Giao diện hiện đại

  • Hỗ trợ nhiều không gian làm việc và bố cục tùy chỉnh
  • Cửa sổ có thể tách rời

Dễ bắt đầu

  • Hỗ trợ nhiều ngôn ngữ, chế độ đơn giản hóa cho người mới bắt đầu, tài liệu phong phú, nhiều tệp ví dụ trong cơ sở dữ liệu, hướng dẫn tương tác

Ngôn ngữ mẫu

  • Định nghĩa cấu trúc và kiểu dữ liệu bằng cú pháp tương tự C
  • Phân tích và tô sáng nội dung tệp

Cơ sở dữ liệu

  • Mẫu định dạng, thư viện, tệp magic và tệp hằng số

Yêu cầu

  • Cần GPU và hỗ trợ OpenGL 3.0
  • Hỗ trợ Windows, macOS, Linux

Cài đặt

  • Tham khảo hướng dẫn cài đặt

Biên dịch

  • Cần GCC hoặc Clang, hỗ trợ C++23 trở lên

Đóng góp

  • Tham khảo hướng dẫn đóng góp

Phát triển plugin

  • Sử dụng dự án mẫu

Ghi công

  • Cảm ơn các cộng tác viên chính và các thư viện đã được sử dụng

Giấy phép

  • Phần lớn theo giấy phép GPLv2-only, một phần theo giấy phép LGPLv2.1

Ý kiến của GN⁺

  • ImHex là một công cụ rất hữu ích cho công việc đảo ngược và lập trình. Đặc biệt, khả năng trực quan hóa và phân tích nhiều kiểu dữ liệu khác nhau là điểm rất nổi bật.
  • Có các tính năng thân thiện với người dùng như chế độ tối, giúp giảm mỏi mắt khi làm việc trong thời gian dài.
  • Nhờ khả năng tương thích với nhiều nguồn dữ liệu khác nhau, công cụ có thể được sử dụng trong nhiều môi trường.
  • Các công cụ khác có tính năng tương tự gồm HxD, 010 Editor, v.v.
  • Khi áp dụng công nghệ mới hoặc mã nguồn mở, cần cân nhắc kỹ ưu và nhược điểm của công nghệ đó. Ví dụ, với ImHex thì hỗ trợ GPU là bắt buộc.

1 bình luận

 
GN⁺ 2024-06-30
Ý kiến Hacker News
  • ImHex là trình chỉnh sửa hex tốt nhất mà tôi từng dùng

    • Tính năng mẫu tệp tự động làm nổi bật các phần của những loại tệp đã biết
    • Hiển thị cách diễn giải các byte được chọn thành nhiều kiểu dữ liệu khác nhau cùng lúc
    • Khi làm việc với tệp lớn thì nhanh hơn hẳn các trình chỉnh sửa khác
    • Điểm trừ là giao diện imgui đôi khi có lỗi
  • Tôi tự hỏi liệu trình chỉnh sửa này có cách hiển thị byte ASCII bằng glyph CP437 hay không

    • Tôi từng đọc tệp nhị phân trong DOS theo cách này và có thể đọc glyph nhanh hơn giá trị hex
    • Việc hiển thị ký tự không in được bằng dấu chấm không cung cấp nhiều thông tin
  • Tôi đã thử ImHex nhưng thấy nó quá phức tạp

    • Trên macOS, tôi vẫn thích Hex Fiend hơn
    • Nó đơn giản, nhanh và cung cấp đúng những gì tôi cần
    • Trên Windows, tôi vẫn chưa tìm được một trình chỉnh sửa hex "đơn giản" nào thật sự hoàn hảo
  • Ngôn ngữ pattern rất hữu ích và giúp ích rất nhiều cho việc học

    • Tôi rất thích chương trình này
  • ImHex nhìn chung yêu cầu GPU hỗ trợ OpenGL 3.0

    • Tôi thắc mắc tại sao một trình chỉnh sửa hex lại cần OpenGL
    • Tôi không rõ có lý do thực sự nào để cần OpenGL hay chỉ đơn giản là cho đẹp
  • ImHex có vẻ khá ổn

    • Tôi dùng tính năng tìm kiếm wildcard của 010 Editor, nhưng ImHex cũng có tính năng đó
    • Nó còn cung cấp nhiều tính năng hơn nên tôi sẽ thử dùng
  • Tôi rất thích mảng văn hóa máy tính này

    • Reverse engineering, viết kernel module, tìm hiểu cách mọi thứ hoạt động và khiến chúng làm những việc vốn không được thiết kế để làm
    • Tuy nhiên, hiếm khi có cách hợp pháp để làm điều đó, và nó đòi hỏi rất nhiều thời gian cùng sự hỗ trợ của đồng nghiệp
  • Dự án này rất tuyệt

    • Tôi đã rất vui khi can thiệp vào ROM của đồng hồ thông minh Philips
    • Nó có DSL tích hợp giống Rust và rất nhẹ vì không cần quản lý bộ nhớ
    • Nhờ đó có thể trực quan hóa và trích xuất dữ liệu có cấu trúc từ luồng nhị phân
    • Cũng có một trình chỉnh sửa trực quan để thực hiện các phép tính đơn giản mà không cần code
    • Khi tôi thử thì nó vẫn có cảm giác hơi chưa hoàn thiện
    • Viết code bằng DSL trực quan và dễ hơn
  • Hiện tại tôi vẫn sẽ tiếp tục dùng 010 Editor

    • Đây là trình chỉnh sửa hex ấn tượng nhất mà tôi từng dùng
    • Tôi không thích GUI framework (Dear ImGui) mà các dự án mới hay dùng
    • Nó dành cho hệ thống nhúng có màn hình nhỏ và không có window manager; trong môi trường desktop, việc thiếu tích hợp UI khiến trải nghiệm trở nên khá gượng gạo
  • Dự án này trông khá hay

    • Tôi tự hỏi liệu phát triển trình chỉnh sửa hex như một dự án có phải là ý tưởng hay không
    • Một trình chỉnh sửa hex đơn giản thì không quá khó, nhưng vẫn còn rất nhiều chỗ để luyện tập như phân tích cú pháp định dạng tệp
    • Cũng còn nhiều dư địa để phát triển các công cụ reverse engineering