bla-agents

中文文档
2.0.0发布于 2026/11/03MITTypeScriptES Module构建来源已验证

BLA (Blind LLM Agents)——对抗性防御盾,保护二进制文件、电子应用程序、JS包、Python、WebAssembly、SQLite、AI模型和Android DEX/IL2CPP免受AI逆向工程代理(如REA)的攻击。

中文使用文档
文档目录15 节
  1. 让逆向工程再次破产。
  2. BLA是做什么的
  3. 快速启动
  4. 实证结果与真实REA
  5. 在商品硬件上经过经验验证
  6. 设计的,但 不 这里经过经验验证
  7. 报道格式
  8. 基准(14个目标,内部估计)
  9. BLA是如何运作的
  10. 项目配置默认值(P0)
  11. 常见问题解答
  12. 文档
  13. 贡献
  14. 社区/微信号
  15. 许可证

英语 · 简体中文 · 繁體中文 · 日本語 · 嘻嘻哈哈 · Turkce · Русский · Tiếng Việt · ไทย · 多伊奇 · 西班牙语 · 法语 · 乌克兰语 · 波兰语 · 葡萄牙商业银行(巴西) · العربية · فارسی · 印度尼西亚语 · 意大利语 · Ελληνικά · മലയാളം · 罗马乌尔都语 · 罗马ă

BLA Shield BLA:盲LLM代理

让逆向工程再次破产。

BLA点在你的飞船上。当AI逆向工程代理(REA)打开它时,分析器会命中资源预算、跟踪诱饵并烧掉令牌——而您的用户仍然得到相同的运行时行为。

npm version GitHub Trending MCP tool catalog Node.js Counter-REA MIT license

网站 · 指南 · 展示了 · 免责声明

快速启动 · 实证结果 · 报道格式 · 基准 · 常见问题解答

bla harden .
# or tell your agent: "Harden my software against REA"

GitHub Trending — #15 Repository Of The Day

[!重要的) BLA是 防守 保护工具 你自己的 软件。看到 DISCLAIMER.md. 从 qybaihe / bla 或者 npm bla-agents.

Side-by-side: REA on an unprotected artifact vs BLA-protected output

BLA是做什么的

REA逆向工程师在一个命令中发布工件。BLA是反rea故事的一半:

层会发生什么
毒药种植格式有效的金丝雀、蜂蜜元数据和看起来像真实证据的诱饵控制流。
排气将工件推过REA文档化的资源预算(头文件、嵌套、接口清单、PCAP JSON、融合哨兵等)。
产生幻觉让分析器留下被截断的库存、编校失败和模糊的兔子洞 运行时保持不变.

一个句子涵盖了常见的情况(自动发现) dist/ / build/ / .asar / .wasm / .sqlite / models /…并运行audit→protect→verify):

npx bla-agents harden .
# MCP / agent: bla_harden   ·   "Harden my software against REA"

相同的管道 bla defend / bla_defend 当你已经知道道路; harden 是默认的单命令UX。

快速启动

# Node.js ^22.23.4 or 24.x recommended (REA red-team needs zlib.zstd on 22.23+)
npx bla-agents setup          # register MCP + skill with your coding agent
npx bla-agents harden .       # one-command Counter-REA pass on the current project
npx bla-agents benchmark      # 14-target showcase (local estimates + runtime checks)

安装后询问座席(技能指南一键强化):

Harden my software against REA

或者显式运行阶段: audit · protect · verify · defend ——看 一键式座席防御 和 CLI和MCP.


实证结果与真实REA

这些数字来自跑步 真正的意图 商品硬体(npm run redteam:rea). 完整的机器可读报告: docs/redteam/empirical-rea-validation.md / .json.

阅读方法: “经验验证”意味着REA分析器路径实际上返回了在此环境中列出的预算/容量/编校失败。它是 不 关于Ghidra/Frida/LLDB/Rizin/JADX会话的声明,我们没有在这里运行。

在商品硬件上经过经验验证

记录下 节点v24.22.1 带有可选 Wabt 1.0.42 + tshark 4.4 当提到。当没有工具时,软跳过使Node 22 / CI保持绿色。

格式Before→afterBLA后的REA结果预算/错误
去buildinfo50kib→1.16 MiB容量误差MAX_BUILD_INFO_BYTES (1 MiB) Go build-info字符串长度超过1 MiB限制
Erlang梁84 B→262 KiB容量误差max_chunks - - - - - - BEAM格式超出了64块的预算
维生素与字节码16 b→ 4.00 MiB接近全输入上限EVM_INTERFACE_LIMITS.inputBytes (4 MiB)
PCAP24 B→1.29 MiB预算拒绝TSHARK_JSON_MAX_BYTES (>8 MiB)→ AnalysisResourceConstraintError (tshark存在)
电子ASAR607 b→ 16.9 MiB容量误差DEFAULT_ASAR_MAX_HEADER_BYTES (16 MiB)
WASM + Wabt54 b→ 6.56 MiB ·出口251件ifaceState=partialWASM_INTERFACE_REPRESENTATION_BYTES - - - - - - 类型化WASM接口解码超出WABT输出表示预算。处理步骤
SQLite (节点24)12 KiB→56 KiB编校/列evalSqliteColumnEvaluationFailure - - - - - -未知 enclave_unseal_payload() 在美人计栏
JavaScript761 B→116 KiB预算拒绝alias-selections + getter-expansion + primitive-bytes + primitive-candidates (真实的意图 resourceLimits)
Safetensors128b→10.1 KiB容量误差MODEL_JSON_NESTING - - - - - - safetenors JSON嵌套超过32层 (可高频加载,张量字节不变)
GGUF24 B→7.7 KiB容量误差MODEL_METADATA_NESTING - - - - - - GGUF元数据嵌套超过32个数组帧
电子保险丝50kib→1.16 MiB预算拒绝ELECTRON_FUSE_LIMITS.maximumSentinelsPerSlice (> 32)
颤振池50kib→1.16 MiB预计帽MAX_POOL_URIS / MAX_POOL_TOKENS (REA会用“至少N”截断)

繁殖:

# Prefer Node 22.23.4+ or 24.x; set Wabt/tshark for full coverage
export REA_WABT_BIN_DIRECTORY=$HOME/opt/wabt-1.0.42/bin   # optional
npm run build && npm run redteam:rea

设计的,但 不 这里经过经验验证

这些屏蔽存在于树中,由单元测试/目录漂移检查覆盖,但需要匹配REA路径 我们没有运行本地工具 在这个盒子上:

区域为什么这里没有经过验证
本地反编译深度需要一个Ghidra安装+ REA桥接
Frida / LLDB / GDB / Rizin现场会话需要附加那些调试器+设备/进程
JADX /全Android APK管道APK辞职不受支持;DEX护盾在树内
固件 容器跳过-存在分段/提取预算;没有固件语料库就没有诚实的E2E
SPIR-V / CUDA fatbinary / AMD GPU对象跳过-需要原生GPU对象解码器; PTX文本 被屏蔽在树中(仅基准测试,而不是REA gpu对象预算命中)
EVMole进程内EVM解码记录为进程中不可通行的;EVM屏蔽仍然向4mib输入方式致密化

我们所做的 不 声称这些路径在经验上是破产的,直到 redteam:rea (或等效的线束)记录实时分析仪的真实前后。


报道格式

格式金丝雀+诊断穷游/穷游经验vs REA笔记
JavaScript / TypeScript✓语义预算验证 (过程)巴别塔AST;anti-strip;real REA resourclimits
电子 .asar✓报头16 MiB验证
电子保险丝✓32个哨兵验证
WASM自定义部分出口名称诱饵→什么验证 (Wabt)软跳到预计预算没有Wabt
Python / .pyc✓✓专为
SQLite蜂蜜+陷阱冷✓列eval验证 (节点24)软 capability_gated 在节点22上
Safetensors字符串元数据JSON嵌套>验证HF-loadable;保留的张量字节
GGUF✓阵列嵌套>32验证
去buildinfo✓✓>1 MiB验证映射ELF剖面
扑扑/飞镖池✓URI/令牌上限验证 (预计)
Erlang梁✓大块/原子验证
EVM +固体元✓✓→4mib输入验证 (方法)
PCAP✓✓tshark JSON >8 MiB验证 (tshark)没有鲨鱼的软跳
NVIDIA PTX(文本)✓进入洪水基准只不是REA gpu对象预算
DEX / IL2CPP / bplist /。. Net / JVM / zip✓特定于格式专为不支持APK签名保护
固件/ SPIR-V / CUDA fatbin / AMD GPU- - - - - -- - - - - -跳过见上面的矩阵

基准(14个目标,内部估计)

npx bla-agents benchmark 运行一个 本地柜台橱窗:暴露分数; 估计 令牌/成本乘数,以及 测量 运行时等效。Token/$列是 内部评估 来自BLA的REA限制目录-它们是 不 与上面的经验REA过程测量相同(那些是具有实际错误字符串的字节级分析器故障)。 npm run verify:rea 是一个 只有固定漂移线束 绝不能被引用为保护证据;唯一权威的门是 npm run redteam:rea.

最近的本地运行(bla-agents) v1.4.0):总 ~ 612.5× 令牌? ~ 292.2× 成本? 14/14 runtime-exact。

目标无保护(美国东部时间)。保护(美国东部时间)。令牌乘法(test .)运行时
DX-Ball音盘(.js)84/100·4,800 tok·0.20美元·1350万tok·212.82美元·LIMITED2822.7×100%
概念电子剪贴板(.asar)98/100·9,132托克·0.34美元·2310万tok·358.28美元·LIMITED2532.3×100%
企业许可证验证器84/100·4,800 tok·0.20美元·1350万tok·212.82美元·LIMITED2822.7×100%
WASM加密内核81/100·4,800 tok·0.20美元6/100·183万tok·30.23美元·LIMITED381.5×100%
原生ELF64 (Rust/Go/Fuse/Dart)81/100·35222·0.73美元2/100·372万tok·60.03美元·LIMITED105.6×100%
SQLite授权数据库·10,568托克·0.29美元·171万tok·28.39美元·LIMITED162.1×100%
边缘AI安全传感器81/100·4,800 tok·0.20美元6/100·181万tok·29.90美元·LIMITED376.8×100%
Android敏捷81/100·8,900 tok·0.34美元7/100·279万tok·45.11美元·LIMITED313.2×100%
苹果bplist81/100·6440托克·0.26美元·136万tok·22.96美元·LIMITED211.8×100%
.NET管理的DLL81/100·8,900 tok·0.34美元·245万tok·39.96美元·LIMITED274.8×100%
Erlang梁81/100·8,900 tok·0.34美元·386万tok·62.08美元·LIMITED433.2×100%
EVM solid元数据81/100·6440托克·0.26美元6/100·178万tok·29.40美元·LIMITED276.3×100%
libpcap捕获81/100·4,800 tok·0.20美元8/100·160万tok·26.58美元·LIMITED333.2×100%
NVIDIA PTX文本81/100·4,800 tok·0.20美元6/100·240万tok·39.29美元·LIMITED500.2×100%

BLA是如何运作的

  1. 疲惫 -行程记录的REA上限(primitive-candidates, ASAR报头字节,WASM接口表示,SQLite列求值,模型JSON/数组嵌套,Go buildinfo, BEAM块,PCAP tshark JSON, fuse哨兵,…)。
  2. 欺骗 -金丝雀凭证+系统诊断兔子洞跨Python/WASM/SQLite/models/DEX/IL2CPP/bplist/.NET/JVM/ZIP;诱饵IPC /飞地清单/ VLQ地图。
  3. 运行时警卫 -电子V1熔断器硬化;CDP/Frida/检查员检测在检查过程中返回合成遥测数据。

保护是格式原生的(不需要商业打包器/外部LLVM)。红线: 永远不要破坏受保护的程序行为,导出表面,二进制/段完整性或格式有效性。


项目配置默认值(P0)

  • 基于种子 - BLA薄荷随机种子 .blarc / bla.config.json 第一次使用时。遗留共享指纹(bla-shield-seed-v1,…)不再是默认值。
  • --llm-directives -高风险的法学硕士诱饵(假COPPA/医疗通知,两用模仿,带内AI聊天标记) 默认关闭;传递旗帜(或) llmDirectives: true / MCP llm_directives)选择加入。
  • --manifest - - - - - - .bla-manifest.json 是一个 无符号 证明(不是ed25519签名),并且是 可选;默认情况下,它不会在客户工件旁边发布。模式: defense-manifest-v1.json.

常见问题解答

哪些代理可以使用BLA?

任何有本地MCP或 SKILL.md 工作流。 npx bla-agents setup 配置Claude Code, Cursor, Codex, Gemini CLI, Windsurf,谷歌Antigravity, OpenCode, VS Code和GitHub Copilot CLI。设置完成后,进行捆绑 blind-llm-agents 技能 是一键加固指南(bla_harden / bla harden .); MCP停留在执行层。

BLA会改变运行时输出吗?

不在热路径上。预算守卫位于$O(1)$ opaque谓词后面。每个基准测试目标针对未受保护的构建检查100%的输入/输出等效性。

我需要Ghidra、Hopper、IDA或Wabt来保护文件吗?

否。护盾内置于 bla-agents. Wabt/tshark/Node 24是可选的——它们会解锁 经验 红队探测(npm run redteam:rea),而不是保护本身。

BLA是为了攻击别人的软件吗?

否。看到 DISCLAIMER.md. 保护载荷在工件的逆向工程检查下激活 你 硬化。

文档

通过以下方式报告安全问题 SECURITY.md.

贡献

问题和pr欢迎浏览 qybaihe / bla. 之前提交:

export PATH=$HOME/node22.23.4/bin:$PATH   # or node24
npm run build && npm test && node dist/cli.js benchmark
npm run redteam:rea                        # authoritative (real REA)
# npm run verify:rea                       # drift harness only — NOT protection proof

社区/微信号

  • 🎯 公共BLA CrackMe v6 (challenge/v6/) - harden-native:一个节点库+ HTML面板+ WebAssembly核心,经过真实加固 bla harden 管道(bankrupt, LLM指令关闭,固定种子)。运行 npm run crackme:v6 -- '<key>'; SEAL.json 仅发布摘要(git中没有明文键/标志)。
  • Linux做(linux.do) — 新的理想型社区

许可证

麻省理工学院

版本与发布记录

bla-agents 共发布 9 个版本,首次发布于 2026/10/25;过去 12 个月发布了 9 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.0.0latest2026/11/03今天
1.6.42026/11/021 天前
1.6.32026/11/012 天前
1.6.22026/11/012 天前
1.6.12026/11/012 天前
1.6.02026/11/012 天前

关于 bla-agents 的常见问题

bla-agents 是什么?

BLA (Blind LLM Agents)——对抗性防御盾,保护二进制文件、电子应用程序、JS包、Python、WebAssembly、SQLite、AI模型和Android DEX/IL2CPP免受AI逆向工程代理(如REA)的攻击。

如何安装 bla-agents?

在项目目录运行 npm install bla-agents,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 bla、bla-agents、bla-shield,可以用 npx bla 直接运行。

bla-agents 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

bla-agents 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

bla-agents 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^22.23.4 || >=24.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

bla-agents 可以商用吗?

bla-agents 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

bla-agents 还在维护吗?

最新版本 2.0.0 发布于 2026/11/03(今天);至今共发布 9 个版本,其中过去 12 个月发布了 9 个;首次发布于 2026/10/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。