Авторы представляют конвейер для восстановления исходного кода из stripped-бинарных функций путем объединения обратной инженерии, якорного поиска и рассуждений большой языковой модели.

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

Результаты показывают, что восстановление исходного кода на уровне бинарных файлов эффективно при поддержке высококачественных баз данных.