Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
FlowName — Next-generation JavaScript identifier recovery with LLMs. | Kitploit
Strumenti/GitHubGitHub/123wwwa/flowname
Static AnalysisCode AnalysisReverse EngineeringMachine LearningAI-Assisted ReversingAI Security
GitHub123wwwa/flowname

FlowName

Next-generation JavaScript identifier recovery with LLMs.

Vedi RepositorySito web
99611 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Contenuto non disponibile nella lingua richiesta. Visualizzazione della versione inglese.

FlowName

FlowName wordmark with connected identifiers becoming meaningful names

FlowName versus Humanify on API calls, total tokens and variable-name quality in two measured comparisons

Name quality shows the ratio of names exclusively preferred by an automated, uncalibrated Jev evaluation. Animated chart → · Exact counts, method and limitations →

Try FlowName in your browser → — enter your JavaScript, API key and model; no installation required.

CLI: npx --yes --package=flowname@latest flowname input.js (set GEMINI_API_KEY first).

FlowName is a next-generation Semantic Identifier Recoverer for obfuscated JavaScript. By using AST-based static analysis to group logically related variables into budgeted LLM requests, FlowName eliminates the context-loss hallucinations common in naive text-window approaches.

Across two direct benchmarks against a leading symbol-based tool (Humanify) on Cigar and GrobPaint, FlowName delivered these average relative results:

  • ⚡ 82% Faster Execution through relation-guided request batching .
  • 💰 33% Lower Token Cost by eliminating overlapping context bloat.
  • 🎯 Higher Semantic Precision and 85% more exact original-name matches, proving that guaranteed AST context prevents LLM hallucinations.

In a second comparison on GrobPaint's 1,786 anonymized bindings, FlowName used 408 vs 1,786 API calls and 29.36% fewer total tokens; original-source-aware Jev gave 512 vs 274 exclusive preferences.

Explore the benchmark summary and both searchable name reports. Jev's judgments are automated and uncalibrated. Humanify's prompt omitted the target spelling for some bindings, and collision-safe suffixes can affect applied-name scores. See the summary for the context split and limitations.

Run it

Set GEMINI_API_KEY (or FLOWNAME_API_KEY) in your environment or in a .env file in the current directory, then run:

npx --yes --package=flowname@latest flowname input.js

To use another OpenAI-compatible endpoint, or to skip environment variables, pass everything as flags:

npx --yes --package=flowname@latest flowname input.js --base-url https://api.openai.com/v1 --model MODEL --api-key YOUR_API_KEY

Flags take precedence, then the environment, then .env; the CLI warns when they disagree. A key passed as a flag may be visible in shell history and process listings.

The CLI writes recovered code to a new flowname-output-TIMESTAMP-ID/output.js directory. Add --report to watch each request and proposed name in a live HTML report. No flags are required for the default Gemini model. Requires Node.js 22.8+.

For the browser, open the playground, paste JavaScript, supply your own API key and start recovery. Requests go directly from your browser to the selected provider; Stop interrupts the run.

Where it fits

FlowName names identifiers; it does not unpack bundles or undo structural obfuscation. Use webcrack for supported obfuscation patterns or Wakaru for supported bundles, then pass the resulting JavaScript to FlowName. It resolves lexical bindings, uses lightweight relations and same-scope fallback to group targets, and asks the LLM for several names per request. See how the grouping works.

Use it as a library

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);

See the usage guide for options, CLI reports and a complete library example. The documentation index covers the approach, architecture, limitations, prior work and Humanify comparison.

Licensed under MIT. See the release notes.

Scarica lo strumento