Сборники трудов ИСП РАН


Платформенно-независимый и масштабируемый инструмент поиска клонов кода в бинарных файлах

А.К. Асланян (ИСП РАН, Москва, Россия)
Ш.Ф. Курмангалеев (ИСП РАН, Москва, Россия)
В.Г. Варданян (ИСП РАН, Москва, Россия)
М.С. Арутюнян (ИСП РАН, Москва, Россия)
С.С. Саргсян (ИСП РАН, Москва, Россия)

Аннотация

При разработке программного обеспечения разработчики часто прибегают к копированию того или иного участка кода для достижения желаемого результата. Копирование кода может привести к появлению различных ошибок, а также к увеличению размера исходного и бинарного кода. Задача поиска семантически сходных участков кода (клонов) в бинарных файлах становится более актуальной в связи с недоступностью исходного кода многих программных средств. В данной статье обсуждаются существующие методы поиска клонов бинарного кода и приводится описание разработанного нами инструмента обнаружения клонов в бинарном коде. Работа инструмента разделена на три основных этапа. Первый этап базируется на платформе Binnavi [1] и ответственен за генерацию графов зависимостей программы для каждой функции. В качестве основы для генерации графов используется платформенно-независимый язык REIL (Reverse Engineering Intermediate Language). Использование языка REIL позволяет генерировать графы сразу для нескольких целевых архитектур (x86, x86-64, ARM, MIPD, PPC), тем самым обеспечивает независимость инструмента от целевой архитектуры. На втором этапе производится поиск клонов на основе ранее созданных графов. Для каждой пары графов строится наибольший общий подграф, на основе которого определяются клоны бинарного кода. На третьем этапе полученные клоны визуализируются для удобного анализа полученных результатов

Ключевые слова

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

Издание

Труды Института системного программирования РАН, том 28, вып. 5, 2016, стр. 215-226.

ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).

DOI: 10.15514/ISPRAS-2016-28(5)-13

Полный текст статьи в формате pdf Вернуться к содержанию тома