Инструменты27 сентября 2026 г., 15:47 МСК🤖 Auto

Kong: Автономный реверс-инжиниринг бинарников через LLM

Новый фреймворк Kong автоматизирует анализ зашифрованных бинарников, используя LLM для восстановления имен функций, типов и структур с прямой интеграцией в Ghidra.

Баннер новости 8373

Автоматизация рутины в реверс-инжиниринге

Реверс-инжиниринг (RE) часто требует часов или дней работы, даже для небольших бинарных файлов. Основная проблема — потеря контекста (имен, типов, структур) в stripped-бинарниках. Фреймворк Kong решает это, используя Large Language Models (LLM) не как «черный ящик», а как часть строгой аналитической цепочки. Он автоматически обрабатывает обфускацию, восстанавливает сигнатуры и записывает результаты прямо в базу данных Ghidra, превращая нечитаемые FUN_00401a30 в осмысленные имена вроде parse_http_header.

Архитектура и ключевые особенности

Kong работает в процессе (in-process) через PyGhidra и JPype, избегая накладных расходов на RPC. Анализ строится на графе вызовов (call graph): функции обрабатываются снизу вверх (от листьев к корням). Это позволяет использовать уже восстановленный контекст вызываемых функций для анализа вызывающих. Ключевые компоненты:

  • Agentic Deobfuscation: Первый в своем роде пайплайн для выявления и удаления обфускации (контрольные потоки, подстановка инструкций, шифрование строк, VM-защита) перед отправкой в LLM.
  • Rich Context Windows: В промпт включается не только декомпиляция, но и кросс-ссылки, строковые ссылки и сигнатуры соседей.
  • Semantic Synthesis: Пост-анализ для унификации имен и синтеза структур на основе паттернов доступа к полям.
  • Cost-Tracking: Встроенный учет токенов и стоимости запросов к разным провайдерам (Anthropic, OpenAI).

Поддерживаемые архитектуры и языки

Эффективность Kong зависит от архитектуры и языка исходного кода. Ниже приведена матрица уверенности (Confidence) результатов анализа:

Архитектура C++ Go Rust Другие
x86 High High Medium Medium
x86-64 High High Medium Medium
ARM (32-bit) High High Medium Low
AArch64 High High Medium Low
MIPS Medium Medium Low Low
PowerPC Medium Medium Low Low

High: надежное восстановление. Medium: частичное восстановление. Low: значительные пробелы в данных.

Почему это важно

Прямой запрос к LLM «что делает этот код?» дает посредственные результаты из-за отсутствия контекста. Kong устраняет этот разрыв, предварительно собирая богатый контекст из анализа Ghidra. Это снижает количество ошибок и токенов, так как синтаксическая нормализация (удаление мертвого кода, восстановление отрицательных литералов) происходит до отправки в модель. Фреймворк поддерживает как Anthropic (Claude), так и OpenAI (GPT-4o), позволяя автоматически выбирать провайдер с валидным ключом API.

Источник: Github ↗