Eleven: app reverse engineering đầu tiên được thiết kế cho AI agent, không phải cho người ngồi click

Mổ xẻ một binary trên macOS, một APK Android, hay một GPU kernel vốn là việc của người. Bạn ngồi trước IDA, Ghidra hay Hopper, đọc assembly, đặt tên hàm, ghi chú, ghép reference lại với nhau. Mất cả buổi cho một hàm. Eleven đảo ngược mô hình đó: agent làm, bạn duyệt.

Repo Zfinix/eleven là một app reverse engineering chạy native trên macOS, Windows và Linux, viết bằng TypeScript, dùng React render qua GPUI (thư viện của GPUIX). Bạn thả vào một app, một binary, một APK, một GPU kernel, một shader hay một model rồi hỏi nó làm gì. Agent đọc code, đi theo reference, đổi tên hàm, để lại note, đề xuất patch, còn bạn ngồi nhìn và bấm chấp nhận trong cùng một cửa sổ.

Nó giải quyết bài toán gì cụ thể

Cái đau nhất khi reverse engineering không phải là đọc từng dòng assembly. Là giữ ngữ cảnh trong đầu: hàm này gọi hàm kia, struct này map với struct nào, cái tên sub_401A20 thực ra là gì. Đó là việc lặp đi lặp lại và tốn thời gian, đúng kiểu việc nên giao cho LLM.

Eleven làm điều đó bằng cách cho agent quyền điều khiển cửa sổ. App tự phục vụ MCP tools để agent mở một hàm, chuyển view, rename, thêm note, đổi type, đề xuất patch. Agent không cần bạn copy pseudocode ra ChatGPT rồi paste ngược lại. Nó nói chuyện trực tiếp với công cụ.

Phía đọc code: native code do Ghidra đọc thông qua REA, hoặc Rizin nếu bạn muốn file mở trong vài giây. Android thì jadx lo phần Java, apktool (nếu cài) thêm smali. Bạn có thể chọn dòng trong pseudocode, assembly hoặc source file rồi hỏi, giải thích, copy. Câu trả lời hiện ngay dưới dòng đó, và một đề xuất rename hiện ra dạng card để bạn nhận hoặc từ chối.

Vì sao 652 sao trong 3 ngày

Repo tạo ngày 13/10/2026, cập nhật ngày 16/10/2026, đã có 652 sao. Ba ngày. Con số đó nói lên hai chuyện: một là repo đang được đẩy lên đúng lúc, hai là nhu cầu có thật.

Nhìn vào topics: acp, ai-agents, ghidra, hopper, rea, decompiler. Đây là giao điểm của hai làn sóng đang chạy song song. Một bên là agent coding ngày càng biết dùng tool (Claude, Codex, Gemini, Cursor, Copilot, OpenCode), bên kia là reverse engineering vốn bị coi là “nghề thủ công”. Eleven là cầu nối.

Điểm khác biệt so với các app RE khác không nằm ở engine. Ghidra vẫn là Ghidra, Rizin vẫn là Rizin. Khác ở chỗ app được thiết kế agent-first từ đầu, không phải gắn thêm chatbot vào một IDE có sẵn. Mọi thao tác của agent đều được log kèm tác giả và có thể undo. Byte patch từ agent đến dưới dạng gợi ý, bạn accept hoặc decline. Đây là thiết kế của người hiểu rằng ai đó sẽ phải tin con bot đang sửa binary của mình.

Còn một chi tiết khá thực dụng: “Bring your own agent”. Không khóa vào một nhà cung cấp. Aster, Claude, Codex, Gemini, Cursor, Copilot, OpenCode, bất kỳ agent nào nói được ACP. Chạy nhiều agent trên cùng một project, mỗi con một chat riêng.

Cài và chạy thử

macOS 14 trở lên trên Apple Silicon:

curl -fsSL https://eleven.chizi.app/install.sh | bash

Lệnh này cài Eleven.app vào /Applications. Build chưa được notarize nên installer tự xóa download quarantine giúp bạn, tiện nhưng cũng là điều nên biết trước khi chạy một script từ mạng về.

Windows x64, trong PowerShell:

irm https://eleven.chizi.app/install.ps1 | iex

Linux x64 thì tải AppImage hoặc .tar.gz từ release mới nhất.

Lần chạy đầu, app dẫn bạn chọn engine và agent, cài luôn phần còn thiếu. Rizin mở hầu hết app trong vài giây. Ghidra 12.x kèm Java 21 thì chậm hơn nhưng cho pseudocode rõ nhất, Eleven tự tải cả hai hoặc dùng bản có sẵn trong ~/.local/share, ~/Applications hoặc GHIDRA_INSTALL_DIR.

Muốn build từ source thì cần Bun, Node 20+, Ghidra, JDK, và một checkout của REA 6.x nằm cạnh repo (../rea) hoặc trỏ qua ELEVEN_REA:

git clone https://github.com/Zfinix/eleven
git clone https://github.com/Zfinix/rea
cd eleven/app
bun install
bun run dev

Mấy lệnh khác: bunx tsc --noEmit --noUnusedLocals để typecheck, ./script/test chạy test từng file một, ./script/bundle-macos ra build/Eleven.app, ./script/package để build, sign và zip release.

Ai nên dùng, dùng vào việc gì

Người làm malware analysis có thể giao việc “trace feature này” hoặc “network map” cho agent rồi duyệt lại note và patch. Playbook có sẵn cho mấy việc đó và chạy được với bất kỳ agent nào.

Dev mobile đang soi một APK của đối thủ hoặc cần hiểu app cũ không còn source: mở APK bằng jadx, đọc Java, xem smali, xem manifest, res, assets, native libs trong Resources list. File split bundle (.xapk, .apks) mở với đủ split.

Người viết CUDA hoặc HIP kernel cần hiểu một fat binary: mở dưới dạng PTX có highlight, ghi note cạnh từng block, và nhờ agent rewrite sang CUDA C++, HIP C++ hoặc Metal. Cùng logic đó áp cho Metal shader hoặc model file (GGUF, safetensors, PyTorch, ONNX) mở trong workbench và link về code load chúng.

Ai đang port app sang Rust, Go hay Zig cũng có việc dùng: chọn một hàm, nhờ agent viết lại pseudocode bằng C, C++, Rust, Go, Swift, Python, TypeScript, Java, C# hoặc Zig. Không phải dịch tự động hoàn hảo, nhưng là điểm khởi đầu tốt hơn đọc assembly chay.

Mấy điểm đáng cân nhắc

License Apache-2.0, thoáng, dùng thương mại được. Nhưng app do một người làm, README ghi rõ “built by one person”. Ba ngày tuổi, 652 sao, đang được sponsor để trả tiền cho build notarized, bản Linux và debugger. Đây là dự án non trẻ, đừng kỳ vọng độ ổn định của một sản phẩm đã chạy 5 năm.

Build chưa notarize trên macOS là điểm cần lưu ý thật sự, không phải chuyện nhỏ. Installer xóa quarantine giúp bạn, nghe tiện nhưng nghĩa là bạn đang tin script đó. Ai khó tính thì tự build từ source hoặc chờ bản notarized.

Một điểm nữa: agent đề xuất patch byte, bạn accept hoặc decline. Cơ chế undo có, log có tác giả, nhưng đây vẫn là app cho phép LLM ghi vào bản sao binary của bạn. Nguyên tắc trong README là “original is never touched”, bản gốc không bị đụng, chỉ ghi ra bản copy. Tốt, nhưng vẫn nên giữ bản gốc ở chỗ khác.

README không nói rõ hiệu năng khi chạy nhiều agent trên project lớn, cũng không có benchmark. Tài liệu hiện tại là README và trang chủ eleven.chizi.app, chưa thấy docs site riêng.

So với IDA hay Binary Ninja thì Eleven không cố thay thế. Nó dùng Ghidra và Rizin ở dưới, giá trị nằm ở lớp agent phía trên. Nếu bạn đã có workflow Ghidra ổn và không muốn con bot mó vào, repo này không dành cho bạn. Nếu bạn đang copy pseudocode qua lại giữa IDE và chat window mỗi ngày, đây là thứ đáng bỏ 10 phút cài thử.

652 sao sau 3 ngày, một người làm, Apache-2.0, và một ý tưởng đúng thời điểm. Cài thử trên máy cá nhân trước, đừng đụng vào binary production của công ty ngay.

Đăng ngày 18/10/2026
Giang Na
Về tác giả: Giang Na
Người lập ra blog từ 2015 với những bài về Blogspot. Giờ tập trung vào cách đưa AI vào việc thường ngày, theo hướng thực dụng và dễ làm theo.

Giang Na

Người lập ra blog từ 2015 với những bài về Blogspot. Giờ tập trung vào cách đưa AI vào việc thường ngày, theo hướng thực dụng và dễ làm theo.