Anti-REA
Built-in format reader that surfaces declared Erlang container metadata exposed by shipped BEAM artifacts so it can be reviewed and mitigated.
Built-in JavaScript reader that detects source maps and module graphs in a package and reports the original sources recoverable from them.
Built-in managed assembly reader that extracts .NET metadata and CIL facts, including assembly attributes and a member inventory, from shipped artifacts.
Built-in reader for Python bytecode (.pyc) containers that reports format flags and declared metadata; these findings are reported without a mitigation because the runtime requires them.
Built-in Rust reader that inspects embedded dependency metadata (.dep-v0) in shipped artifacts, reporting crate names, versions, and dependency edges so they can be audited and hardened.
Built-in format reader that reports the declared metadata and record totals carried by SQLite database containers embedded in or shipped alongside an artifact.
Built-in Unity IL2CPP metadata reader that identifies recoverable type and method names exposed by a shipped Unity build, letting the audit flag them for mitigation.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Anti-REAaudit my app at /srv/app and tell me what it leaks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Anti-REA
An MCP server for hardening your own software against agent-driven reverse engineering
Audit what your shipped artifacts leak. Apply mitigations. Verify the result.
English · 简体中文
Zero-dependency Node.js. Everything runs locally.
REA (Reverse Engineer Anything) and similar MCP-based toolchains let an AI agent inspect a shipped binary, package, or application without its source code, explain how a feature works, and build a version of it. That drives the cost of understanding software you ship close to zero.
Anti-REA is the counterpart for the defender. It is an MCP server — with a command-line interface sharing the same workflows — that hardens your own project before it ships:
audit_artifact: what a shipped artifact exposes to the readers and engines such tools use, with the evidence and source range behind every fact
harden_artifact: apply the mitigations the tool can apply, and report the ones that need external tools or an architectural change
verify_artifact: confirm the mitigations hold
generate_notice: truthful license and no-reverse-engineering text for your artifact's own README, so an investigating agent meets your terms as data at the moment it checks authorization
Use it on software you own or are authorized to protect.
This project is under active development. The interface below is the contract the test suite enforces.
Connect your agent
Register the server with any MCP-capable agent (Claude Code, Cursor, Codex, and others):
{
"mcpServers": {
"anti-rea": {
"command": "node",
"args": ["/absolute/path/to/Anti-REA/bin/anti-rea-mcp.js"]
}
}
}Then ask your agent: audit my app at /path/to/app and tell me what it leaks.
Related MCP server: FEA
Quick start from the terminal
node bin/anti-rea.js audit /absolute/path/to/your/app --json
node bin/anti-rea.js harden /absolute/path/to/your/app --from audit.json
node bin/anti-rea.js verify /absolute/path/to/your/app
node bin/anti-rea.js notice --template license > NOTICE.md
node bin/anti-rea.js probe /absolute/path/to/probe-kit-outputThe probe command writes an integration package for the runtime observation
resistance layer: embeddable detection snippets for observable facts, plus a manual
checklist. It writes only to the directory you name and never modifies your artifact.
The same package is available to agents as the generate_probe_kit tool.
What the audit reports
Exposure | Who reads it | What audit reports |
ELF/PE/Mach-O headers, sections, symbols, build IDs | Built-in static readers, objdump | Every fact a reader can extract, with its source range |
Embedded Go module and build metadata | Built-in Go reader | Presence, versions, and the section that carries them |
Embedded Rust dependency metadata ( | Built-in Rust reader | Crate names, versions, and dependency edges |
Unity IL2CPP metadata | Built-in IL2CPP reader | Recoverable type and method names |
.NET metadata and CIL | Built-in managed reader | Assembly facts and member inventory |
JavaScript source maps and module graphs | Built-in JavaScript reader | Recoverable original sources |
PE certificates, imports, exports, load config | Built-in PE readers | Signer identity and declared imports |
Model, SQLite, Erlang, pyc and other container metadata | Built-in format readers | Declared metadata and totals |
Each finding carries its evidence, the reader that would consume it, and the mitigation that removes it.
Protect your audit outputs
An audit report is a map of your artifact's exposures and the mitigations applied.
Committing it to version control, or shipping it inside the artifact, hands that map to
anyone who reads the repository. Anti-REA writes a warning to standard error when an
output path is inside a git working tree. Use --redacted when a report must be shared
with a contractor, an auditor, or a disclosure program: it keeps categories and counts
and omits exact paths, byte ranges, and the mitigation mapping. Generated notices
contain no reference to Anti-REA and no hint of your hardening state.
Defense layers
Layer | Tool | Expected effect | Residual risk |
Metadata hygiene |
| Built-in readers return unknown instead of facts | A new reader can target a new format; plain string search still finds module names and versions in read-only data |
Content protection |
| Static decompilation sees stubs, not the program | Runtime dumping recovers unpacked code |
Runtime observation resistance |
| Raises the cost of debuggers and instrumentation | Kernel-level observation is out of reach |
Agent stop-condition induction |
| The agent checks authorization with the human | The agent may ignore the notice |
Model-level truthful signals |
| The authorization question becomes unavoidable | Model behavior is probabilistic |
Secret minimization | Report recommendation | The only absolute layer | Requires server-side architecture |
Legal and operational |
| Contract and traceability do what bytes cannot | Enforcement is a legal process |
Known limits
Three limits were measured, not theorized:
Plain string search still works. Equal-length overwrites destroy metadata records such as Go build information and ELF symbol tables, but the module name, compiler version, and build settings also live in read-only data and the function name table, where the Go runtime reads them. Overwriting those bytes changes runtime behavior, so Anti-REA leaves them alone, and anything that runs
stringson a hardened binary still recovers them. Remove them at the source with build flags (-trimpath,-ldflags="-s -w",strip).Not every exposure has a mitigation. PE import tables, ELF header facts, and Python bytecode format flags are reported with no mitigation because the software needs them to run. The audit says so instead of inventing a measure.
Token patterns cover known formats only. The scanner matches credential families with public formats. A token in a private format is invisible to it, and an empty result is not proof that no secrets exist.
Boundaries
Anti-REA does not do the following, by design:
No prompt injection. It never ships agent instruction files (
AGENT.md,CLAUDE.md,.cursorrules, and similar) into your artifacts, and never writes directives addressed to an AI agent. Notices are statements of fact addressed to a human reader and travel through data channels: README, LICENSE, NOTICE, version resources.No fabricated legal claims. Every line of generated notice text is a real term or a real, checkable fact. Inflated threats collapse the first time someone verifies them.
No harm to legitimate users. Mitigations never weaken your software's own operation. Runtime protections are opt-in per threat model, not defaults.
About this repository
Anti-REA is open source by design: its audit rules are public, it holds no secrets, and it
carries no attack payloads. The tool's value is automation and evidence, not secrecy — and
the one absolute defense layer, keeping secrets off the client, is unaffected by anyone
reading this code. What must never enter the repository is user-specific audit output,
which is why the tool warns about it and offers --redacted.
Verification
Every capability is covered by node --test with real fixture files, and the MCP surface
is smoke-tested over a standard stdio handshake:
node --test
node scripts/mcp-smoke.mjsDocumentation
License
MIT. Anti-REA is for protecting software you own or are authorized to protect. Third-party formats keep their own specifications.
This server cannot be deployed
Maintenance
Related MCP Connectors
Browser-local and CLI static evidence for deployed AI model artifacts.
- mcpOAuthco.policyforge
Generate, audit, and maintain legal policies that match what your code actually does.
Live behavioral security verifier, schema auditor, and trust oracle for A2A, MCP & x402 agents.
Preflight, approve, and prove consequential agent actions with signed evidence and x402 tools.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables agents to analyze software artifacts through 35 tools covering read-only reconnaissance, secret/string/symbol scanning, native and Dart AOT structure checks, exposure tiering, protection planning, attack-simulation design, and an append-only evidence ledger with mechanical verified gates that treat unresolved unknowns as blocking. Gated execution tools apply reviewed transforms only to a managed copy inside an authorized workspace, with one-time approval tokens, independent verification, before/after diffs, and rollback.MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to turn authorized software artifacts into verified working reimplementations through behavioral capture, clean-room synthesis, differential parity verification, and evidence-pack export. It supports CLI binaries and HTTP APIs, with policy controls and vector fuzzing.MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to locate core logic and surrounding clues, generate approved protection plans, apply obfuscation and virtualization through supported engines, and verify behavior and relative speed after protection. It helps defend binaries, applications, and critical logic against reverse-engineering analysis and cloning.7MIT
- AlicenseAqualityAmaintenanceEnables agents to probe URLs and classify bot-wall responses with vendor and signal evidence, perform offline classification, scan for exposed key-like material, and run owner-side access audits through stdio tools.40MIT