Tools

RE Toolkit (2/5): bộ đồ nghề desktop miễn phí — Detect It Easy, ImHex, x64dbg, Cutter, ILSpy

Tóm tắt

Thứ tự dùng: Detect It Easy nhận diện → ImHex đọc cấu trúc bằng pattern language → x64dbg (Windows), Cutter/rizin (đa nền tảng) hoặc ILSpy/dnSpyEx (.NET). Tất cả miễn phí; phân tích mẫu lạ trong VM.

Ghidra và IDA là "phòng mổ" chính, nhưng người làm reverse engineering mỗi ngày còn cần một bộ dụng cụ nhỏ hơn: nhận diện file trước khi mở, đọc byte thô có cấu trúc, debug trên Windows, và dịch ngược .NET. Bài 2 của loạt RE Toolkit gom sáu repo mã nguồn mở, miễn phí, được cộng đồng dùng nhiều nhất cho những việc đó, kèm thứ tự dùng hợp lý.

Trang GitHub của WerWolv/ImHex
Trang GitHub của WerWolv/ImHex (ảnh chụp tháng 11/2026)

GitHub: https://github.com/WerWolv/ImHex · khoảng 55,8 nghìn sao · C++ · GPL-2.0

Bộ đồ nghề và vai trò

RepoDùng đểNền tảngSao · License
horsicq/Detect-It-EasyNhận diện loại file, trình biên dịch, packer, protectorWindows, Linux, macOS~11,9k · MIT
WerWolv/ImHexHex editor có ngôn ngữ pattern để mô tả cấu trúc dữ liệuWindows, Linux, macOS~55,8k · GPL-2.0
x64dbg/x64dbgDebugger user mode, tối ưu cho reverse và phân tích malwareWindows~50,2k · mã nguồn mở
rizinorg/cutterGiao diện đồ hoạ cho framework rizin: disassembly, đồ thị, decompilerWindows, Linux, macOS~20,2k · GPL-3.0
icsharpcode/ILSpyDịch ngược .NET về C#, xuất cả projectĐa nền tảng (bản CLI)~27k · MIT
dnSpyEx/dnSpyDebug và sửa trực tiếp assembly .NETWindows~11,4k · GPL-3.0

Bước 1: nhận diện với Detect It Easy

Trước khi mở bất cứ thứ gì, hỏi: đây là file gì, biên dịch bằng gì, có bị pack không? DiE trả lời bằng cơ sở chữ ký và các module heuristic viết bằng JavaScript (DiE-JS), không chạy file. Bản dòng lệnh diec tiện cho script:

diec sample.exe

Kết quả như "UPX" hay ".NET + obfuscator" quyết định bước tiếp: unpack trước, hoặc chuyển thẳng sang ILSpy thay vì Ghidra. README cảnh báo tên miền detectiteasy.com không phải trang chính thức, chỉ tải từ GitHub Releases.

Bước 2: đọc byte có cấu trúc với ImHex

Với định dạng file lạ, save game, gói tin hay firmware header, ImHex vượt xa hex editor thường nhờ pattern language: bạn mô tả cấu trúc giống C, ImHex tô màu và tách trường ngay trên dữ liệu.

struct Header {
    char magic[4];
    u32  version;
    u32  entry_count;
};
Header header @ 0x00;

Cộng thêm data inspector (một vùng byte đọc dưới dạng int, float, thời gian…), tìm kiếm, so sánh hai file và đồ thị entropy để phát hiện vùng nén hoặc mã hoá. Trên macOS có thể cài bằng brew install --cask imhex.

Bước 3: chọn công cụ phân tích

Code native trên Windows: x64dbg

x64dbg (kèm x32dbg cho 32-bit) là debugger miễn phí được dùng nhiều nhất cho phân tích động trên Windows: breakpoint có điều kiện, trace, sửa bộ nhớ, tích hợp sẵn Scylla để dựng lại bảng import sau khi dump. Plugin ScyllaHide giúp vượt các kiểm tra chống debug phổ biến.

Đa nền tảng, miễn phí: Cutter + rizin

Cutter là GUI cho rizin (nhánh tách từ radare2), có đồ thị luồng điều khiển, chế độ debug và decompiler dựa trên Ghidra đi kèm bản phát hành. Phù hợp khi cần một công cụ nhẹ hơn Ghidra hoặc muốn script bằng lệnh rizin:

rizin -A ./binary      # mở và phân tích
afl                    # liệt kê hàm
pdf @ main             # in disassembly của main

.NET: ILSpy và dnSpyEx

Ứng dụng .NET giữ nhiều metadata nên dịch ngược gần như về lại C# gốc. ILSpy để đọc và xuất project; dnSpyEx (bản cộng đồng tiếp nối dnSpy gốc đã ngừng) để đặt breakpoint ngay trên code C# đã dịch ngược và sửa assembly.

dotnet tool install --global ilspycmd
ilspycmd -p -o ./out App.dll    # xuất thành project C#

Lưu ý

  • Chạy debugger với mẫu không tin cậy chỉ trong máy ảo có snapshot, tắt thư mục chia sẻ.
  • Kết quả DiE là gợi ý, không phải kết luận; packer tự viết sẽ không có chữ ký.
  • Sửa và phân phối lại assembly của người khác có thể vi phạm giấy phép; chỉ làm với phần mềm của bạn hoặc được phép.

Áp dụng thế nào?

  • Dev: Cài DiE, ImHex, ILSpy ngay cả khi không làm bảo mật: chúng giúp debug định dạng file của chính bạn và đọc thư viện .NET không có mã nguồn.
  • Tech Lead: Đưa DiE (diec) vào bước kiểm tra build để chắc bản phát hành đúng trình biên dịch, đúng protector đã chọn.
  • PM: Toàn bộ bộ công cụ này miễn phí; chi phí thật là thời gian đào tạo, không phải bản quyền.

Nguồn & tham khảo

  1. horsicq/Detect-It-Easy (GitHub) — horsicq
  2. WerWolv/ImHex (GitHub) — WerWolv
  3. x64dbg/x64dbg (GitHub) — x64dbg
  4. rizinorg/cutter (GitHub) — rizinorg
  5. icsharpcode/ILSpy (GitHub) — icsharpcode
  6. dnSpyEx/dnSpy (GitHub) — dnSpyEx