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

Труды ИСП РАН, 2024, том 36, выпуск 3, страницы 139–160 (Mi tisp893)

О методах извлечения алгоритмов из бинарного кода

И. И. Кулагинab, В. А. Падарянabc, В. А. Кошкинa

a Институт системного программирования им. В.П. Иванникова РАН
b Московский государственный университет имени М. В. Ломоносова
c Национальный исследовательский университет "Высшая школа экономики", г. Москва

Аннотация: В работе предложен итеративный метод извлечения алгоритмов из бинарного кода и построения их высокоуровневого представления. Построение алгоритмов предложенным методом реализовано в виде анализа динамических слайсов. Метод базируется на алгоритме отслеживания потока данных в прямом или обратном направлениях и выполняет композицию динамических состояний в функциональные блоки двух уровней представления. Также предложены два уровня представления извлеченных алгоритмов – функциональная схема слайса и схема выполнения алгоритма. Функциональная схема слайса представляет собой структурированное представление слайса и является более низкоуровневым, чем схема выполнения алгоритма. Схемой выполнения алгоритма является представление, состоящее только из резюме функций и их параметров. Предложенный метод построения алгоритмов и способы их представления позволяют повысить продуктивность аналитика при решении задач анализа безопасности кода, улучшить качество полученных результатов анализа. Разработанные способы представления алгоритмов могут быть использованы и для реализации алгоритмов автоматического анализа безопасности кода. Кроме того, авторы выполнили обзор подходов к извлечению алгоритмов из бинарного кода и способов их представления инструментами статического анализа кода, рассмотрены их некоторые недостатки и ограничения.

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

DOI: 10.15514/ISPRAS-2024-36(3)-10



© МИАН, 2024