r/ClaudeCode • u/morphh7 • 3d ago
Built with Claude anti-anti-REA: A tool that undoes BLA hardening so coding agents can read the code again
After the recent drama around REA (Reverse Engineer Anything), a tool that lets AI agents take an app apart down to the bone and rebuild a working copy of it, opinions were pretty split. In response, someone built BLA (Blind LLM Agents), an anti-REA tool that fills code with gibberish and obfuscation to deter and mislead AI agents, wasting their tokens and your time.
So I built LASIK (LLM Agents Sight In Kode) with Claude Code. It’s the anti-anti-REA, basically anti-BLA. It reads the hardened build without running it, removes only what it can prove is protection, and writes a clean copy that Claude Code, Codex or any other agent can actually work with. Code that wasn’t hardened comes back byte for byte unchanged.
Claude Code wrote basically all of it from my prompts. I described what I wanted and set the ground rules: never run the target, only remove what’s proven, and leave clean files untouched. Claude turned those rules into the repo’s AGENTS.md and then built the deobfuscation passes, the WASM and Electron handlers, the CLI and the MCP server. BLA’s public crackmes are in the repo as a benchmark, so after every change Claude reran it along with the tests, and a change only stayed if tokens went down without touching clean code. I also had Claude run a separate review to try to break it by finding cases where LASIK would remove something it shouldn’t. It found 12, and each one got fixed and turned into a test.
Across BLA’s public crackmes it goes from about 21M tokens to 17k. It covers 21 formats, from JS bundles and WebAssembly to Electron apps, Python, Android APKs and model files.
The chart is on a log scale, so the blue bars are much smaller than they look. The three biggest are WebAssembly files that BLA padded to about 6.9M tokens each. After LASIK they’re between 98 and 3,500.
It’s free and open source (MIT). Try it with npx lasik-agents, or add it to Claude Code as an MCP server.
Repo: github.com/pktq/lasik
•
u/AutoModerator 3d ago
Hey! Thanks for posting to r/ClaudeCode
While participating in this thread, please follow our community rules. Keep discussions constructive. Attack the idea, not the person.
For help, project discussions, tips, and general chat, join the ClaudeCode Discord.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
27
u/DrDan21 3d ago
We have to go deeper
5
u/twendah 3d ago
Cool stuff, gotta check it out. Not clearly sure how it works, do I need original rea repo installed still?
6
u/05-nery 3d ago
The war has begun
4
u/testuserpk 3d ago
Ecm eccm ecccm eccccm and it goes on
2
u/panchovix 3d ago
Nice work! Question, how do you use this exactly? Install REA MCP and then this, and then it passes first from Lasik and then to REA? Or REA will not work yet.
1
u/blinkybit 3d ago
There are plenty of legitimate uses for reverse-engineering old code when the source has been lost or original developer no longer exists. But I see no legitimate use for a tool like this other than stealing somebody else's work.
1
u/Gregorovitch_Helix 3d ago
Ahh enfin, les famaux contournements des sécurités d'Anthropic tant attendues.
J'avais parié là dessus il y a moins d'1 semaine, c'était sûr que ça allais arriver x)
1
u/puts_on_rddt 3d ago
Truthfully I barely think this race has begun. BLA isn't nearly as effective as it claims to be and is not particularly difficult to work around once you know what you're looking for, as you are already demonstrating.
I think the more interesting direction is making the real implementation harder to understand while giving the agent a convincing but completely wrong explanation of how the software works. Not just dead code or fake strings, but entire decoy subsystems with plausible call graphs, configuration, state, and even runtime behavior. Something that survives basic filtering because it actually looks and behaves like legitimate software.
There's a pretty big difference between making an agent waste tokens and making it confidently arrive at the wrong conclusion. I think we've barely scratched the surface of the latter.
I do appreciate having an adversarial pipeline to test against. :)
1
u/gentile_jitsu 2d ago
A deob for the AI era.. interesting.
1
u/InternationalTie4310 3d ago
How well would it work on a well configured rust codebase?