close

REA (Reverse Engineer Anything)

Mã nguồn mở bởi morluto

REA là máy chủ MCP kèm công cụ dòng lệnh giúp trợ lý AI phân tích ngược phần mềm: file thực thi gốc, ứng dụng JavaScript/Electron, assembly .NET, APK Android và trang web. Công cụ dùng cho nghiên cứu bảo mật, phân tích mã độc, gỡ lỗi và tương thích với phần mềm bạn sở hữu hoặc được phép phân tích.

REA (Reverse Engineer Anything) dùng để làm gì?

  • Cho trợ lý AI đọc pseudocode, assembly, chuỗi ký tự và tham chiếu trong file thực thi qua Hopper, Ghidra, IDA hoặc Kuna
  • Liệt kê module, import, source map, IPC của ứng dụng Electron mà không chạy ứng dụng
  • Đọc metadata và lệnh CIL của assembly .NET, chữ ký và manifest của APK Android
  • Phân tích bản ghi mạng HAR, gói tin pcap, file core dump Linux và firmware
  • Biến bản ghi API của web app thử nghiệm thành môi trường cho agent luyện tập hoặc kiểm thử

Giao diện

Ảnh và video lấy từ README của dự án trên GitHub, bản quyền thuộc nhóm phát triển.

Cần biết trước khi dùng

  • Lưu ýKhông tìm thấy docker-compose hay Dockerfile ở thư mục gốc: chưa thể gắn nút Deploy tự động.
  • Lưu ýTino chưa kiểm thử dự án này.

Kiểm tra tự động ngày 04/11/2026 từ dữ liệu GitHub, OSV.dev và docker-compose. Đây không phải chứng nhận bảo mật; Tino không phát triển hay bảo trì repo này.

REA (Reverse Engineer Anything) là gì?

REA nối trợ lý AI (Claude Code, Codex, Cursor, Gemini CLI…) với một loạt công cụ phân tích ngược qua giao thức MCP. Trợ lý gọi REA để xem xét mục tiêu, lần theo đoạn mã liên quan, rồi nhận lại kết quả kèm bằng chứng và những điểm chưa chắc chắn. Các lệnh dòng lệnh dùng chung quy trình đó, nên bạn cũng chạy được REA từ terminal mà không cần trợ lý.

Phạm vi phân tích rộng: file thực thi gốc, file Go và Rust (đọc thông tin build, danh sách thư viện), metadata IL2CPP của Unity, gói Godot PCK, mã GPU, file model GGUF/safetensors, chứng chỉ và bảng import của file PE, module nhân Linux, bytecode EVM, cơ sở dữ liệu SQLite, bản ghi mạng, APK Android, thiết bị Android qua adb và firmware. Mỗi loại mục tiêu có yêu cầu riêng; phân tích file thực thi gốc cần sẵn Hopper, Ghidra, IDA hoặc Kuna, còn phân tích tĩnh JavaScript và .NET không cần.

Theo README, việc phân tích chạy trên máy bạn và REA không tải ứng dụng lên đâu. Tuy vậy kết quả phân tích được gửi cho trợ lý, nên đi qua nhà cung cấp model theo chính sách dữ liệu của họ. Một số quy trình chạy hoặc tương tác với chương trình mục tiêu, bắt lưu lượng mạng hay thao tác trên thiết bị kết nối, bằng quyền của tài khoản bạn.

Tài liệu DISCLAIMER của dự án ghi rõ REA không hỗ trợ việc vượt DRM, kiểm tra bản quyền, chống gian lận, làm cheat game, sao chép mã hay tài sản có bản quyền. Giấy phép MIT áp dụng cho mã của REA; các công cụ thương mại đi kèm như IDA Pro, Hopper, JEB phải có giấy phép hợp lệ, REA không cấp khoá hay kích hoạt nào.

Nên dùng khi

  • Bạn phân tích mã độc, phản hồi sự cố hoặc tìm lỗ hổng trong phạm vi được phép và muốn trợ lý AI hỗ trợ đọc mã máy
  • Bạn cần làm phần mềm của mình tương thích với một định dạng hay giao thức mà tài liệu không công bố, trong giới hạn pháp luật cho phép
  • Bạn gỡ lỗi hoặc kiểm tra bảo mật chính ứng dụng Electron, .NET, APK do nhóm mình phát hành
  • Bạn học hoặc thi CTF và muốn trợ lý giải thích từng bước kèm bằng chứng

Không nên dùng khi

  • Mục tiêu là bẻ khoá bản quyền, vượt DRM, chống gian lận hoặc làm cheat game: dự án ghi rõ không hỗ trợ, và việc này có thể vi phạm luật sở hữu trí tuệ
  • Bạn không có quyền phân tích phần mềm đó: giấy phép hoặc điều khoản sử dụng (ToS) của nhiều phần mềm cấm phân tích ngược, và việc có file trong tay không đồng nghĩa với được phép
  • Bạn định chép tính năng của ứng dụng khác vào sản phẩm của mình mà chưa kiểm tra bản quyền: kết quả phân tích không cho bạn quyền dùng mã gốc hay mã tái dựng
  • Máy chứa dữ liệu nhạy cảm: agent được truy cập rộng vào file thực thi, công cụ phân tích, trình duyệt, adb và có thể chạy chương trình mục tiêu; nên dùng máy ảo hoặc máy riêng cho mẫu không tin cậy
  • Mã cần phân tích không được rời khỏi máy: kết quả vẫn được gửi cho nhà cung cấp model của trợ lý
  • Bạn không có giấy phép hợp lệ cho IDA Pro, Hopper hoặc JEB nhưng cần phân tích file thực thi sâu với các công cụ đó

Tính năng chính

  • Máy chủ MCP và công cụ dòng lệnh rea dùng chung quy trình phân tích
  • Lệnh setup tự đăng ký REA cho Claude Code, Codex, Cursor, Gemini CLI, Grok Build, sao lưu cấu hình cũ trước khi sửa
  • Phân tích file thực thi gốc qua Hopper, Ghidra, IDA, Kuna; hỗ trợ thêm GNU objdump và Rizin
  • Phân tích tĩnh JavaScript/Electron, .NET, APK, PyInstaller mà không chạy ứng dụng
  • Đọc bản ghi mạng HAR, Fiddler SAZ, pcap qua tshark; firmware qua Binwalk, Unblob
  • Kết quả kèm bằng chứng và giới hạn của từng kết luận
  • Dựng môi trường luyện tập cho agent (RL) từ bản ghi API, chạy bằng AgentEnv và Docker
  • Giấy phép MIT cho mã của REA

Cách cài đặt REA (Reverse Engineer Anything)

  1. Kiểm tra Node.js README yêu cầu Node.js 22.x (>=22.23.4), 24.x (>=24.22.1) hoặc 26.12.1 trở lên, kèm npm. Trên Linux, một số tính năng cần lệnh ps tương thích procps.
    node --version
  2. Đăng ký REA cho trợ lý AI Chọn trợ lý, xem lại các thay đổi đề xuất rồi đồng ý. Setup thêm máy chủ MCP và hướng dẫn làm việc của REA, có sao lưu cấu hình cũ. README khuyên chạy lệnh từ một thư mục tin cậy, nằm ngoài dự án cần phân tích. Khởi động lại trợ lý sau khi cài.
    npx rea-agents setup
  3. Hoặc cài lệnh rea để dùng thường xuyên Phân tích file thực thi gốc cần cấu hình công cụ phân tích (Hopper, Ghidra, IDA hoặc Kuna) trước.
    npm install --global rea-agents
    rea --help
  4. Thử phân tích một ứng dụng Electron từ terminal Thay đường dẫn bằng thư mục ứng dụng đã giải nén hoặc file ASAR mà bạn được phép phân tích. Kết quả liệt kê module, import, ranh giới Electron kèm bằng chứng.
    npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

Lệnh chép từ README của dự án. Đọc kỹ trước khi chạy và đối chiếu với README mới nhất, vì lệnh có thể đổi theo phiên bản.

Cấu hình quan trọng

MụcÝ nghĩa
REA_MCP_INPUT_SCHEMA_PROFILEĐặt full để MCP gửi đầy đủ mô tả tham số; mặc định dùng bản rút gọn cho đỡ tốn ngữ cảnh
REA_MCP_OUTPUT_SCHEMA_PROFILEĐặt compact hoặc off khi trợ lý giới hạn kích thước danh sách công cụ
REA_GHIDRA_STARTUP_TIMEOUT_MSTăng thời gian chờ Ghidra khởi động khi phân tích file lớn
REA_HOPPER_STARTUP_TIMEOUT_MSTăng thời gian chờ Hopper khởi động khi phân tích file lớn
REA_JEB_MCP_URLĐịa chỉ máy chủ MCP của JEB do bạn tự chạy, để REA dùng JEB

Cách tích hợp và sử dụng

  1. Xác định quyền phân tíchTrước khi giao việc, chắc chắn phần mềm là của bạn, có giấy phép cho phép phân tích, hoặc nằm trong phạm vi kiểm thử được uỷ quyền.
  2. Giao việc cho trợ lýHỏi bằng câu tự nhiên, ví dụ: tìm xem ứng dụng nội bộ của nhóm xử lý file cấu hình ở đâu và cho xem bằng chứng. Trợ lý gọi các công cụ MCP của REA và trả lời kèm vị trí mã, tham chiếu và điểm chưa rõ.
  3. Đọc kỹ bằng chứngPseudocode và kết quả AI có thể thiếu hoặc sai. Kiểm tra lại bằng chứng gốc trước khi đưa ra kết luận quan trọng.
  4. Xem lại kế hoạch của agentVới quy trình có chạy chương trình, bắt gói tin hoặc thao tác thiết bị Android, đọc lệnh agent đề xuất trước khi đồng ý và chạy trong máy ảo khi mục tiêu không tin cậy.
  5. Cập nhật khi gặp lỗiREADME khuyên cập nhật trước khi báo lỗi: rea update với bản cài toàn cục, hoặc npx rea-agents@latest setup với bản dùng npx, rồi khởi động lại trợ lý.

Cập nhật và sao lưu

Bản cài bằng npm install --global hoặc bun add --global: chạy rea update (bí danh rea --update). Bản dùng npx: chạy npx rea-agents@latest setup, xem lại thay đổi rồi khởi động lại trợ lý. README ghi REA ra bản mới thường xuyên.

Setup tự sao lưu cấu hình trợ lý trước khi sửa. Dữ liệu cần giữ là kết quả phân tích và bản ghi do bạn tạo; tự bảo vệ các file này vì chúng có thể chứa thông tin nhạy cảm.

Câu hỏi thường gặp

Dùng REA để phân tích phần mềm có hợp pháp không?

Tuỳ phần mềm, giấy phép và luật nơi bạn ở. Dự án chỉ hướng tới nghiên cứu hợp pháp, phân tích mã độc, tương thích, bảo tồn phần mềm và phân tích phần mềm bạn sở hữu hoặc được phép. Nhiều giấy phép và điều khoản sử dụng cấm phân tích ngược; hãy kiểm tra trước.

Có cần mua IDA hay Hopper không?

Không bắt buộc. Phân tích tĩnh JavaScript, .NET và nhiều định dạng khác chạy sẵn. Phân tích file thực thi gốc dùng Hopper, Ghidra, IDA hoặc Kuna; Ghidra là công cụ miễn phí. Công cụ thương mại phải có giấy phép hợp lệ.

REA có gửi ứng dụng của tôi lên mạng không?

Theo README, REA phân tích trên máy. Nhưng kết quả phân tích được chuyển cho trợ lý AI, tức là đi tới nhà cung cấp model theo chính sách dữ liệu của họ.

Có cần cài REA lên VPS không?

Thường không. REA chạy cùng máy với trợ lý AI và công cụ phân tích. Có thể dùng một máy ảo Linux riêng khi phân tích mẫu không tin cậy hoặc firmware, gói tin cần công cụ Linux.

Ứng dụng liên quan

Miễn trừ trách nhiệm

Tino không phát triển, không sở hữu và không liên kết với REA (Reverse Engineer Anything) hay nhóm phát triển morluto. Tên, logo và nhãn hiệu thuộc về chủ sở hữu tương ứng; việc nhắc tới chỉ để mô tả, không có nghĩa là dự án xác nhận hay hợp tác với Tino.

REA (Reverse Engineer Anything) được phân phối theo giấy phép MIT của nhóm phát triển. Tino không bảo đảm về tính năng, bảo mật hay mức độ phù hợp của phần mềm; bạn tự chịu trách nhiệm khi cài đặt, cấu hình và sử dụng.

Lệnh cài và thông tin trên trang lấy từ tài liệu công khai của dự án tại thời điểm cập nhật và có thể đã thay đổi. Đọc tài liệu chính thức và sao lưu dữ liệu trước khi chạy trên máy chủ thật.