
차세대 LLM 기반 JavaScript 식별자 복구.
브라우저에서 FlowName 사용해 보기 → — JavaScript, API 키, 모델을 입력하세요. 설치가 필요 없습니다.
CLI: npx --yes --package=flowname@latest flowname input.js (먼저 GEMINI_API_KEY를 설정하세요).
FlowName은 난독화된 JavaScript를 위한 차세대 시맨틱 식별자 복원기(Semantic Identifier Recoverer)입니다. AST 기반 정적 분석을 사용하여 논리적으로 관련된 변수들을 예산이 정해진 LLM 요청으로 그룹화함으로써, FlowName은 단순한 텍스트 윈도우 방식에서 흔히 발생하는 컨텍스트 손실로 인한 환각을 제거합니다.
411개 바인딩으로 난독화된 스코프에서 선도적인 심볼 기반 도구(Humanify)와 직접 벤치마크한 결과, 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은 식별자의 이름을 지정할 뿐, 번들을 풀거나 구조적 난독화를 되돌리지는 않습니다. 지원되는 난독화 패턴에는 webcrack을, 지원되는 번들에는 Wakaru를 사용한 후, 결과 JavaScript를 FlowName에 전달하세요. 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 비교를 다룹니다.