Protect Build Artifacts.
Disrupt Automated Reverse Engineering.
One MCP server and CLI for auditing, protecting, and verifying JavaScript, Electron, WebAssembly, Python, SQLite, AI Models, and Native Binaries against AI reverse-engineering workflows—while preserving 100% of original runtime behavior.
npx bla-agents@latest setup && npx bla-agents@latest harden .
Unprotected Baseline vs. Protected with BLA (`bla-agents`)
Select a target format below to see how npx bla-agents harden changes static analyzer output, resource budget consumption, and reconstruction status.
View Baseline Static & Semantic Output
View Protected Analyzer Output
Three Defense Layers Aligned with Analyzer Internals
Rather than relying solely on identifier renaming, BLA targets the static resource limits, call-graph traversal budgets, and evidence rules used by automated reverse-engineering tools.
Saturate Static & Semantic Limits
Triggers analyzer admission caps (primitive-candidates > 256, alias-selections > 512, primitive-bytes > 1 MiB) and expands ReconstructionObligationPolicies across strongly connected call-graph meshes.
Demote Real Paths, Surface Decoy Logic
Demotes core business logic to status: "unknown" under static inspection while presenting self-consistent shadow state machines, enclave delegation metadata, and decoy source maps.
MCP Server, CLI & Bundler Plugins
Run npx bla-agents setup to register with Claude Code, Cursor, Codex, Windsurf, or Gemini CLI, then run the 5-stage protection pipeline with bla_harden or npx bla-agents harden.
Full-Stack & Binary Coverage, Zero External Dependencies
Every static, bytecode, database, model, and binary protection pass runs locally in Node.js 22.13+ / 24+.
Web & Node Bundles
Opaque ternary guards, dynamic alias selectors, call-graph state machines, decoy SourceMaps, and Vite/Webpack/Rollup/esbuild plugins.
Desktop Applications
De-literalizes IPC channels, adds duplicate decoy handlers, hardens Electron V1 Fuses (RunAsNode=0), and exceeds the 32-sentinel scan limit.
Native Binaries
Exceeds MAX_RUSTC_HASHES = 64, adds decoy .dep-v0 & Go buildinfo metadata, and emits C/C++, Rust, and Go compile-time headers.
.wasm & .py / .pyc
Expands WABT interface descriptors, adds custom decoy sections, and appends CPython marshal constant-pool entries.
.sqlite, .safetensors, .gguf
Adds virtual generated-column guards on read-only snapshots and exceeds 32-level JSON/GGUF metadata nesting limits.
DEX, APK & IL2CPP
Appends decoy DEX string descriptors with recomputed SHA-1/Adler32 headers and adds decoy metadata entries in Unity global-metadata.dat.