|
Эта публикация цитируется в 6 научных статьях (всего в 6 статьях)
Платформенно-независимый и масштабируемый инструмент поиска клонов кода в бинарных файлах
А. К. Асланян, Ш. Ф. Курмангалеев, В. Г. Варданян, М. С. Арутюнян, С. С. Саргсян Институт системного программирования РАН
Аннотация:
При разработке программного обеспечения разработчики часто прибегают к копированию того или иного участка кода для достижения желаемого результата. Копирование кода может привести к появлению различных ошибок, а также к увеличению размера исходного и бинарного кода. Задача поиска семантически сходных участков кода (клонов) в бинарных файлах становится более актуальной в связи с недоступностью исходного кода многих программных средств. В данной статье обсуждаются существующие методы поиска клонов бинарного кода и приводится описание разработанного нами инструмента обнаружения клонов в бинарном коде. Работа инструмента разделена на три основных этапа. Первый этап базируется на платформе Binnavi [1] и ответственен за генерацию графов зависимостей программы для каждой функции. В качестве основы для генерации графов используется платформенно-независимый язык REIL (Reverse Engineering Intermediate Language). Использование языка REIL позволяет генерировать графы сразу для нескольких целевых архитектур (x86, x86-64, ARM, MIPD, PPC), тем самым обеспечивает независимость инструмента от целевой архитектуры. На втором этапе производится поиск клонов на основе ранее созданных графов. Для каждой пары графов строится наибольший общий подграф, на основе которого определяются клоны бинарного кода. На третьем этапе полученные клоны визуализируются для удобного анализа полученных результатов.
Ключевые слова:
клоны кода, семантический анализ бинарного кода, REIL, граф зависимостей программы.
Образец цитирования:
А. К. Асланян, Ш. Ф. Курмангалеев, В. Г. Варданян, М. С. Арутюнян, С. С. Саргсян, “Платформенно-независимый и масштабируемый инструмент поиска клонов кода в бинарных файлах”, Труды ИСП РАН, 28:5 (2016), 215–226
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/tisp77 https://www.mathnet.ru/rus/tisp/v28/i5/p215
|
|