RUS  ENG
Полная версия
ЖУРНАЛЫ // Труды института системного программирования РАН // Архив

Труды ИСП РАН, 2019, том 31, выпуск 6, страницы 89–98 (Mi tisp471)

Исследование и разработка межпроцедурных алгоритмов поиска дефектов в исполняемом коде программ

Г. С. Ивановab, П. М. Пальчиковc, А. Ю. Тарасовc, Г. С. Акимовc, А. К. Асланянd, В. Г. Варданянd, М. С. Арутюнянd, Г. С. Керопянd

a Московский авиационный институт (национальный исследовательский университет)
b Институт системного программирования им. В.П. Иванникова РАН
c Московский государственный технический университет имени Н.Э. Баумана
d Российско-Армянский университет

Аннотация: В последнее время всё больше компаний, производящих программное обеспечение, заинтересованы в инструментах повышения стабильности и безопасности их продукта. Используемые разработчиками закрытые библиотеки и сторонние приложения могут содержать дефекты, использование которых злоумышленником или пользователем может привести к нарушению стабильности и безопасности работы приложения. В ряде случаев исходный код проблемных участков может отсутствовать. Приобретают популярность статические методы поиска дефектов в коде, позволяющие находить дефекты, недостижимые для динамических методов. Статические методы представляют собой алгоритмы исследования статической модели программы, в том числе графа вызовов, потока управления, потока данных. Исследование бинарного кода предполагает восстановление статической модели программы из бинарного файла путём дизассемблирования, восстановления границ функций, трансляцию в промежуточное представление и восстановление графа вызовов. Дефекты в современных кодовых базах, как правило, проявляются лишь на определённом множестве путей в графе вызовов, что требует межпроцедурных алгоритмов поиска дефектов. Целью данной работы является разработка методов межпроцедурных алгоритмов поиска дефектов в бинарном коде, обладающих хорошей масштабируемостью, набором поддерживаемых архитектур и приемлемой точностью. Алгоритмы построены на базе инструмента ИСП РАН Binside.

Ключевые слова: статический анализ кода, поиск ошибок, анализ исполняемого кода.

DOI: 10.15514/ISPRAS-2019-31(6)-5



© МИАН, 2024