
JavaScript-Identifikator-Wiederherstellung der nächsten Generation mit LLMs.
FlowName im Browser ausprobieren → — JavaScript, API-Schlüssel und Modell eingeben; 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, eliminiert FlowName die Kontextverlust-Halluzinationen, die bei naiven Textfenster-Ansätzen üblich sind.
In einem direkten Benchmark gegen ein führendes symbolbasiertes Tool (Humanify) auf einem obfuskierten Scope mit 411 Bindings lieferte FlowName:
Alle 411 Namensvergleiche im HTML-Bericht erkunden. Der Vergleich 155 vs. 37 ist ein automatisiertes, unkalibriertes Jev-Urteil; dieser Lauf mit einem einzigen Programm kann keinen allgemeinen Vorteil bei der Namensqualität belegen. Siehe die Benchmark-Hinweise.
Setzen Sie GEMINI_API_KEY (oder FLOWNAME_API_KEY) in Ihrer Umgebung und führen Sie dann aus:
npx --yes --package=flowname@latest flowname input.js
Die CLI schreibt den wiederhergestellten Code in ein neues Verzeichnis flowname-output-TIMESTAMP-ID/output.js. Fügen Sie --report hinzu, um jede Anfrage und jeden vorgeschlagenen Namen in einem Live-HTML-Bericht zu verfolgen. Für das Standard-Gemini-Modell sind keine Flags erforderlich; die CLI lädt .env nicht automatisch. Erfordert Node.js 22.8+.
Öffnen Sie für den Browser den Playground, fügen Sie JavaScript ein, geben Sie Ihren eigenen API-Schlüssel an und starten Sie die Wiederherstellung. Anfragen gehen direkt von Ihrem Browser an den ausgewählten Anbieter; Stop unterbricht den Lauf.
FlowName benennt Identifier; es entpackt keine Bundles und macht strukturelle Obfuskation nicht rückgängig. Verwenden Sie webcrack für unterstützte Obfuskationsmuster oder Wakaru für unterstützte Bundles und übergeben Sie das resultierende JavaScript dann an FlowName. Es löst lexikalische Bindings auf, verwendet leichtgewichtige Relationen und Same-Scope-Fallback, um Ziele zu gruppieren, und fragt das LLM nach mehreren Namen pro Anfrage. Sehen Sie, 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);
Siehe den Nutzungsleitfaden für Optionen, CLI-Berichte und ein vollständiges Bibliotheksbeispiel. Der Dokumentationsindex behandelt den Ansatz, die Architektur, Einschränkungen, frühere Arbeiten und den Humanify-Vergleich.
Lizenziert unter MIT. Siehe die Versionshinweise.