Anti-REA: Harden apps against AI reverse engineering
Assess software exposure to AI reverse engineering, apply compatible defenses, and measure the results. Anti-REA helps teams compare release artifacts before and after changes using REA (reverse-engineering agent) analysis and behavior checks.
Use it with an AI assistant through the portable Skill or MCP server, or run the same workflows from the terminal. Anti-REA shows applicable options and trade-offs before execution, keeps the original project intact, and reports evidence from the candidate.
Try it with an AI assistant
With the Anti-REA Skill or MCP server available to your assistant, try:
Inspect this app with Anti-REA. Show me what the release exposes, the compatible hardening options, and their trade-offs. Ask me to choose before making changes. Then verify the selected candidate against the same baseline and report the results.
Anti-REA presents evidence-backed options before execution and waits for the user's plan-bound choice. Available actions depend on the target and the adapters that can verify it.
See example results
| Example | What Anti-REA did | Result |
|---|---|---|
| Foodie Flutter app | Built an obfuscated Flutter 2.5.3 candidate and checked it with REA 6.8.0, an Android cold launch, and signature verification. | One accepted run. The generated report shows BEFORE/AFTER artifact hashes and checks. Behavior coverage is one cold launch. |
| Simple To-Do List | Captured a browser baseline, ran a REA summary, and prepared a BLA (Blind LLM Agents) plan for a small JavaScript app. | Plan is review-only; no candidate was executed. |
These examples show specific workflow results. They do not prove that an app is protected from all reverse engineering.
How Anti-REA works
- Inspect the target and capture a BEFORE release baseline.
- Present compatible defenses, expected benefits, trade-offs, and verification requirements.
- Wait for the user to choose actions in a plan bound to its exact hash.
- Apply the selected actions to an isolated candidate.
- Compare the candidate with the unchanged baseline. Accept only if required checks pass; otherwise reject and retain rollback evidence.
Reports show artifact identities, check results, and candidate outcomes. A successful build alone is not evidence of protection.
What Anti-REA does
| Workflow | What it does | Evidence boundary |
|---|---|---|
| Assess | Inspect a project, identify release artifacts, and capture a BEFORE baseline. | Discovery is bounded and does not infer a complete build graph or runtime behavior. |
| Plan | Compare available hardening options, trade-offs, checks, and rollback steps. | A user must approve the exact plan before execution. |
| Evaluate | Build an isolated candidate and compare it with the same baseline. | Applicable actions and checks depend on the target and verified adapters. |
| Report | Show BEFORE/AFTER identities, verification results, and acceptance status. | Evidence applies to the tested artifact, environment, and behavior scope only. |
The repository currently includes selected adapters for JavaScript, Flutter Android, WebAssembly, browser behavior, and Python dependency workflows. This is today's implementation set, not the limit of the product's intended platform coverage. See the adapter guide and acceptance audit for exact status and open blockers.
Set up
Install the portable Skill in an application project with the standard community installer:
npx skills add tamkimd/anti-rea --skill anti-rea
Choose your agent and installation scope when prompted. See harness setup for Codex, MCP, and other host options. To use Anti-REA directly from the terminal, install Python 3.11 or newer and the published PyPI package:
python3 -m venv .venv
. .venv/bin/activate
python -m pip install anti-rea
anti-rea doctor
Then inspect a project without executing it:
anti-rea inspect /path/to/project
Start the MCP server with anti-rea mcp serve. Set ANTI_REA_STATE_DIR to keep local workflow records outside the target project. See CLI usage for commands and options.
Security and limitations
- Anti-REA keeps source and candidate files separate, but a private copy is not automatically a security sandbox.
- Supported Node and pinned REA/BLA lanes use the configured Docker profile by default. The Docker daemon is trusted, and staged output has no live disk quota.
- Host-run commands and project-provided browser tests may execute with the user's privileges. Run workflows only for projects and dependencies you trust.
- Keep state, raw reports, release artifacts, debug symbols, screenshots, caches, and secrets outside the source checkout.
- Blind LLM Agents (BLA) defenses and obfuscation can increase analysis effort; neither encrypts client code or prevents determined reverse engineering.
See execution boundaries, the release workflow, and the acceptance audit.
Development
python -m unittest discover -s tests -p 'test_*.py'
python -m pip install -e '.[dev]'
ruff format --check .
ruff check .
More
Metadata
Release files for anti-rea 0.1.33
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| anti_rea-0.1.33.tar.gz | 993.0 kB | With provenance | Details for anti_rea-0.1.33.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| anti_rea-0.1.33-py3-none-any.whl | Python 3 | none | any | Details for anti_rea-0.1.33-py3-none-any.whl |
Total release size: 2.0 MB
Release files / anti_rea-0.1.33.tar.gz
| Download URL | anti_rea-0.1.33.tar.gz |
|---|---|
| Size | 993.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1a85751451a108b7470d8724e478abfc9c080245c91ea991d47cbc1065c7889e
|
|
BLAKE2b-256 checksum How to use checksums |
4da4d914c2bc2d681aae3ff9a69a4f9e4a87658743e6dd0aba479f29fa4a4f44
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / anti_rea-0.1.33-py3-none-any.whl
| Download URL | anti_rea-0.1.33-py3-none-any.whl |
|---|---|
| Size | 973.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
54404e098279c196c7835a01c85f72bf0a77457f5a2b61df44c0a7ee2907f0ab
|
|
BLAKE2b-256 checksum How to use checksums |
3f4e027457e3404fcce14ccf0b9fe192bf0e677c09b75a5afbadae65eadce37a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logSecurity for anti-rea 0.1.33
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for anti_rea-0.1.33.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.