在浏览器中试用 FlowName → — 输入你的 JavaScript、API 密钥和模型;无需安装。
CLI: npx --yes --package=flowname@latest flowname input.js(先设置 GEMINI_API_KEY)。
FlowName 是面向混淆 JavaScript 的下一代语义标识符恢复器。通过基于 AST 的静态分析,将逻辑相关的变量分组为预算受限的 LLM 请求,FlowName 消除了朴素文本窗口方法中常见的上下文丢失幻觉。
在与领先的基于符号的工具(Humanify)针对 411 个绑定混淆作用域的直接基准测试中,FlowName 实现了:
在 HTML 报告中探索全部 411 个名称对比。 155 vs 37 的对比是自动化、未校准的 Jev 判断;这次单程序运行无法确立普遍的命名质量优势。参见基准测试说明。
在环境中设置 GEMINI_API_KEY(或 FLOWNAME_API_KEY),然后运行:
npx --yes --package=flowname@latest flowname input.js
CLI 会将恢复后的代码写入新的 flowname-output-TIMESTAMP-ID/output.js 目录。添加 --report 可在实时 HTML 报告中查看每个请求和建议的名称。默认 Gemini 模型无需任何标志;CLI 不会自动加载 .env。需要 Node.js 22.8+。
在浏览器中,打开演练场,粘贴 JavaScript,提供你自己的 API 密钥并开始恢复。请求会直接从你的浏览器发送到所选提供商;Stop 会中断运行。
FlowName 为标识符命名;它不会解包 bundle 或撤销结构性混淆。对于受支持的混淆模式,请使用 webcrack;对于受支持的 bundle,请使用 Wakaru,然后将生成的 JavaScript 传给 FlowName。它会解析词法绑定,使用轻量级关系和同作用域回退来分组目标,并在每个请求中向 LLM 询问多个名称。查看分组的工作原理。
npm install flowname
import { readFile } from 'node:fs/promises';
import { recoverNames, createProvider } from 'flowname';
const sourceCode = await readFile('./input.js', 'utf8');
const provider = createProvider({
provider: 'gemini',
model: 'gemini-3.5-flash-lite',
apiKey: process.env.GEMINI_API_KEY,
});
const result = await recoverNames(sourceCode, { provider });
console.log(result.code);
有关选项、CLI 报告和完整的库示例,请参阅使用指南。文档索引涵盖了方法、架构、局限性、先前工作以及 Humanify 对比。