
JavaScript-Identifikator-Wiederherstellung der nächsten Generation mit LLMs.
Die Namensqualität zeigt das Verhältnis der Namen, die ausschließlich von einer automatisierten, unkalibrierten Jev-Bewertung bevorzugt werden. Animiertes Diagramm → · Genaue Zählungen, Methode und Einschränkungen →
FlowName im Browser ausprobieren → — geben Sie Ihren JavaScript-Code, API-Schlüssel und Modell ein; keine Installation erforderlich.
CLI: npx --yes --package=flowname@latest flowname input.js (zuerst GEMINI_API_KEY setzen).
FlowName ist ein Semantic Identifier Recoverer der nächsten Generation für obfuskierten JavaScript-Code. Durch AST-basierte statische Analyse, die logisch zusammenhängende Variablen in budgetierte LLM-Anfragen gruppiert, beseitigt FlowName die Kontextverlust-Halluzinationen, die bei naiven Textfenster-Ansätzen üblich sind.
In zwei direkten Benchmarks gegen ein führendes symbolbasiertes Tool (Humanify) auf Cigar und GrobPaint erzielte FlowName diese durchschnittlichen relativen Ergebnisse:
In einem zweiten Vergleich mit den 1.786 anonymisierten Bindings von GrobPaint verwendete FlowName 408 statt 1.786 API-Aufrufe und 29,36 % weniger Gesamttokens; das quellcodebewusste Jev ergab 512 gegenüber 274 exklusiven Präferenzen.
Die Benchmark-Zusammenfassung und beide durchsuchbaren Namensberichte erkunden. Jevs Bewertungen sind automatisiert und unkalibriert. Humanifys Prompt ließ bei einigen Bindings die Zielschreibweise weg, und kollisionssichere Suffixe können die Bewertungen der angewendeten Namen beeinflussen. Die Aufteilung des Kontexts und die Einschränkungen finden Sie in der Zusammenfassung.
Setzen Sie GEMINI_API_KEY (oder FLOWNAME_API_KEY) in Ihrer Umgebung oder in einer .env-Datei im aktuellen Verzeichnis und führen Sie dann aus:
npx --yes --package=flowname@latest flowname input.js
Um einen anderen OpenAI-kompatiblen Endpunkt zu verwenden oder Umgebungsvariablen zu überspringen, übergeben Sie alles als Flags:
npx --yes --package=flowname@latest flowname input.js --base-url https://api.openai.com/v1 --model MODEL --api-key YOUR_API_KEY
Flags haben Vorrang, dann die Umgebung, dann .env; die CLI warnt, wenn sie voneinander abweichen. Ein als Flag übergebener Schlüssel kann in der Shell-Historie und in Prozesslisten sichtbar sein.
Prüfe die Kosten, bevor du etwas ausgibst, oder probiere zuerst einen kleinen Teil einer großen Datei aus:
flowname input.js --dry-run # planned API calls and prompt bytes; no key needed
flowname input.js --sample-requests 3 # send only the first 3 planned requests
flowname - -o - < input.js > output.js # standard input to standard output
Die CLI schreibt den wiederhergestellten Code in ein neues Verzeichnis flowname-output-TIMESTAMP-ID/output.js. Füge --report hinzu, um jede Anfrage und jeden vorgeschlagenen Namen in einem Live-HTML-Bericht zu beobachten. Für das Standardmodell Gemini sind keine Flags erforderlich. Erfordert Node.js 22.8+.
Für den Browser öffne den Playground, füge JavaScript ein, gib deinen eigenen API-Schlüssel an und starte die Wiederherstellung. Anfragen gehen direkt von deinem Browser an den ausgewählten Anbieter; Stop unterbricht den Lauf.
FlowName benennt Bezeichner; es entpackt keine Bundles und macht keine strukturelle Obfuskation rückgängig. Verwende webcrack für unterstützte Obfuskationsmuster oder Wakaru für unterstützte Bundles und übergib dann das resultierende JavaScript an FlowName. Es löst lexikalische Bindungen auf, verwendet leichtgewichtige Beziehungen und Same-Scope-Fallback, um Ziele zu gruppieren, und fragt das LLM nach mehreren Namen pro Anfrage. Sieh dir an, wie die Gruppierung funktioniert.
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);
Eine Anleitung zu den Optionen, CLI-Berichten und einem vollständigen Bibliotheksbeispiel finden Sie im Nutzungshandbuch. Der Dokumentationsindex behandelt den Ansatz, die Architektur, Einschränkungen, frühere Arbeiten und den Humanify-Vergleich.
Lizenziert unter MIT. Siehe die Versionshinweise.