Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
FlowName — Восстановление идентификаторов JavaScript нового поколения с помощью LLM. | Kitploit
Инструменты/GitHubGitHub/123wwwa/flowname
Статический анализАнализ КодаОбратная инженерияМашинное ОбучениеОбратная Разработка с Помощью ИИБезопасность ИИ
GitHub123wwwa/flowname

FlowName

Восстановление идентификаторов JavaScript нового поколения с помощью LLM.

Репозиторий
9966 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Сайт
Поделиться

FlowName

Словесный знак FlowName с соединёнными идентификаторами, превращающимися в осмысленные имена

FlowName против Humanify по вызовам API, общему числу токенов и качеству имён переменных в двух измеренных сравнениях

Качество имён показывает долю имён, предпочтённых исключительно автоматической, некалиброванной оценкой Jev. Анимированный график → · Точные подсчёты, метод и ограничения →

Попробуйте FlowName в браузере → — введите свой JavaScript, API-ключ и модель; установка не требуется.

CLI: npx --yes --package=flowname@latest flowname input.js (сначала задайте GEMINI_API_KEY).

FlowName — это Semantic Identifier Recoverer нового поколения для обфусцированного JavaScript. Используя статический анализ на основе AST для группировки логически связанных переменных в запросы к LLM с ограниченным бюджетом, FlowName устраняет галлюцинации из-за потери контекста, характерные для наивных подходов со скользящим текстовым окном.

В двух прямых сравнениях с ведущим инструментом на основе символов (Humanify) на Cigar и GrobPaint FlowName показал следующие средние относительные результаты:

  • ⚡ На 82% быстрее благодаря пакетной обработке запросов, управляемой связями.
  • 💰 На 33% ниже стоимость токенов за счёт устранения раздувания перекрывающегося контекста.
  • 🎯 Более высокая семантическая точность и на 85% больше точных совпадений с исходными именами, что доказывает: гарантированный контекст AST предотвращает галлюцинации LLM.

Во втором сравнении на 1 786 анонимизированных привязках GrobPaint FlowName использовал 408 против 1 786 вызовов API и на 29,36% меньше общего числа токенов; Jev с учётом исходного кода дал 512 против 274 исключительных предпочтений.

Изучите сводку бенчмарка и оба отчёта об именах с поиском. Оценки Jev автоматические и некалиброванные. В промпте Humanify для некоторых привязок отсутствовало целевое написание, а суффиксы, безопасные при коллизиях, могут влиять на оценки применённых имён. Подробности о разделении контекста и ограничениях см. в сводке.

Запуск

Задайте GEMINI_API_KEY (или FLOWNAME_API_KEY) в окружении или в файле .env в текущем каталоге, затем выполните:

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

Чтобы использовать другую конечную точку, совместимую с OpenAI, или пропустить переменные окружения, передайте всё в виде флагов:

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

Флаги имеют приоритет, затем окружение, затем .env; CLI предупреждает, когда они расходятся. Ключ, переданный как флаг, может быть виден в истории оболочки и списке процессов.

Проверьте стоимость перед тем, как что-либо тратить, или сначала попробуйте небольшую часть большого файла:

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

CLI записывает восстановленный код в новый каталог flowname-output-TIMESTAMP-ID/output.js. Добавьте --report, чтобы отслеживать каждый запрос и предложенное имя в live HTML-отчёте. Для модели Gemini по умолчанию флаги не требуются. Требуется Node.js 22.8+.

Для браузера откройте playground, вставьте JavaScript, укажите собственный API-ключ и запустите восстановление. Запросы идут напрямую из вашего браузера к выбранному провайдеру; Stop прерывает выполнение.

Где это применимо

FlowName именует идентификаторы; он не распаковывает бандлы и не отменяет структурную обфускацию. Используйте webcrack для поддерживаемых шаблонов обфускации или Wakaru для поддерживаемых бандлов, а затем передайте полученный JavaScript в FlowName. Он разрешает лексические привязки, использует лёгкие отношения и fallback в пределах одной области видимости для группировки целей и запрашивает у 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.

Лицензировано под MIT. См. примечания к выпуску.

Скачать инструмент