BLA (Blind LLM Agents) vs. REA: Open-Source Tool Tries to Blind AI Reverse-Engineering Agents

BLA (Blind LLM Agents), an MIT-licensed tool by solo developer Timo Zhang (GitHub: qybaihe), hardens Electron, WebAssembly, JavaScript, Python and native builds against AI reverse-engineering agents such as REA by planting decoys, fake keys and inputs that trip analyzer limits. Its README claims 300×–2,800× more tokens for attackers — figures it labels internal estimates. The repo passed 3,900 GitHub stars by November 9.

Christopher Ort
By Christopher Ort · 6 min read
Share
A flashlight beam bounces through a hall of mirrors with a laptop on a stool in the foreground.
On this page
  1. Quick Take
  2. What happened
  3. Background: why REA made developers nervous
  4. How it works
  5. Pros and cons
  6. What X is saying
  7. Critical analysis
  8. What's still open
  9. About the analysis
  10. i10x Perspective

The open-source tool REA — “reverse engineer anything with agents” — lets AI coding agents unpack apps, trace their internals and reconstruct business logic in minutes. Now a solo developer has released the counter-move. BLA (Blind LLM Agents) modifies a program’s release build so that AI reverse-engineering agents hit their own resource limits, chase decoy code and fake credentials, and burn tokens — while, its author says, real users run exactly the same app. Viral threads over the weekend declared REA “bankrupt.” The repository’s own documentation is more careful, and that gap is the story.

i10X Quick Take

Quick Take

  1. What it is: An MIT-licensed CLI and MCP server (npm: bla-agents) that audits, “hardens” and verifies build artifacts — JavaScript bundles, Electron .asar archives, WebAssembly, Python, SQLite, model files and native binaries.
  2. How it works: “Poison → Exhaust → Hallucinate”: plant plausible decoys and canary keys, inflate artifacts past documented REA limits, and steer agents toward shadow logic.
  3. The claims: The README says hardened artifacts make analyzers burn “300×–2,800× more tokens,” and that 14 of 14 bundled benchmark targets pass runtime-equivalence checks. It labels the token and dollar figures “internal estimates.”
  4. The traction: Created on October 25, the GitHub repo had more than 3,900 stars and 480 forks by November 9, helped by near-identical promotional threads on X.

What happened

BLA has been public since late October, but it took off on X after November 7, when the account @0xCodila posted a setup guide headlined “REA (reverse engineer anything) – F*CKED by chinese student…” that drew about 6,000 likes. Several other accounts followed with almost the same wording. The developer, Timo Zhang (@xteam3301), who publishes as qybaihe on GitHub, described himself as a Chinese student and the project as “built solo.” He wrote that BLA reached “3,278★ in weeks” with 407 forks; GitHub’s API showed 3,937 stars and 485 forks on November 9. npm lists the latest version as 3.2.1.

The usage pattern in the threads is simple: install via npx, run npx bla-agents setup to register BLA with a coding agent such as Claude Code, Cursor, Codex or Gemini CLI, then npx bla-agents harden, and ship the files from the new .bla-hardened folder instead of the original build.

Background: why REA made developers nervous

REA (morluto/rea) describes itself as a tool to “reverse engineer anything with agents, from app behavior down to native binaries.” BLA’s README summarizes the threat from the defender’s side: AI reverse-engineering agents “unpack .asar archives, recover SourceMaps, trace IPC bridges, inspect .wasm / .sqlite / .safetensors, and clone core business logic in seconds for ~$0.20.” For makers of desktop apps, games and paid features shipped in client code, that turns reverse engineering from a specialist’s job into a one-command task.

Classic obfuscation does not help much. As BLA’s documentation argues, renaming variables to strings like _0x1a2b is something “modern LLMs effortlessly summarize.” Model-extraction and IP-protection questions have been a recurring theme on i10x, from AI model extraction defenses to this week’s Claude Code secrets leak.

How it works

BLA’s README describes four pillars. Poison plants “format-valid canaries,” fake enclave manifests, honey source maps and “plausible shadow state machines.” Exhaust deliberately trips the exact limits REA documents — for example a 16 MiB ASAR header limit or 32-level nesting for model metadata — so analysis downgrades from “COMPLETE” to “LIMITED” or fails. Entangle binds JavaScript, WebAssembly and native sidecars with runtime hashes so decoys cannot simply be stripped. A runtime layer detects debuggers such as Chrome DevTools Protocol or Frida and serves “believable synthetic telemetry.” A 24-vector matrix maps each REA source-code limit to a BLA countermeasure.

The decoy logic sits behind opaque predicates that always evaluate the same way at runtime, which is how BLA claims “100% runtime equivalence.”

FormatSize before → afterREA outcome after BLA (per BLA)
Electron ASAR607 B → 16.9 MiBCapacity error at the 16 MiB header limit
JavaScript761 B → 116 KiBBudget rejected (alias, getter, primitive limits)
WASM + Wabt54 B → 6.56 MiB, 251 exportsPartial interface decoding
SQLite (Node 24)12 KiB → 56 KiBEvaluation trap on virtual columns
Go buildinfo50 KiB → 1.16 MiBCapacity error at 1 MiB build-info limit
Safetensors128 B → 10.1 KiBCapacity error: JSON nesting over 32 levels

The table above lists results BLA reports from running the real REA against hardened samples. A separate 14-target “showcase” reports token multipliers from 105.6× to 2,822.7× (about 639.5× on aggregate); the README states those columns are “internal estimates derived from BLA’s catalog of REA limits.”

Pros and cons

For users

  • Pro: If it works as described, apps behave the same while competitors find it costlier to clone paid features.
  • Con: Hardened artifacts can grow dramatically — an ASAR from 607 bytes to 16.9 MiB in BLA’s own test — which may affect download size and startup.

For developers

  • Pro: Free, local, one command, with an MCP integration for common coding agents and bundler plugins for Vite, Rollup, Webpack and esbuild.
  • Con: Tests pass on 14 bundled fixtures; for real projects the README says to “run your project’s test suite.” Debugging hardened builds and handling crash reports from decoy code paths adds work.

For companies

  • Pro: Raises the cost of automated cloning of client-side logic, the cheapest attack REA enables.
  • Con: Defenses tuned to one tool’s published limits can be undone by a new REA release; anti-debugging and decoy credentials may also trip app-store review, security scanners or customers’ own audits.

What X is saying

The author himself pushed back on the hype in a reply: “BLA is Counter-REA (poison/exhaust/hallucinate against agent budgets), not classic human obfuscation. We don’t claim Ghidra/IDA sessions are bankrupt unless measured.” Skeptics were blunter; one user replied simply: “just rea the bla and bypass it lmao.”

Critical analysis

BLA is a clever idea with honest documentation and an overheated marketing wave. The repository is careful: it says token and cost figures in its showcase are estimates, that “empirically verified” refers only to the REA paths it ran, and that it is “not a claim about Ghidra/Frida/LLDB/Rizin/JADX sessions we did not run here.” The viral threads drop every one of those qualifiers. Many of them share the same template text — one even ends with the leftover line “Want a more aggressive, shorter, or more technical version? Just say,” a strong hint that it was pasted from an AI assistant.

Technically, BLA attacks the analyzer rather than the analyst. That is effective as long as REA keeps the same limits, and fragile once it doesn’t: raising a 16 MiB cap or ignoring files over a size threshold is a small patch. Decoys work against agents that trust what they read; a well-instructed agent — or a human — that verifies behavior at runtime may still get through, especially as BLA’s runtime shield only fools debugging tools it detects.

The bigger picture is an arms race in which both sides are open source and both are driven by AI agents. That favors whoever updates faster, and it means BLA’s protection is best seen as raising cost, not providing security. Anything truly secret — keys, pricing logic, license checks — still belongs on a server.

What’s still open

  • Will REA’s maintainers adjust limits or add decoy detection, and how quickly can BLA respond?
  • Do independent tests on real-world apps confirm runtime equivalence and acceptable size and performance overhead?
  • How will app stores and enterprise security scanners treat builds containing fake credentials and anti-debugging code?
  • Will commercial obfuscation vendors adopt “agent budget exhaustion” as a standard feature?

About the analysis

Researched and written with AI assistance under the editorial responsibility of the i10X News team. The title image is an AI-generated illustration. Read our AI Use Policy. Spotted an error? Request a correction.

This independent, research-based i10x analysis is based on the BLA GitHub repository and README (qybaihe/bla), the project’s website, GitHub and npm metadata retrieved on November 9, 2026, the REA repository description, and public posts on X from November 5–9. i10x did not run BLA or REA. Performance figures are the project’s own and partly labeled as estimates.

i10x Perspective

AI agents have made reverse engineering cheap, and BLA shows the natural response: make it expensive again by attacking the agent’s budget and trust. Expect this to become a product category — “anti-agent hardening” — alongside traditional obfuscation and code signing. But developers should read the README, not the threads. A defense tuned to one open-source tool’s published limits is a speed bump, and the only durable protection for valuable logic is not shipping it to the client in the first place.

Christopher Ort

Christopher Ort

Christopher Ort handles SEO, AI agent workflows and PR & partnerships at i10x.ai, the all-in-one AI workspace built by i10X Global Pte. Ltd. in Singapore. He is a graduate of Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU). He is the author of “The Style Penalty”, a study published on SSRN that analyses 1,576 evaluation decisions by four frontier AI models to show how AI-written CVs fare in automated hiring screens; the research has been covered by heise online and t3n.

Editor's picks

  1. BLA (Blind LLM Agents) vs. REA: Open-Source Tool Tries to Blind AI Reverse-Engineering Agents
  2. Coinbase CEO Brian Armstrong’s AI Agent Setup: A Chief-of-Staff Agent, Always-On Leads and One Review Queue
  3. OpenAI’s Navier–Stokes Proof: What the Lean Verification Does — and Doesn’t — Prove
  4. Gemini Krypton Leak: What’s Known About Google’s Rumored Checkpoint Said to Beat Gemini 4 Carbon
  5. Nous Research’s Hermes Agent Wins Over AI Builders: What the Open-Source Agent Does — and Where It Breaks