使用 BLA 进行反 REA AI 逆向——以 Electron 应用为例
English | 简体中文 AI 逆向带来的变化 REA 让 AI agent 借助逆向工具分析没有源码的应用,并辅助重建功能。软件公司还能保护自己的实现吗? BLA 如何应对 AI 逆向 魔高一尺,道高一丈。BLA 会向发布制品加入干扰分析的内容。诱饵模块和调用关系让 agent 面对更多待核对的线索,扩大的元数据则可能触及解析器的资源上限。 本例使用的 ASAR 方案会改写 JavaScript,并扩充归档目录。目标是保持应用可用,同时增加自动分析的开销或让特定入口受限。真实效果取决于目标格式与工具版本,需要后续评估。 以 Electron 为例接入 CI 示例仓库是 zacker330/bla-ci,包含简单的报价计算器和三平台 CI。在构建 job 生成原始 app.asar 之后加入 BLA,处理完成后再打包、生成完整性记录和签名。 加固会改写交付文件,后续打包若重新生成文件,就可能覆盖加固结果。把 BLA 接进构建,可以固定处理顺序,让每次发布都执行,并在失败时阻止交付。 原始制品 → 对照包 → 回归测试 └→ BLA → 加固制品 → 打包与回归 → 按渠道签名、封装及发布验证 两份制品 → 按时机评估反 REA AI 逆向效果 构建脚本保留原始 ASAR,再生成加固版本: npx --no-install bla audit dist/asar/original/app.asar --json npx --no-install bla protect dist/asar/original/app.asar \ -o dist/asar/hardened/app.asar --intensity bankrupt \ --seed bla-ci-demo-v1 --json npx --no-install bla verify dist/asar/hardened/app.asar \ dist/asar/original/app.asar --json 锁定工具版本和依赖,每次从原始制品重新加固。固定 seed 用于复现,不承担保密功能。命令或校验失败就停止构建,并保存报告。dist/build.json 记录版本、配置、产物哈希和耗时,让后续测试与评估能核对输入。 ...