Авторы представляют конвейер для восстановления исходного кода из stripped-бинарных функций путем объединения обратной инженерии, якорного поиска и рассуждений большой языковой модели.
- Метод определяет исходную функцию из базы данных, а не генерирует декомпилированный псевдокод.
- Якоря, такие как строки, константы, внешние вызовы и имена функций, извлекаются с помощью Ghidra.
- Кандидаты извлекаются через поиск по инвертированному индексу и переупорядочиваются LLM на основе дизассемблирования и метаданных.
- На stripped tcpdump бинарном файле с высококачественной базой данных метод достигает 95.2% покрытия инструкций ассемблера.
- Эксперименты на базе данных на основе GitHub показали более низкую производительность со средним покрытием инструкций 35.5% из-за пропусков при поиске.
Результаты показывают, что восстановление исходного кода на уровне бинарных файлов эффективно при поддержке высококачественных баз данных.