REA: Để các tác tử AI giúp bạn phân tích phần mềm không có mã nguồn
Dự án mã nguồn mở REA (Reverse Engineer Anything) tích hợp các công cụ phân tích ngược vào những tác tử lập trình AI như Claude Code, Codex và Cursor. Nếu thấy một tính năng hay trong ứng dụng của người khác, bạn có thể nhờ tác tử phân tích chương trình đó, giải thích rõ tính năng được triển khai như thế nào, kèm bằng chứng, rồi viết một tính năng tương tự trong dự án của mình. Phân tích ngược là quá trình suy luận cách một chương trình được viết từ phần mềm đã biên dịch, khi bạn không có mã nguồn.
Bản thân REA là một dịch vụ MCP. MCP là giao diện chung để các tác tử AI gọi công cụ bên ngoài; sau khi kết nối, tác tử có thể trực tiếp dùng các chức năng phân tích của REA ngay trong cuộc trò chuyện. Chỉ cần chạy một lệnh cài đặt: npx rea-agents setup. Lệnh này sẽ đăng ký REA với các tác tử như Claude Code, Codex, Cursor, Gemini CLI và Grok Build. Trước khi sửa cấu hình, công cụ sẽ sao lưu và yêu cầu bạn xác nhận. Nếu không dùng tác tử, bạn cũng có thể chạy lệnh trực tiếp trong terminal.
REA phân tích được nhiều loại chương trình. Với phần mềm gốc (được biên dịch trực tiếp thành mã máy), cần dùng một trong các công cụ dịch ngược Hopper, Ghidra hoặc IDA để chuyển mã máy thành hợp ngữ và mã giả gần giống C. Ứng dụng Electron (phần mềm máy tính để bàn làm bằng công nghệ web, chẳng hạn Notion) có thể được phân tích trực tiếp bằng cách giải nén tệp lưu trữ ASAR trong gói cài đặt, rồi làm rõ các mô-đun và giao tiếp liên tiến trình mà không cần công cụ bổ sung. REA cũng hỗ trợ chương trình .NET, APK Android, firmware, trang web, bản ghi bắt gói tin, bytecode hợp đồng Ethereum, cũng như ghi lại hành vi của chương trình khi chạy trên Linux và macOS.
Việc phân tích diễn ra trên máy của bạn; REA không tải chương trình cần phân tích lên nơi khác. Tuy nhiên, kết quả phân tích sẽ được gửi đến nhà cung cấp dịch vụ mô hình đứng sau tác tử, và cách dữ liệu được xử lý tùy thuộc vào chính sách của từng nhà cung cấp.
Dự án đưa ra ba ví dụ. Thứ nhất là trò chơi phá gạch kinh điển DX-Ball: từ một lần gọi phát hiệu ứng âm thanh, lần theo đến hàm tính toán âm thanh ở kênh trái và phải dựa trên vị trí của quả bóng, khôi phục mã giả chưa đầy đủ thành mã C. Kết quả của 3.205 nhóm kiểm thử khớp với bản gốc, và 63 byte được biên dịch cũng hoàn toàn giống bản gốc. Thứ hai là phiên bản Notion dành cho máy tính để bàn: lần theo toàn bộ đường đi của thao tác sao chép và dán, từ giao diện qua tập lệnh preload và giao tiếp liên tiến trình đến tiến trình chính. Thứ ba là trò chơi Touhou Gensokyo (TH04) trên máy tính Nhật Bản đời cũ PC-98: khôi phục thuật toán tính góc của vòng đạn từ các lệnh 16 bit.
Với các nhà nghiên cứu bảo mật, người làm dự án tái tạo trò chơi cũ và bảo tồn phần mềm, trước đây họ phải tự đọc từng dòng trong công cụ dịch ngược và lần theo từng lớp lời gọi. Giờ đây, họ có thể để tác tử lần theo trước, rồi tự kiểm tra bằng chứng mà nó đưa ra. Các nhà phát triển thông thường muốn tìm hiểu cách đối thủ triển khai một tính năng nào đó cũng có thêm một hướng tiếp cận.
README cho biết dự án đã đạt 50.000 sao trên GitHub. Gói npm được phát hành lần đầu vào tháng 7 năm nay; phiên bản mới nhất 6.3.0 vừa được phát hành hôm nay.
Có hai điều cần lưu ý trước khi sử dụng. Dự án tuyên bố chỉ hỗ trợ nghiên cứu phân tích ngược hợp pháp; người dùng tự chịu trách nhiệm về quyền được cấp và việc tuân thủ quy định. Phân tích ngược phần mềm của người khác có thể vi phạm thỏa thuận sử dụng hoặc luật bản quyền. Dự án cũng cho biết họ chưa từng phát hành hay bảo chứng bất kỳ loại tiền mã hóa nào; các token mượn tên REA đều không liên quan đến dự án.
https://github.com/morluto/rea
Dự án mã nguồn mở REA (Reverse Engineer Anything) tích hợp các công cụ phân tích ngược vào những tác tử lập trình AI như Claude Code, Codex và Cursor. Nếu thấy một tính năng hay trong ứng dụng của người khác, bạn có thể nhờ tác tử phân tích chương trình đó, giải thích rõ tính năng được triển khai như thế nào, kèm bằng chứng, rồi viết một tính năng tương tự trong dự án của mình. Phân tích ngược là quá trình suy luận cách một chương trình được viết từ phần mềm đã biên dịch, khi bạn không có mã nguồn.
Bản thân REA là một dịch vụ MCP. MCP là giao diện chung để các tác tử AI gọi công cụ bên ngoài; sau khi kết nối, tác tử có thể trực tiếp dùng các chức năng phân tích của REA ngay trong cuộc trò chuyện. Chỉ cần chạy một lệnh cài đặt: npx rea-agents setup. Lệnh này sẽ đăng ký REA với các tác tử như Claude Code, Codex, Cursor, Gemini CLI và Grok Build. Trước khi sửa cấu hình, công cụ sẽ sao lưu và yêu cầu bạn xác nhận. Nếu không dùng tác tử, bạn cũng có thể chạy lệnh trực tiếp trong terminal.
REA phân tích được nhiều loại chương trình. Với phần mềm gốc (được biên dịch trực tiếp thành mã máy), cần dùng một trong các công cụ dịch ngược Hopper, Ghidra hoặc IDA để chuyển mã máy thành hợp ngữ và mã giả gần giống C. Ứng dụng Electron (phần mềm máy tính để bàn làm bằng công nghệ web, chẳng hạn Notion) có thể được phân tích trực tiếp bằng cách giải nén tệp lưu trữ ASAR trong gói cài đặt, rồi làm rõ các mô-đun và giao tiếp liên tiến trình mà không cần công cụ bổ sung. REA cũng hỗ trợ chương trình .NET, APK Android, firmware, trang web, bản ghi bắt gói tin, bytecode hợp đồng Ethereum, cũng như ghi lại hành vi của chương trình khi chạy trên Linux và macOS.
Việc phân tích diễn ra trên máy của bạn; REA không tải chương trình cần phân tích lên nơi khác. Tuy nhiên, kết quả phân tích sẽ được gửi đến nhà cung cấp dịch vụ mô hình đứng sau tác tử, và cách dữ liệu được xử lý tùy thuộc vào chính sách của từng nhà cung cấp.
Dự án đưa ra ba ví dụ. Thứ nhất là trò chơi phá gạch kinh điển DX-Ball: từ một lần gọi phát hiệu ứng âm thanh, lần theo đến hàm tính toán âm thanh ở kênh trái và phải dựa trên vị trí của quả bóng, khôi phục mã giả chưa đầy đủ thành mã C. Kết quả của 3.205 nhóm kiểm thử khớp với bản gốc, và 63 byte được biên dịch cũng hoàn toàn giống bản gốc. Thứ hai là phiên bản Notion dành cho máy tính để bàn: lần theo toàn bộ đường đi của thao tác sao chép và dán, từ giao diện qua tập lệnh preload và giao tiếp liên tiến trình đến tiến trình chính. Thứ ba là trò chơi Touhou Gensokyo (TH04) trên máy tính Nhật Bản đời cũ PC-98: khôi phục thuật toán tính góc của vòng đạn từ các lệnh 16 bit.
Với các nhà nghiên cứu bảo mật, người làm dự án tái tạo trò chơi cũ và bảo tồn phần mềm, trước đây họ phải tự đọc từng dòng trong công cụ dịch ngược và lần theo từng lớp lời gọi. Giờ đây, họ có thể để tác tử lần theo trước, rồi tự kiểm tra bằng chứng mà nó đưa ra. Các nhà phát triển thông thường muốn tìm hiểu cách đối thủ triển khai một tính năng nào đó cũng có thêm một hướng tiếp cận.
README cho biết dự án đã đạt 50.000 sao trên GitHub. Gói npm được phát hành lần đầu vào tháng 7 năm nay; phiên bản mới nhất 6.3.0 vừa được phát hành hôm nay.
Có hai điều cần lưu ý trước khi sử dụng. Dự án tuyên bố chỉ hỗ trợ nghiên cứu phân tích ngược hợp pháp; người dùng tự chịu trách nhiệm về quyền được cấp và việc tuân thủ quy định. Phân tích ngược phần mềm của người khác có thể vi phạm thỏa thuận sử dụng hoặc luật bản quyền. Dự án cũng cho biết họ chưa từng phát hành hay bảo chứng bất kỳ loại tiền mã hóa nào; các token mượn tên REA đều không liên quan đến dự án.
https://github.com/morluto/rea