Anti-BLA
Provides inspection of Electron artifacts, including distinguishing real fuse hardening from appended fake wires and recovering known-range bytes with explicit input allowances.
Provides inspection of Flutter AOT artifacts, including targeted snapshot metadata and typed labels where recoverable, while preserving unknown results.
Provides bounded static inspection of JavaScript artifacts, including selected export roots, conservative primitive and predicate facts, digest proofs, explicit unknowns, and inspection-only normalization.
Provides bounded inspection of SQLite databases, exposing tables and physical stored fields with format-specific validity boundaries.
Provides bounded static inspection of TypeScript artifacts alongside JavaScript, including export roots, facts, digest proofs, and inspection-only normalization.
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-BLAinspect app.asar and list the first 20 entries"
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.
In response to BLA
BLA adds obfuscation, decoys and analysis-exhaustion payloads to artifacts. Anti-BLA is a practical response: keep the original bytes intact, inspect a bounded part of the artifact, and attach evidence to the result.
Use it to recover selected JavaScript facts, navigate amplified ASAR headers, inspect native and data structures, and prepare inspection views for REA. Original hashes, source ranges, assumptions and incomplete results stay visible.
v0.1 is a research preview. Recovery claims apply to the measured tasks. A parser limit, an embedded claim or a successful inspection does not establish complete semantic recovery.
Related MCP server: Fathom
Works with REA
Anti-BLA is a companion to REA — Reverse Engineer Anything by morluto. REA provides the broader reverse-engineering tools; Anti-BLA adds bounded inspection and evidence for selected BLA-protected artifacts. Your agent can use both together.
Install REA using its official setup guide.
Add Anti-BLA's MCP server and agent skill using the setup below.
Inspect the artifact with Anti-BLA, then pass a verified inspection view to REA when needed.
The v0.1 handoff was verified against REA 6.8.0, pinned to 317bf3f. See the measured results for the tested scope.
Quick start
Requires Node.js 24.16+. REA is installed separately; the research comparison used its supported Node.js 24.22.1 runtime.
git clone --branch v0.1 https://github.com/juniper234/anti-bla.git
cd anti-bla
npm ci --ignore-scripts
npm run build
node dist/cli.js --helpInspect the included benign example without executing it:
node dist/cli.js inspect-javascript examples/routes.mjs --root examples --entry-export register --section factsPoint an operation at your own artifact with an explicit allowed directory:
node dist/cli.js inspect-artifact /path/to/app.asar --root /path/to
node dist/cli.js inspect-asar /path/to/app.asar --root /path/to --limit 20
node dist/cli.js read-asar-entry /path/to/app.asar --root /path/to --member-path package.json --length 1024Precompiled packages are available from the v0.1 release. Install the downloaded tarball into a directory you own:
npm install --prefix ./anti-bla-tool ./anti-bla-0.1.0.tgz --ignore-scripts --omit=dev
node ./anti-bla-tool/node_modules/anti-bla/dist/cli.js --helpWhat it does
Capability | What you get |
JavaScript / TypeScript | Selected export roots, conservative primitive and predicate facts, digest proofs, explicit unknowns and inspection-only normalization. |
ASAR | Bounded header admission, indexed member selection and exact packed bytes with original coordinates. |
Native binaries | Conservative ELF, PE and Mach-O mappings, entrypoint coordinates and bounded metadata observations. |
WASM / SQLite / models | Selected code/type bytes, physical stored fields and tensor data with format-specific validity boundaries. |
Artifact provenance | SHA-256, byte-addressed views, untrusted-content labels and reproducible evidence identities. |
REA handoff | Optional bounded JavaScript sidecars, fixed filenames for each loader, exclusive creation and verifiable completion evidence. |
Default clients are read-only. Inputs are inspected statically; target imports, getters, functions and build hooks are never executed by the companion.
Operation | Selection |
| Effective limits and advertised operations |
| Identity, format and bounded metadata candidates |
| Original byte offset and length |
| Bounded listing or a named packed member |
| Export, facts, roots, effects, unknowns or digest proofs |
| Bounded derivative bytes and change-map identity |
| Native structure and executable ranges |
| Export, signature and selected body bytes |
| Table and physical stored fields |
| Tensor selection and stored values |
| Optional; requires an explicit existing workspace |
CLI operation names use hyphens: inspect-javascript, read-asar-entry, etc. Use bare --help and discover the configured operation set with capabilities --root <directory>.
What the evidence says
The research pins are BLA 1.5.1 / b2d6436 and REA 6.8.0 / 317bf3f. The source inventory covers 51/51 shield files. Inventory coverage is distinct from recovery coverage.
Experiment | Observed outcome |
Selected JavaScript call task | 12 tool-pipeline recovery improvements across three seeds and four BLA intensities; 400 contained business checks. |
Fresh-agent comparison | All three lanes—clean + REA, protected + REA, protected + Anti-BLA + REA—completed their selected tasks. No incremental agent recovery win was established. |
Amplified ASAR headers | Documented admission and bounded member reads recover exact packed bytes; application semantics remain a separate question. |
Genuine Electron | Real fuse hardening is distinguished from appended fake wires. Known-range byte views recover the real wire with an explicit input allowance; runtime enforcement remains unverified. |
Genuine Flutter AOT | Targeted snapshot metadata succeeds in 3/3 builds. Exact typed labels are 2/3; the third remains |
Other formats | Several existing REA or official-tool baselines already succeed. Those outcomes stay baseline successes. |
The initial research workspace passed 348 tests and received independent code, security and evidence reviews. This public release separates 326 portable tests from 22 opt-in research tests that require the original providers and retained raw evidence. Public validation details are recorded in the release summary.
Read the coverage matrix for partial results, damaged GGUF assumptions, source-map information loss, default size refusals, unmeasured memory/cost and other UNKNOWN boundaries. The research notes explain provenance and reproduction.
MCP + agent skill
Generate a concrete configuration for your client:
node dist/cli.js setup --root /absolute/path/to/artifacts --dry-runThis returns absolute server and skill paths. It writes no client settings. The stdio command is:
node dist/cli.js serve --root /absolute/path/to/artifactsThe package includes local Codex and Claude plugin manifests plus the agent skill. A trusted client can set ANTI_BLA_ARTIFACT_ROOT for the plugin launcher; its fallback is the client's trusted working directory. Explicit roots make the scope easiest to review.
For inspection sidecars, supply an existing directory you own:
node dist/cli.js prepare-javascript-view /path/to/app.mjs --root /path/to --workspace /path/to/views --entry-export registerRequire a successful response, complete evidence and matching view/evidence hashes before handing the returned directory to REA. Interrupted or uncertain outputs remain UNKNOWN. Follow the sidecar contract; inspection files are never executable-equivalence claims.
Bounds you can see
Default | Bound |
Input | 64 MiB; validated overrides have a 256 MiB hard ceiling |
Result JSON | 64 KiB; separate MCP wire-frame enforcement |
Raw byte view | 4,096 bytes |
Request deadline | 5 seconds |
Worker old-generation heap | 128 MiB |
Active analyses | One per service |
Adapters retain their own structural caps. Worker heap limits do not bound total process RSS, and filesystem identity checks do not provide an OS sandbox against hostile concurrent writers. ok means the stated bounded operation completed; incomplete coverage and equivalence remain separate. CLI exit codes are 0 for ok, 3 for unknown, and 2 for error.
Development
npm test # portable source suite; no research checkout required
npm run test:research # explicit provider/evidence prerequisitesThe research suite fails explicitly when its prerequisites are absent. Missing providers and excluded research tests never count as passed. Controlled dynamic research fixtures run only in disposable containers; the shipped companion performs static inspection.
Documentation
Guide | Contents |
Measured outcomes and unresolved scope | |
Pins, test separation, reproduction and evidence handling | |
All 51 BLA modules and their source references | |
Inspection APIs and recovery boundaries | |
Structural views and selected data tasks | |
Electron and Flutter qualification | |
Explicit workspace, completion and handoff rules |
MIT licensed. See LICENSE and third-party notices.
This server cannot be deployed
Maintenance
Related MCP Connectors
Browser-local and CLI static evidence for deployed AI model artifacts.
Scans untrusted web pages, emails, MCP responses, or A2A payloads for hidden prompt injections an.
Read-only verifier for 25 ProofRelay MCP tools and non-confidential evidence bundles.
Signed sandbox verdicts on any artifact, plus an agent marketplace. No key, no signup, no payment.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables agents to inspect and reverse engineer native binaries, JavaScript/Electron applications, .NET assemblies, websites, and runtime behavior, returning evidence-backed findings that can be explained, implemented, or tested.553,305 npm3MIT
- AlicenseNot gradedqualityAmaintenanceEnables agents to reverse engineer native binaries, JavaScript/Electron applications, .NET assemblies, web captures, EVM bytecode, and process behavior through a provider-neutral MCP interface. Every result is an evidence envelope stating what was observed, derived, unexamined, or unprovable, with all capabilities gated by a deterministic fail-closed policy engine.Apache 2.0
- AlicenseNot gradedqualityNot gradedmaintenanceEnables MCP-compatible AI assistants to inspect local application internals by analyzing JavaScript/Electron/ASAR and .NET artifacts, tracing dependencies, interfaces, and data flows, and preserving traceable evidence.14MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents (and a matching CLI) to inspect native binaries, JavaScript/Electron apps, .NET assemblies, Go/Rust/WASM artifacts, EVM bytecode, SQLite databases, recorded crashes, and websites without source code, explaining how features work and returning the evidence and limitations behind each conclusion. Analysis runs locally, using optional Hopper, Ghidra, or IDA providers for native targets.553,305 npmMIT