Декомпилятор Kuna: код почти весь от LLM, но сравнялся с IDA Pro
Исследователь, работающий приглашённым научным сотрудником в Air Force Research Lab (AFRL) и research fellow в компании Metalware, а до этого много лет, core-разработчиком декомпилятора angr во время своей аспирантуры, выпустил экспериментальный декомпилятор Kuna. Особенность проекта в том, что почти весь код написан не человеком: по словам автора, LLM (большая языковая модель) написала практически каждую строку кода.
По ключевой метрике, структурированию управляющего потока в C-программах, Kuna уже приблизился к промышленному стандарту IDA Pro (версия 9.2): в собственных бенчмарках Kuna даёт идеальное структурирование на 44,4% функций против 45,7% у IDA Pro. Автор подчёркивает, что этого удалось достичь за счёт «автономного дообучения»: LLM изучает случаи, где Kuna уступает IDA Pro по фундаментальным метрикам качества (сами эти метрики появились лишь в последние несколько лет), и через многократные пробы и ошибки учится решать те же задачи, что и более зрелый декомпилятор.
В процессе доработки за образец брали не только IDA Pro, но и Ghidra и декомпилятор angr. Так LLM переизобрела в Kuna более 20 фундаментальных возможностей angr, тех, разработку которых у команды в своё время заняла годы научной работы. Технически Kuna, это порт декомпилятора Ghidra (изначально написанного АНБ США) на язык Rust, переработанный так, чтобы приблизить его архитектуру к пайплайну angr.
Автор прямо оговаривает ограничения проекта. Во-первых, Kuna был бы невозможен без десятилетий научной и инженерной работы над декомпиляцией: проект целиком опирается на существующий код Ghidra и наработки angr, и автор не собирается бросать работу над angr. Во-вторых, само «автономное» дообучение требует научного понимания задачи со стороны человека: чтобы запустить цикл улучшений, потребовалось сначала открыть новые фундаментальные метрики качества и понять, что именно нужно закладывать в осмысленный бенчмарк, то есть это не полностью автоматический процесс, а исследование, которым по-прежнему руководят люди. В-третьих, структурирование, лишь одна часть декомпиляции: Kuna всё ещё нуждается в доработке типов, оптимизаций, восстанавливаемости кода в компилируемый вид (recompilability) и идентификации переменных. Автор называет проект открытым экспериментом и приглашает сообщество посмотреть код и присоединиться к разработке.
Ключевые факты
- Kuna, экспериментальный декомпилятор, который выпустил исследователь AFRL и Metalware, ранее много лет проработавший core-разработчиком декомпилятора angr
- Почти весь код Kuna написан не человеком: по словам автора, LLM написала практически каждую строку проекта
- На бенчмарке по структурированию управляющего потока в C-программах Kuna даёт идеальный результат на 44,4% функций против 45,7% у IDA Pro 9.2, почти сравнялся с индустриальным стандартом
- Прогресс достигнут через «автономное дообучение»: LLM изучает, где Kuna отстаёт от IDA Pro, Ghidra и angr по фундаментальным метрикам, и переизобрела более 20 возможностей angr методом проб и ошибок
- Технически Kuna, Rust-порт декомпилятора Ghidra (изначально от АНБ США), переработанный под архитектуру angr; автор подчёркивает, что структурирование, лишь часть задачи, типы, оптимизации и распознавание переменных ещё предстоит доработать
Почему это важно
Это конкретный публичный пример того, как LLM-агент доводит сложный инженерный инструмент до уровня, близкого к индустриальному стандарту, не просто генерируя код по запросу, а через замкнутый цикл «автономного дообучения»: модель сравнивает себя с эталонными инструментами по чётким метрикам и итеративно устраняет отставание. Декомпиляция, задача с давней научной историей и высоким порогом входа, поэтому даже частичный успех здесь показателен для дискуссии о пределах агентного кодинга.
Кому это важно
Специалистам по реверс-инжинирингу и информационной безопасности, которые выбирают инструменты декомпиляции; разработчикам самих декомпиляторов, Ghidra, angr, IDA Pro; и всем, кто следит за экспериментами по автономному самоулучшению ИИ-агентов в сложных инженерных доменах, а не только в типовых задачах программирования.
Как это применить
Автор приглашает всех желающих посмотреть исходный код проекта и подключиться к разработке; отдельный технический пост с деталями метода обещан в будущем. Для тех, кто хочет повторить подход в своей области: ключевое условие, заранее иметь зрелый эталонный инструмент и чёткие, желательно недавно открытые фундаментальные метрики качества, по которым LLM может измерять собственное отставание и целенаправленно его сокращать; без этой человеческой научной подготовки автономный цикл дообучения не запускается.
Можно ли доверять
Автор, не случайный энтузиаст: он приглашённый научный сотрудник AFRL, research fellow в Metalware и бывший core-разработчик декомпилятора angr, то есть обладает профильной экспертизой для такой оценки. При этом приведённые цифры (44,4% против 45,7%), результат собственного бенчмарка автора, независимой проверки третьей стороной пока нет, а обсуждение на Hacker News на момент публикации собрало всего пару комментариев. Сам автор честно называет проект экспериментом и заранее перечисляет его ограничения, что скорее повышает доверие к тексту, чем создаёт ощущение маркетингового приукрашивания.
Риски и подводные камни
Преимущество над IDA Pro не зафиксировано, по приведённым цифрам IDA Pro (45,7%) всё ещё немного впереди Kuna (44,4%) по идеальному структурированию, «почти сравнялся» не значит «превзошёл». Структурирование управляющего потока, лишь один из компонентов декомпиляции: сам автор признаёт, что типы, оптимизации, восстанавливаемость кода и идентификация переменных пока не доведены до того же уровня. Наконец, «автономность» дообучения условна: она опирается на заранее найденные людьми метрики и научное понимание задачи, то есть без постоянного участия исследователей-экспертов процесс не воспроизводится сам по себе.
«Когда я говорю, что разрабатывал этот проект, стоит уточнить: почти каждую строку кода в нём написала LLM.»
— автор проекта Kuna