Để reverse engineer bất cứ thứ gì với Opus 5.5, hãy kết nối model với một disassembly engine thông qua REA, rồi làm việc theo từng giai đoạn: định tuyến mục tiêu, lập bản đồ nó, decompile những hàm bận rộn nhất, để Opus đặt tên và giải thích chúng, viết một spec chỉ mô tả hành vi, và tái xây dựng từ spec đó trong một context riêng. Khớp mức effort với từng giai đoạn, và chứng minh bản rebuild bằng các parity test.
Đó là phiên bản ngắn của một hướng dẫn đã lan truyền mạnh trên X. Vào ngày 12 tháng 10 năm 2026, builder Movez đã công bố một khóa học 11 bước về reverse engineering với Claude Opus 5.5. Nó đã vượt 1 triệu lượt xem và 2.800 bookmark. Bài viết này kiểm chứng các tuyên bố của nó dựa trên nguồn, chỉnh sửa hai chi tiết benchmark, và bổ sung bước mà hầu hết các hướng dẫn bỏ qua: kiểm thử API mà mục tiêu giao tiếp.
Chỉ sử dụng điều này với phần mềm bạn sở hữu hoặc được phép kiểm tra. README của REA giới hạn công cụ này cho “nghiên cứu hợp pháp, giáo dục, khả năng tương tác, 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 kiểm tra.”
Vì sao Opus 5.5 cần một công cụ để đọc file nhị phân
Opus 5.5 đọc và viết văn bản; nó không thể tự nạp một file Mach-O hay ELF. REA là một MCP server nằm giữa agent của bạn và một analysis engine (Hopper, Ghidra hoặc IDA cho mã native), chạy phân tích cục bộ và trả về các phát hiện kèm bằng chứng: địa chỉ, pseudocode, chuỗi và call site. Model đọc những phát hiện đó và đặt câu hỏi tiếp theo.

REA đã vượt 393.000 GitHub star vào ngày 27 tháng 10 năm 2026, tăng từ khoảng 115.000 vào ngày 12 tháng 10. Chúng tôi đã đề cập REA là gì và cách nó hoạt động cùng vòng lặp sáu bước để tái xây dựng một tính năng của ứng dụng khi nó lần đầu lên xu hướng. Hướng dẫn này tập trung vào phía model: các prompt, thiết lập effort và các giới hạn.
Bước 1: Cài đặt REA và viết house rules
REA cần Node.js 22.23.4 trở lên trên dòng 22 (24.22.1+ hoặc 26.12.1+ cũng hoạt động) cùng với npm. Bản phát hành npm hiện tại là 6.8.0. Đăng ký nó với agent của bạn:
npx rea-agents setup
npm install --global rea-agents
rea --help
Setup sẽ xem trước các thay đổi cấu hình, sao lưu những gì nó chạm vào và hỗ trợ Claude Code, Codex, Cursor, Gemini CLI và Grok Build. Phân tích native cần Hopper, Ghidra hoặc IDA; kiểm tra JavaScript, Electron và .NET không cần engine nào.
Sau đó đưa cho agent các house rules. Khối CLAUDE.md trong khóa học là phần hay nhất của thread:
# Reverse-engineering house rules
- Only analyze targets I own or am authorized to examine. State the basis once.
- Tag every claim: observation, inference, or unknown.
- Cite the evidence: address, bytes, pseudocode or call site.
- Start with the smallest overview. Expand only on a concrete gap.
- Separate static facts from runtime facts.
- Build from behavior and public specs, never from copied code or assets.
- Every recovered behavior needs a passing test before "done".
Bước 2: Chọn một mức effort cho mỗi giai đoạn
Opus 5.5 hỗ trợ năm mức effort: low, medium, high, xhigh và max. Theo tài liệu về effort của Anthropic, Opus 5.5 mặc định là medium, trong khi xhigh nhắm tới các phiên agentic dài và max loại bỏ mọi giới hạn về chi phí token. Bạn thiết lập nó bằng output_config.effort trên API, hoặc bằng thiết lập effort của agent bạn.
Cách phân chia trong khóa học là một điểm khởi đầu hợp lý, không phải một quy tắc đã được kiểm chứng:
| Giai đoạn | Effort gợi ý | Vì sao |
|---|---|---|
| Định tuyến, recon, điều hướng | medium |
Chủ yếu là gọi công cụ và liệt kê |
| Chú thích các hàm thông thường | high |
Đặt tên cần suy luận về data flow |
| Các phiên dài nhiều hàm | xhigh |
Được thiết kế cho các lượt chạy trên 30 phút |
| Mã bị obfuscate hoặc nhiều con trỏ | max |
Suy luận sâu nhất, chi phí cao nhất |
Tăng effort theo từng hàm, không phải theo từng phiên.
Bước 3: Định tuyến mục tiêu trước khi bạn mở bất cứ thứ gì
Lỗi phổ biến nhất của người mới là mở một disassembler trên một ứng dụng Electron mà JavaScript của nó nằm phơi bày rõ ràng. REA bao phủ các bản cài desktop, binary native, ứng dụng JavaScript và Electron, assembly .NET, APK Android, WASM, website và các bản ghi network đã lưu, mỗi loại có công cụ đầu vào riêng. Prompt đầu tiên của bạn chỉ nên xác định mục tiêu:
I want to understand how [FEATURE] works in [APP] at [ABSOLUTE PATH].
First tell me what kind of target this is (native, Electron/JS, .NET, APK, WASM)
and which REA tool opens it. Don't start deep analysis yet.
Then give me a one-paragraph map and where you'd look first for [FEATURE].
Keep observations, inferences and unknowns separate.
Một mục tiêu Electron sẽ đi tới analyze-javascript-application (module, import, ranh giới IPC, không cần engine). Một mục tiêu native sẽ đi tới open_binary.
Bước 4: Lập bản đồ chuỗi và xếp hạng hàm theo cross-reference
Chưa đọc mã vội. Với một mục tiêu native, hãy bắt đầu bằng một bản kiểm kê:
rea inspect /absolute/path/to/program --provider ghidra --json
rea search /absolute/path/to/program entry --kind procedures --provider ghidra --json
Chuỗi là manh mối nhanh nhất của bạn: URL, thông báo lỗi và tên tính năng. Một base URL hay một chuỗi Authorization: Bearer cũng cho bạn biết binary đang giao tiếp với một API, điều này quan trọng ở Bước 9.
Tiếp theo, xếp hạng hàm theo cross-reference (có bao nhiêu nơi gọi chúng). Một hàm có 147 caller có khả năng là hạ tầng lõi, ví dụ một config loader; một hàm có hai caller có thể chờ sau. Hãy đọc từ trên xuống dưới.
Bước 5: Decompile một hàm, rồi để Opus đặt tên cho nó
Decompile một hàm hot duy nhất:
rea function /absolute/path/to/program parseConfig --provider ghidra --json
rea decompile /absolute/path/to/program --procedure=parseConfig --provider ghidra --json
Kết quả khá thô (var_28, ép kiểu khắp nơi). Hãy đưa nó cho Opus 5.5 ở mức effort high cùng một checklist cố định:
Here is decompiled pseudocode for a function with 147 cross-references.
1. Rename every variable based on how it is used.
2. State the function's purpose in one sentence.
3. List the data structures it reads and writes.
4. Name the pattern (singleton, factory, state machine, observer).
5. Flag missing error handling, validation or security checks.
Mark anything you're unsure of instead of guessing.
Các decompiler có thể sai chi tiết. Trong showcase DX-Ball của REA, pseudocode đầu tiên cho thấy một hàm pan âm thanh không nhận đầu vào nào. Chỉ có chế độ xem instruction mới tiết lộ tham số. Bản tái tạo C cuối cùng vượt qua 3.205 test case x86 gốc và tái tạo toàn bộ 63 byte hàm đã biên dịch, bởi vì agent đã đối chiếu chéo pseudocode với assembly và các caller. Hãy yêu cầu rea instructions khi một signature trông lạ.
Bước 6: Lập ngân sách cho mã obfuscate, đừng cày nó
Đây là chỗ khóa học lan truyền cần chỉnh sửa. Nó dẫn benchmark obfuscation của Elastic Security Labs như một phép thử cho “Claude Opus”. Nghiên cứu của Elastic, công bố ngày 21 tháng 4 năm 2026, đã thử Claude Opus 4.6, không phải Opus 5.5. Các con số:
| Pha Tigress | Đã giải được |
|---|---|
| Không transform | 1 trên 1 |
| Transform đơn | 4 trên 6 |
| Transform ghép đôi | 3 trên 6 |
| Nặng, nhiều lớp | 0 trên 6 |
Tổng cộng, Opus 4.6 giải được 8 trong 20 mục tiêu có thể đánh giá (40%). Các ca thành công tốn trung bình $2,39 và các ca thất bại $4,83, vậy một thất bại tốn khoảng gấp đôi một thành công. Hãy coi đây là mức sàn, không phải phép đo cho Opus 5.5; chúng tôi không tìm thấy tài liệu tương đương nào được công bố cho 5.5.
Thứ hai, khóa học nói rằng một công cụ tên Caveman “loại bỏ khoảng 75%” rác trong mã decompile. Elastic mô tả Caveman là một plugin cắt giảm độ dài dòng của chính model tới 75%, không phải một bộ lọc mã decompile.
Bài học vẫn đúng: hãy giới hạn chi phí cho mỗi hàm bị obfuscate, yêu cầu một điểm tin cậy từ 1 đến 10, và tạm gác mọi thứ dưới 6 cho đến khi các hàm lân cận được giải quyết.
Bước 7: Chia các mục tiêu lớn thành một controller và các worker
Một cuộc trò chuyện không thể chứa 500 hàm; nó sẽ quên tên và tự mâu thuẫn. Cách khắc phục trong khóa học là một controller không bao giờ phân tích mã và các worker, mỗi worker đảm nhận một hàm:
Controller: The function map is in functions.json (address, name, size, xrefs).
Cluster functions by call-graph proximity, order clusters by xref count,
send each cluster to a worker, inject already-resolved struct names into every
brief, and queue a second pass for any result with confidence below 6.
Report token spend after each cluster.
Mỗi worker trả về địa chỉ, mục đích, điểm tin cậy từ 1 đến 10, các struct mà nó dùng hoặc tìm được, và mã nguồn sạch, tái sử dụng tên struct của controller. Benchmark của Elastic cũng chạy theo cùng hình dạng controller và worker này.
Bước 8: Viết một spec chỉ mô tả hành vi trong một context sạch
Một bản clean-room rebuild sao chép những gì phần mềm làm, không bao giờ sao chép mã của nó. Hãy yêu cầu Opus viết một spec chỉ mô tả hành vi: giao diện công khai, mô hình dữ liệu, từng tính năng như một yêu cầu có thể kiểm thử, định dạng file theo các chuẩn công khai, và xử lý lỗi. Cấm địa chỉ, tên đã decompile và bất cứ thứ gì bị sao chép.
Sau đó triển khai từ spec đó trong một context khác, nơi không bao giờ nhìn thấy phần phân tích. Sự tách biệt đó chính là ranh giới clean-room. Đây là thực hành kỹ thuật, không phải lời khuyên pháp lý.
Bước 9: Khôi phục hợp đồng API và kiểm thử nó bằng Apidog CLI
Các chuỗi ở Bước 4 thường tiết lộ một base URL và một auth header, nên một phần hành vi nằm sau một API. Bản rebuild của bạn chỉ khớp nếu nó cũng tuân thủ hợp đồng đó, và traffic cho thấy điều đó nhanh hơn assembly.
Ghi một HAR trên tài khoản test do bạn sở hữu, và để REA tóm tắt nó:
rea inspect-web-network-capture /absolute/session.har har --json
Sau đó để agent của bạn biến bản ghi đó thành một hợp đồng đã được kiểm thử bằng Apidog CLI. Thiết lập một lần:
npm install -g apidog-cli@latest
apidog auth login --with-token <YOUR_TOKEN>
apidog skill install
Đưa cho agent một prompt:
Import session.har into Apidog project <id>. List the endpoints it created,
remove anything that isn't part of [FEATURE], and write one test case per
endpoint that asserts status code, required fields and response schema.
Run them against the original-service environment, then against my rebuild's
environment, and report every endpoint where the two disagree.
Agent sẽ chạy import, kiểm tra hình dạng payload trước khi viết, và chạy cả hai môi trường:
apidog import --project <id> --format har --file ./session.har
apidog endpoint list --project <id>
apidog cli-schema get test-case-create
apidog cli-schema validate test-case-create --file case.json
apidog test-case create --project <id> --file case.json
apidog test-case run --project <id> --endpoint <endpointId> -e <originalEnvId> -r cli,json
apidog test-case run --project <id> --endpoint <endpointId> -e <rebuildEnvId> -r cli,json
Cùng các test case, hai môi trường, một diff, có thể chạy lại trên mỗi commit với -r junit (xem hướng dẫn Apidog CLI CI/CD của chúng tôi). Nếu bạn muốn điều khiển nó từ Claude Code, xem Apidog CLI trong Claude Code. Gói miễn phí của Apidog bao gồm tối đa 4 người dùng. Với cách làm thủ công, xem reverse engineering API.
Bước 10: Chứng minh parity trước khi phát hành
“Tôi nghĩ nó khớp” không phải là bằng chứng. Với hành vi cục bộ, hãy yêu cầu Opus xây một harness đưa cùng các đầu vào cho bản gốc và bản rebuild:
Generate 50 inputs: 30 normal, 10 edge (empty, max size, unicode), 10 error
(malformed, missing fields, corrupt). Run each through both programs. Compare
byte-for-byte where possible, semantically otherwise. Report the match rate and
every divergence as cosmetic, behavioral or critical.
Với lượt chạy API ở Bước 9, bạn có hai con số để cho bất kỳ ai xem: tỷ lệ khớp cục bộ và tỷ lệ khớp API. Hãy kiểm thử ngay khi xây, không phải ở cuối.
Câu hỏi thường gặp
Reverse engineering với Opus 5.5 có hợp pháp không? Điều đó phụ thuộc vào thẩm quyền pháp lý của bạn, giấy phép và mục đích của bạn. REA hỗ trợ nghiên cứu hợp pháp, giáo dục, khả năng tương tác, bảo tồn và phân tích phần mềm bạn sở hữu hoặc được phép kiểm tra. Hãy nhận tư vấn pháp lý trước khi phát hành một bản rebuild vì mục đích thương mại.
Tôi nên dùng mức effort nào cho reverse engineering? Bắt đầu ở medium cho định tuyến và recon, high cho việc chú thích hàm, và để dành max cho mã bị obfuscate với một ngân sách theo từng hàm. Opus 5.5 mặc định là medium.
Claude xử lý binary bị obfuscate tốt đến đâu? Benchmark công khai duy nhất, từ Elastic Security Labs, đã thử Opus 4.6: giải được 40% trong 20 mục tiêu Tigress và 0% với các mục tiêu nặng nhiều lớp. Chưa có bài kiểm thử tương đương nào cho Opus 5.5 được công bố.
Làm sao để kiểm thử API mà một ứng dụng đã reverse engineer sử dụng? Ghi một HAR trên tài khoản test, import nó bằng apidog import --format har, tạo các test case bằng Apidog CLI và chạy chúng trên cả dịch vụ gốc lẫn bản rebuild của bạn.
REA có tải binary của tôi lên không? REA chạy phân tích cục bộ. Chỉ những phát hiện mà agent của bạn chuyển cho model (chuỗi, pseudocode) mới tới nhà cung cấp model của bạn.
