REA: Công cụ dịch ngược MCP cho AI agent
REA là công cụ tôi sẽ chọn khi cần một AI agent phân tích một ứng dụng mà không có mã nguồn. Nó chạy phân tích trên máy, trả về kết quả có căn cứ, và tích hợp với Hopper, Ghidra hoặc IDA Pro để dịch ngược binary sâu. Đáng dùng nếu bạn muốn việc dịch ngược được giải thích rõ ràng và có thể lặp lại từ agent thay vì phải ngồi mò hex editor thủ công.
REA là gì?
REA là MCP server và CLI cho phép AI agent dịch ngược binary, ứng dụng JavaScript, assembly .NET và website. Nó kết nối với Hopper, Ghidra hoặc IDA Pro để phân tích binary gốc, và đi kèm trình phân tích JavaScript tĩnh chỉ cần Node.js. Mỗi lần phân tích trả về gói kết quả kèm kết luận và những hạn chế đã được ghi nhận, giúp bạn biết rõ công cụ đã làm được gì và chưa làm được gì.
Khả năng phân tích và các target được hỗ trợ
- ✓MCP server kết nối AI agent với công cụ dịch ngược và CLI độc lập
- ✓Phân tích tĩnh JavaScript và Electron không cần thực thi, không cần emulator, chỉ cần Node.js
- ✓Phân tích binary gốc qua Hopper (macOS/Linux), Ghidra (Linux/macOS, thử nghiệm trên Windows), hoặc IDA Pro
- ✓Gói kết quả ghi lại phát hiện, hạn chế và những điều chưa biết cho mỗi lần phân tích
- ✓Nhập cây thư mục nguồn cũ làm mốc tham chiếu và so sánh gói kết quả qua nhiều lần chạy
- ✓CLI hỗ trợ lệnh cụ thể: open, analyze, decompile, capture-process và snapshot reuse
- ✓Kiểm tra vùng firmware và phân tích tĩnh APK bằng công cụ riêng biệt
- ✓Dùng được từ terminal không cần agent hoặc như MCP service tích hợp cho các agent được hỗ trợ
Cài đặt REA và kết nối agent của bạn
Node.js 22.x trở lên và npm là điều kiện tiên quyết. Chạy `npx rea-agents setup` để đăng ký agent và phát hiện công cụ. Lệnh này cài skill REA, đăng ký MCP server với các agent đã chọn, và có thể cài đặt Hopper khi được chấp thuận. Ghidra và IDA Pro cần cài đặt riêng trước khi thiết lập; README có ghi rõ yêu cầu phiên bản. Trên Linux, thêm `~/.local/bin` vào PATH nếu trình cài đặt đặt `rea` ở đó. Sau thiết lập, xác nhận đã sẵn sàng với `rea doctor --json` trước khi chạy phân tích.
Xem xét một ứng dụng với agent của bạn
Sau khi thiết lập, khởi động lại agent và mô tả ứng dụng hoặc tính năng bạn muốn hiểu. Với các target JavaScript hoặc Electron, chạy `rea analyze /path/to/app.asar --json` trực tiếp từ terminal mà không cần công cụ bổ sung nào. Với binary gốc, đảm bảo Hopper, Ghidra hoặc IDA Pro đã được cài đặt và chọn với `--provider`, rồi dùng `rea analyze /path/to/binary`. Truyền `--snapshot /path/to/analysis.json` để lưu kết quả thành công và tái sử dụng trong các lần chạy khớp. Agent thu thập kết quả xuyên suốt phiên làm việc và báo cáo kết luận cùng những hạn chế khi bạn hỏi.
Bạn có thể làm gì với REA
- •Yêu cầu agent giải thích cách tìm kiếm hoạt động trong ứng dụng của đối thủ, minh chứng bằng kết quả, rồi xây dựng tính năng tương tự cho dự án của mình
- •Khảo sát macOS .app bundle để tìm XPC services, login items và privileged helpers mà không cần thực thi
- •Decompile binary gốc bằng Ghidra và nhận lại pseudocode, tên hàm, các dải bộ nhớ quan sát được cùng những khoảng trống đã được ghi nhận
- •Ánh xạ thư mục ứng dụng JavaScript/Electron hoặc archive ASAR thành call graph và cấu trúc đã thu thập lại mà không cần chạy nó
- •So sánh gói kết quả từ hai phiên bản ứng dụng để tìm ra những gì đã thay đổi trong cách triển khai
- •Nhập một bản phát hành nguồn cũ làm mốc tham chiếu và xem xét cách kiến trúc đã phát triển như thế nào
Những lợi thế chính của REA
- ✓Biến dịch ngược thành tác vụ cho agent thay vì công việc thủ công
- ✓Phân tích chạy trên máy. Không upload binary hay dữ liệu lên dịch vụ hosted
- ✓Gói kết quả ghi lại những gì tìm được và những gì chưa xác định được, kết quả có thể kiểm toán
- ✓Thiết kế CLI trước cho phép dùng độc lập không cần agent, rồi kết nối cùng công cụ với agent sau
- ✓Kết nối được với nhiều công cụ phân tích. Bạn chọn Hopper, Ghidra hoặc IDA Pro tùy theo thứ đã có sẵn
Yêu cầu, ràng buộc và những khoảng trống
- △Phân tích binary gốc phụ thuộc vào việc cài đặt riêng Hopper, Ghidra hoặc IDA Pro. Hopper có phí; Ghidra cần cài thủ công và JDK; IDA Pro là sản phẩm thương mại
- △Hỗ trợ binary gốc trên Windows còn thử nghiệm. README mô tả phân tích PE x86-64 trên NTFS cục bộ là nỗ lực P0 với hướng dẫn và ranh giới phát hành riêng
- △Phân tích tĩnh JavaScript không thực thi code. Nó trích xuất cấu trúc và chuỗi từ archive ASAR và thư mục
- △Quá trình thiết lập không cài Ghidra, Java, IDA Pro hoặc JAR JADX để phân tích APK. Đây là bring-your-own
- △Công cụ này được cấp phép MIT và miễn phí, nhưng các công cụ phân tích bên dưới có chi phí cấp phép riêng
Cách REA so sánh với các công cụ dịch ngược độc lập
Ai nên dùng REA?
Lập trình viên dùng Claude Code, Cursor, Windsurf hoặc Codex muốn agent xem xét một ứng dụng đóng hoặc hiểu cách đối thủ triển khai một tính năng. Nhà nghiên cứu bảo mật muốn workflow phân tích binary dựa trên kết quả có thể lặp lại. Nhóm cần ghi lại cách một binary cũ hoạt động mà không cần xây dựng lại từ đầu. Bỏ qua nếu bạn muốn disassembler thuần túy thủ công không có tích hợp agent, hoặc nếu bạn chỉ làm việc với mã nguồn mở.
Các câu hỏi thường gặp
README liệt kê Claude Code, Claude Desktop, Codex, Cursor, Gemini CLI, Windsurf, Devin, OpenCode, Antigravity, GitHub Copilot CLI, Command Code và VS Code là các agent được hỗ trợ. Quá trình thiết lập tự động phát hiện và đăng ký với những agent này. Các agent khác có thể kết nối qua cấu hình MCP thủ công.
Phân tích tĩnh JavaScript và Electron chỉ cần Node.js và không cần công cụ nào khác. Phân tích binary gốc yêu cầu một trong ba. Hopper cần giấy phép riêng; Ghidra miễn phí nhưng bạn phải tự cài cùng JDK 21; IDA Pro là thương mại và sử dụng đăng ký ida-pro-mcp hiện có.
Hỗ trợ Ghidra trên Windows cho x64 còn thử nghiệm, áp dụng cho ứng dụng PE x86 và x86-64 trên NTFS cục bộ. README gắn nhãn P0 và đề cập đến ranh giới phát hành cho x86-64. Hỗ trợ binary gốc trên Windows chính thức vẫn còn hạn chế so với macOS và Linux.
REA được cấp phép MIT và miễn phí. Tuy nhiên, Hopper có giấy phép thương mại riêng, và IDA Pro là sản phẩm trả phí. Ghidra miễn phí nhưng cần cài đặt JDK riêng. REA không đi kèm bất kỳ công cụ nào trong số này.
Ứng dụng JavaScript và Electron, assembly .NET, website, binary gốc định dạng PE, ELF và Mach-O, APK qua JADX, và macOS .app bundle. Phạm vi hỗ trợ khác nhau tùy nền tảng. Phân tích tĩnh hoạt động không cần thực thi; phân tích binary sâu cần công cụ.
Mọi phân tích chạy trên máy cục bộ. REA không upload binary hay kết quả lên bất kỳ dịch vụ hosted nào. Khi dùng Ghidra, REA phân tích bản sao tạm thời và xóa project tạm khi phiên làm việc kết thúc.
Vấn đề mà nó giải quyết
Dịch ngược vốn chậm và tốn nhiều công sức thủ công. Bạn dành hàng giờ trong disassembler, ghi chú những gì tìm được, rồi lặp lại cho mỗi target mới. Khi làm việc với một AI coding agent trên dự án của mình, bạn không thể yêu cầu nó xem xét ứng dụng của đối thủ và giải thích cách một tính năng hoạt động. Agent không có cách nào phân tích binary, decompile code, hay thu thập lại thông tin cấu trúc từ một ứng dụng đóng.
Repo liên quan
Muốn nghe thêm một ý kiến về rea?
Hỏi một AI đọc được trang này — một cú bấm là có ngay nhận định về rea.
