Reverse Engineer Anything (REA) cán mốc 290.000 star: dữ liệu của bạn đi đâu khi agent mổ xẻ phần mềm?
REA cho AI agent khả năng đọc ứng dụng không cần mã nguồn và đạt gần 290.000 star chỉ trong hai tuần. Nhưng có một chi tiết ít người để ý: công cụ chạy trên máy bạn, còn mọi phát hiện lại được gửi lên model trên cloud. Bài này phân tích đường đi của dữ liệu và cách tác giả bài viết gốc đã giữ tất cả ở lại máy với model 27B chạy local.
Một công cụ mã nguồn mở vừa đạt gần 290.000 star trên GitHub chỉ trong hai tuần. Nó cho phép AI agent đọc và phân tích phần mềm mà không cần mã nguồn. Nhưng có một chi tiết ít người để ý: công cụ chạy trên máy bạn, còn mọi thứ nó tìm ra lại được gửi lên máy chủ của hãng AI.
REA là gì
REA là viết tắt của Reverse Engineer Anything. Đây là một máy chủ MCP mã nguồn mở theo giấy phép MIT. MCP là giao thức chuẩn giúp AI agent gọi các công cụ bên ngoài. REA nối agent với những công cụ mà chuyên gia vẫn dùng để mổ xẻ phần mềm: Ghidra, IDA Pro, Hopper. Bạn chỉ cần hỏi agent "chức năng này hoạt động thế nào", REA sẽ trả về mã giả, sơ đồ module, log mạng và bằng chứng kèm theo.
Kho code morluto/rea mở từ tháng 4/2026 và im ắng suốt nửa năm. Đầu tháng 10/2026 nó bùng nổ. Từ khoảng 40 star ngày 2/10, repo lên tới 289.654 star ngày 17/10 theo số liệu nhiều nguồn độc lập. Đó là tốc độ thường chỉ thấy ở mô hình AI lớn mới hoặc app tiêu dùng viral, chứ không phải ở công cụ dòng lệnh.
Vấn đề nằm ở đường đi của dữ liệu
README của REA nói rõ: quá trình phân tích chạy hoàn toàn trên máy người dùng. Nhưng phân tích xong, kết quả đi đâu là chuyện khác. Khi bạn dùng Claude Code, Codex hay Cursor, "bộ não" điều khiển agent là model nằm trên cloud. Mỗi lượt trao đổi, những chuỗi ký tự, địa chỉ endpoint và đoạn mã mà REA moi ra từ file nhị phân đều đi kèm lên cloud.
Với agent cloud, đường đi như sau: phân tích chạy trên máy bạn, nhưng kết quả tool và câu hỏi của bạn đều được gửi lên model trên cloud. Với app local và model local, cả ba đều ở lại máy bạn, không có gì rời khỏi máy.
Nếu đối tượng cần xem là app của khách hàng đang kiểm toán, công cụ nội bộ của công ty, hay bản build chưa phát hành của chính bạn, vế "ở lại máy" mới là điều quan trọng. Bài viết ngày 22/10 của tác giả app Locally Uncensored — một app desktop mã nguồn mở để chạy model trên máy cá nhân — chính là về cách đạt vế đó: REA làm plugin, agent chạy bằng model local.
Model local nào đủ sức
Tác giả thử nghiệm với Qwen 3.8 bản 27B tham số, chạy qua Ollama với cửa sổ ngữ cảnh 64K token. Cửa sổ ngữ cảnh là lượng chữ mà model "nhớ" được trong một lần làm việc. Model 9B thử trước đó bị cạn ngữ cảnh giữa chừng và bỏ cuộc trước khi trả lời. Kết luận thực nghiệm: REA cần model cỡ 27B và ngữ cảnh đủ dài.
Còn bản "uncensored" — model đã gỡ bộ lọc từ chối — thì sao? Từ vựng của nghề mổ xẻ phần mềm như decompile, bypass hay crack rất dễ kích hoạt cơ chế từ chối của model. Một lần từ chối ở bước thứ bảy có thể phá hỏng cả chuỗi phân tích dài. Nhưng tác giả cũng nói thẳng hai điều: ông chưa đo tỷ lệ từ chối bao giờ, và bản Qwen gốc không từ chối lần nào trong thử nghiệm của ông. Các bản uncensored trong danh mục của app chỉ là "bảo hiểm", chưa hề được thử với REA.
Cho model local cầm 207 công cụ: ba chỗ phải sửa
REA có tới 207 công cụ. Để model 27B điều khiển được, tác giả phải sửa ba chỗ trong cách app của ông dọn dữ liệu cho model:
Ít công cụ mỗi lượt hơn. Mỗi lượt model chỉ nhận những công cụ mà câu chữ của lượt đó trỏ tới, thay vì cả 207 công cụ. Một thay đổi này đã giảm lượng chữ model phải đọc mỗi lượt từ 108.651 xuống 74.459 ký tự.
Đưa tham chiếu, không đưa bản sao. Các công cụ so sánh chấp nhận kết quả cũ nguyên vẹn (khoảng 7.000 ký tự) hoặc một mã tham chiếu ngắn gọn. Trước đó model cứ cố chép lại những bản ghi mà nó chưa từng thấy, vừa tốn chữ vừa sai.
Đưa sự kiện, không đưa nguồn gốc. Một lần phân tích trả về 343.583 ký tự, phần lớn là mã băm, trong khi endpoint đáng chú ý nằm ở ký tự thứ 230.308. Sau khi lọc, model chỉ nhận 32.792 ký tự sự kiện thực sự mà không mất thông tin.
Lần chạy thành công dùng model Qwen 3.8 27B, REA 6.5.0, đối tượng là một app Electron thử nghiệm có bốn file. Mười bước, 3 phút 15 giây, tìm ra phiên bản, cả hai endpoint và cả hai kênh giao tiếp giữa các tiến trình. Bộ nhớ máy Mac luôn còn ít nhất 44% trống.
Những giới hạn được nói thẳng
Kết quả đầy đủ mới chỉ có trên một máy Mac với model gốc. Trên Windows, app mới khởi động được REA và trao công cụ cho model, chưa đi xa hơn. Linux, model cloud và các bản uncensored đều chưa được thử. Và tác giả nhắc một câu quan trọng: chỉ dùng công cụ này với phần mềm bạn sở hữu hoặc được phép xem xét. Mổ xẻ phần mềm của người khác có thể vướng bản quyền và hợp đồng, tùy quốc gia.
Bài học cho người xây agent
Câu chuyện REA không chỉ là chuyện của dân bảo mật. Nó là lời nhắc cho mọi kiến trúc agent dùng MCP: đừng chỉ hỏi công cụ chạy ở đâu, hãy hỏi dữ liệu đi đâu sau mỗi lượt gọi. Ba nguyên tắc rút ra từ thử nghiệm trên:
- Vẽ đường đi của dữ liệu trước khi vẽ kiến trúc công cụ. Chỗ nào chạm dữ liệu nhạy cảm thì model cũng phải ở cùng chỗ đó.
- Ngân sách ngữ cảnh là tài nguyên khan hiếm nhất. Lọc công cụ theo lượt, dùng tham chiếu thay bản sao, và chỉ đưa sự kiện thay vì toàn bộ nguồn gốc.
- Đo thay vì đoán. Tác giả đo số ký tự mỗi lượt, đo thời gian, đo bộ nhớ trống — và nhờ đó biết chính xác chỗ nào nghẽn.
Nếu bạn đang chạy model local trên laptop, bài hướng dẫn chạy LLM với 8GB RAM của blog là điểm khởi đầu phù hợp. Còn khi agent của bạn bắt đầu gọi công cụ ngoài, hãy quay lại kiểm tra đường đi của dữ liệu trước khi hỏi chuyện gì khác.
Nguồn tham khảo
- purpledoubled, "Reverse engineering without the cloud: REA, a local 27B model and an uncensored build", DEV Community, 22/10/2026 — https://dev.to/purpledoubled/reverse-engineering-without-the-cloud-rea-a-local-27b-model-and-an-uncensored-build-3ggi
- Wikipedia, "Reverse Engineer Anything" — https://en.wikipedia.org/wiki/Reverse_Engineer_Anything
- pbxscience.com, "Can REA Reverse Engineer Anything? Capabilities, Limits and Legal Risks Explained", 20/10/2026 — https://pbxscience.com/can-rea-reverse-engineer-anything-reverse-engineer-all-software/
