Skip to main content

Anti-REA: Harden apps against AI reverse engineering

Make shipped software harder to analyze—and measure what changed. Anti-REA helps teams assess application exposure, choose compatible hardening actions, and compare release artifacts before and after changes using REA 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 measured examples

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 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

Anti-REA hardening workflow: capture one fixed baseline, approve a plan, verify isolated candidates against the same baseline, and accept or revise with rollback evidence

  1. Inspect the target and capture a BEFORE release baseline.
  2. Present compatible defenses, expected benefits, trade-offs, and verification requirements.
  3. Wait for the user to choose actions in a plan bound to its exact hash.
  4. Apply the selected actions to an isolated candidate.
  5. 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. For direct terminal use, install Python 3.11 or newer:

python3 -m venv .venv
. .venv/bin/activate
python -m pip install .
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.
  • BLA and obfuscation can increase analysis effort; neither encrypts client code or prevents determined reverse engineering.

See execution boundaries, Anti-REA package signing, 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 .

Latest local verification: 447 tests passed, 28 optional skips.

More

Metadata

Release files for anti-rea 0.1.32

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for anti-rea 0.1.32
File Size Uploaded Provenance Actions
anti_rea-0.1.32.tar.gz 970.6 kB Without provenance Details for anti_rea-0.1.32.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for anti-rea 0.1.32
File Interpreter ABI Platform Actions
anti_rea-0.1.32-py3-none-any.whl Python 3 none any Details for anti_rea-0.1.32-py3-none-any.whl

Total release size: 1.9 MB

Release files / anti_rea-0.1.32.tar.gz

Download URL anti_rea-0.1.32.tar.gz
Size 970.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d8941066dd2227801278e1846740e5540ef556c33d7533a19f3dcff8bf76806a
BLAKE2b-256 checksum
How to use checksums
6ec94e6cbd523fc55f93cc6098d49e0519f3f6b9b9c6c4956b476b1d59e71c81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.18

Release files / anti_rea-0.1.32-py3-none-any.whl

Download URL anti_rea-0.1.32-py3-none-any.whl
Size 952.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eaf57c5ef6a61ea700ea4e7fb3c7a942d0653f368bc67b64dd0d4835b9c893dd
BLAKE2b-256 checksum
How to use checksums
bd703c5d42795e2d459b93aff4cdc317ae3e063cbf8a42f0057428ffda938b37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.18

Security for anti-rea 0.1.32

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A 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.

Release history Release notifications | RSS feed

This release

0.1.32 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page