Идентификация статически связанных библиотек в исполняемых файлах с использованием сопоставления графов зависимостей программы
Идентификация статически связанных библиотек в исполняемых файлах с использованием сопоставления графов зависимостей программы
Аннотация
Статически связанные библиотеки упрощают распространение и использование программного обеспечения, но усложняют анализ бинарных файлов, поскольку код библиотеки становится неотличимым от кода программы после компиляции. Идентификация встроенных библиотек и их версий имеет важное значение для анализа состава программного обеспечения, оценки уязвимостей и соблюдения лицензионных требований. Несмотря на значительный прогресс существующих решений, достижение точной идентификации библиотек при различных оптимизациях компилятора и нескольких версиях библиотек остается сложной задачей. В данной статье представляется метод нахождения статически связанных библиотек в исполняемых файлах. Предложенный подход строит графы зависимостей программ и графы вызовов функций как для анализируемого исполняемого файла, так и для версий-кандидатов библиотек, после чего сопоставляет соответствующие функции с помощью масштабируемого алгоритма сравнения графов. Метод был реализован и протестирован на исполняемых файлах, содержащих различные версии широко используемых библиотек. Результаты экспериментов показывают, что предложенный подход обеспечивает в среднем 91%-ную точность и 99%-ную полноту идентификации встроенных библиотек, сохраняя при этом практическую масштабируемость.
Ключевые слова
Издание
Труды Института системного программирования РАН, том 38, вып. 4, часть 1, 2026, стр. 89-100.
ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).
DOI: 10.15514/ISPRAS-2026-38(4)-5
Для цитирования
Полный текст статьи в формате pdf
Вернуться к содержанию тома