Wink Pings

The 440K-star reverse-engineering MCP: don't trust the explanation first; see where it points

REA connects agents like Claude Code and Codex to binaries, Electron, .NET, APKs, and websites, claiming to explain how features are implemented. The tweet says 440K stars, while the README says 400K stars. The community is already asking about obfuscated binaries, context overhead, and misinterpretations. Testing it on an app you wrote yourself is more useful than looking at star counts.

An MCP server called REA is being promoted on X. The tweet says it lets agents like Claude Code, Codex, and Antigravity take applications apart and explain them down to the binary level. Its GitHub star count is listed as 440,000.

REA tweet image

The repository is on GitHub, the npm package is called rea-agents, and the official website is rea.tools. The README says MIT license, while the tweet says 100% Open Source.

Set the star count aside for now. The tweet says 440,000, while the star-history section of the README says thanks for 400,000 stars. One reply mentions that the repo has about 1,700 open issues; this number comes from the user Jas, not official statistics. Stars can grow quickly, and explanations can be wrong just as smoothly; these two things should be looked at separately.

What pain points does it solve? You see a feature you want to replicate in your own product, but there's no source code; you inherit an old internal tool no one dares to touch; you chase a crash but can't read the binary; a mobile app leaves an API key in the package; a desktop app loses a column when exporting CSV and you can't find where it was lost. The last scenario is exactly what Justice U asks about in a reply.

REA connects the agent to a set of inspection tools. Targets include native binaries, JavaScript and Electron apps, .NET assemblies, websites, Android APKs, firmware, model files, SQLite databases, WASM, EVM bytecode, and more. Analysis runs locally, and results include evidence and limitations. The README explicitly states that static JavaScript and .NET inspection only reads files and does not run the application; runtime capture will run or interact with the target with your user permissions.

REA launches an analysis bridge in Hopper to inspect a native binary

Installation isn't complicated. Install Node.js and npm, then run:

npx rea-agents setup

Choose an agent, review the configuration it wants to change, approve it, and restart the agent. For native analysis, you can reuse an existing Hopper, Ghidra, IDA, or Kuna; static JavaScript analysis does not require a native analysis engine. The CLI can also run directly:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

Native analysis requires configuring a provider first. You have to sort out commercial tool licenses yourself. The README is very direct: authorization for IDA Pro, Hex-Rays, Hopper, and JEB must be obtained legally, and REA does not provide licenses, keys, or activation.

REA investigation flow: the agent asks questions, REA inspects and traces, and the agent uses the returned code, references, and unknowns to explain, implement, and test

How it works is no mystery. The agent calls REA through MCP to inspect the target and trace related code, and REA returns findings and evidence. The agent uses these results to ask follow-up questions, explain behavior, or write an implementation and test it. The CLI follows the same process.

Context overhead is a real problem. Aakash Pawar asks how large the content returned to the agent at the binary level is. Ofek Shaked worries that the tool descriptions alone take up half the window. The README says MCP uses a compact input schema by default to reduce context overhead, and the full output schema is enabled by default; if the client can't handle the tools/list frame, you can switch to compact or disable the output schema. How much it actually takes depends on the registered tool list and a real analysis run.

REA case studies: DX-Ball sound panning, Notion clipboard bridge, TH04 bullet ring

The README provides several case studies. In DX-Ball, it investigates sound calls, follows a position-to-panning helper, examines instructions, and turns incomplete pseudocode into C. The reconstruction passes 3,205 original x86 test cases and reproduces the bytes of all 63 compiled functions. In the Notion case, it traces the Electron clipboard bridge from the renderer's clipboard API through preload, IPC, and the main process, inspecting rich clipboard formats. In the TH04 case, it examines 16-bit instructions in a PC-98 game, recovers fixed and aiming angle calculations, and compares them with historical compiler output. The case studies page is at showcase.

It can also take recorded web app sessions and build RL environments, turning API requests and responses into tools the agent can call, and run them with AgentEnv. The guide is here.

The doubts also need to be laid out. Harry Tandy asks whether it still works on packed or obfuscated binaries, or whether it only works on clean builds. Invariant asks whether it can explain stripped binaries. These two questions determine its real-world ceiling. John Rood puts it more directly: the useful output is not the explanation; it's the address. Wrong explanations and correct explanations read equally smoothly, so make the agent state which function it is pointing to, then verify. Gaurav Bhowmick suggests auditing the star count first, then testing it on an app you wrote yourself to see what it gets wrong.

There are also security recommendations. Mohammad Vazin says to put it in a disposable VM, not on a laptop that stores SSH keys. The reason isn't complicated: point an agent at an unknown binary, and sooner or later it will want to execute it to see the behavior. The README also distinguishes static inspection from runtime capture: the former reads files, while the latter runs or interacts. Putting unknown targets in an isolated environment is not an excessive rule.

The star-history chart is here:

REA GitHub star history

If you want to try it, don't start with the most complex closed-source software. Take an app you wrote yourself, or that old tool no one maintains, and run it in a VM. Ask it how one specific feature is implemented, and require it to provide function names, addresses, evidence, and unknowns. Explanations can be wrong; addresses and evidence can be checked. Star counts are not evidence.

发布时间: 2026-11-10 19:31