English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Türkçe · Русский · Tiếng Việt · ไทย · Deutsch · Español · Français · Українська · Polski · Português (Brasil) · العربية · فارسی · Bahasa Indonesia · Italiano · Ελληνικά · മലയാളം · Roman Urdu · Română
指向你准备发布的构建产物,从源码、字节码到二进制层面保护核心逻辑与运行时行为。
官方网站 (bla.tools) · 技术指南 · 测试案例
快速开始 · 工作原理 · 你可以保护哪些目标 · 基准测试与案例 · 常见问题 (FAQ) · 文档
npx bla-agents setup · npx bla-agents defend ./dist --manifest
[!IMPORTANT] 请从官方仓库 qybaihe/bla 或 npm 包 bla-agents 获取 BLA。
BLA 是一个面向软件发布产物的防御性 MCP 服务与 CLI 工具,用于评估、加固并验证软件对 AI 自动化逆向工具(如 REA)的抗分析能力。它可以在不修改业务源码的前提下,扫描发布产物中的符号与 SourceMap 暴露面、注入特定格式的静态与运行时保护层,并验证加固后产物的运行时行为与原版完全一致。
BLA 支持将你的编程代理连接到原生二进制、JavaScript 与 Electron 应用、WebAssembly 模块、Python 字节码、SQLite 数据库、AI 模型权重与移动端包体的保护工作流中。你也可以直接在终端或打包工具(Vite / Webpack / Rollup / esbuild)中调用相同能力。
setup 会向你的编程代理注册 BLA 的 MCP 服务并安装配套技能说明。所有静态、字节码与二进制保护模块均已内置,无需额外安装外部编译器或第三方加壳工具。
安装 Node.js 与 npm 后,运行:
npx bla-agents setup
选择你使用的编程代理(或加上 --all-detected --yes),预览变更并确认。setup 会注册 BLA 的 MCP 服务器并安装 blind-llm-agents 技能,同时自动备份原有配置文件。完成后重启你的 Agent 即可。
支持 Claude Code、Codex、Cursor、Gemini CLI、Windsurf、Google Antigravity、OpenCode、VS Code 与 GitHub Copilot CLI。手动配置方式参见安装与配置指南。
连接完成后,可以直接通过自然语言调用完整的 5 阶段加固流程,或按步骤单独执行:
bla_defend —— 暴露巡检 → 风险审计 → 护盾注入 → 等价性验证 → 签名清单):
对 ./dist 目录执行 bla_defend(使用 bankrupt 级别并输出验证清单)。
Audit):
使用 BLA 审计 ./dist 目录,列出暴露的模块、符号和 Electron IPC 通道,并评估自动化逆向还原的风险。
Protect):
使用 BLA 保护 ./dist/app.asar,将加固后的产物输出到 ./dist/app.shielded.asar。
Verify):
对比验证 ./dist/app.shielded.asar 与原文件 ./dist/app.asar,确认静态分析状态已降级为 limited 且功能保持一致。
所有工作流均可通过 npx bla-agents(或全局安装后的 bla)在终端直接运行:
defend) —— 单条命令依次执行 inspect-release、audit、protect、verify 并生成 .bla-manifest.json:
npx -y bla-agents@latest defend /absolute/path/to/app --manifest
audit) —— 查看暴露评分(0–100)、可见符号与预估分析开销:
npx -y bla-agents@latest audit /absolute/path/to/app --json
protect) —— 应用静态预算阈值保护、调用图扩展、诱饵元数据与运行时检测:
npx -y bla-agents@latest protect /absolute/path/to/app -o /absolute/path/to/app.shielded --intensity bankrupt
verify) —— 检查静态/语义分析器是否触发资源上限并保持运行等价:
npx -y bla-agents@latest verify /absolute/path/to/app.shielded /absolute/path/to/app
benchmark):
npx -y bla-agents@latest benchmark
emit-headers):
npx -y bla-agents@latest emit-headers --lang c -o ./include/bla_shield.h
如需全局安装 bla 命令:
npm install --global bla-agents
bla --help
导入 bla-agents/bundler,在构建阶段自动保护输出的 JS 分包、SourceMap 与 .wasm 模块:
import { defineConfig } from "vite";
import { blaVitePlugin } from "bla-agents/bundler";
export default defineConfig({
plugins: [blaVitePlugin({ intensity: "bankrupt", enableHoneySourceMaps: true })],
});
如果通过 npm install --global 或 bun add --global 安装:
bla update
如果使用 npx,可通过以下命令更新 Agent 注册配置与技能文件:
npx bla-agents@latest setup
你的 Agent 通过 MCP 调用 BLA 来审计构建产物、应用特定格式的保护层并验证输出结果。当自动化逆向分析工具检查受保护的产物时,会遇到三层防御机制:
Exhaustion): 利用 $O(1)$ 数论不透明谓词与不可达分支中的强连通调用图(SCC),触发 REA 等分析器内部的静态资源上限(如 primitive-candidates > 256、alias-selections > 512、getter-expansion > 512、primitive-bytes > 1 MiB、maximum_rustc_hashes > 64、maximumSentinelsPerSlice > 32)。Deception): 在静态分析视图下将真实业务逻辑标记为 status: "unknown",同时提供结构清晰的影子状态机、硬件飞地接口声明(SGX / TPM2 / Secure Enclave)以及 VLQ v3 诱饵 SourceMap,干扰模型的语义归因。Runtime Guard): 原地加固 Electron V1 Fuse 配置位(RunAsNode=0、EnableNodeCliInspectArguments=0),并在检测到 CDP、Node Inspector、Frida 或 WebDriver 动态挂载时返回合成遥测数据。BLA 要求 Node.js ^22.13.0 || >=24.0.0 与 npm,所有格式保护模块均在本地运行,无外部二进制依赖: