|
Эта публикация цитируется в 2 научных статьях (всего в 2 статьях)
Применение статической бинарной инструментации с целью проведения динамического анализа программ для платформы ARM
М. К. Ермаков, С. П. Вартанов Институт системного программирования РАН
Аннотация:
В настоящее время динамический анализ программ активно используется для контроля качества программных продуктов, задач профилирования и поиска уязвимостей. В данной работе рассматриваются особенности одного из методов обработки кода программы в рамках динамического анализа — статической инструментации исполняемого кода, подразумевающей предварительное изменение исполняемых файлов или файлов динамических библиотек. Предлагается метод статической инструментации, позволяющий обрабатывать файлы исполняемого кода в формате ELF для архитектуры ARM.
Предлагаемый метод включает возможности настройки инструментации с помощью пользовательских спецификаций, задающих точки внедрения кода и необходимый внедряемый код. В статье описываются основные шаги метода: обработка пользовательских спецификаций, разбор кода программы и создание блоков инструментационного кода по числу точек инструментации, внедрение блоков инструментационного кода в программу, модификация кода программы с целью осуществления передачи управления на инструментационный код во время выполнения программы.
Модификация файлов исполняемого кода программы проводится в рамках ограничений, накладываемых спецификациями формата ARM ELF — распределение кода, данных и управляющей информации по секциям и сегментам, обрабатываемым динамическим загрузчиком операционной системы, и дополнительными внешними и внутренними зависимостями между секциями, порождаемыми во время генерации исполняемого кода. Непосредственный метод инструментации включает замену блоков инструкций в точках инструментации на инструкции безусловного перехода на соответствующий блок инструментационного кода и перенос заменённых инструкций в блок инструментационного кода для сохранения исходной функциональности программы. Для поддержания корректности работы в блок инструментационного кода также добавляются инструкции сохранения и восстановления состояния и инструкция безусловного перехода для возврата управления после выполнения инструментационного кода. Дополнительно в статье описываются модификации, направленные на добавление информации о внешних символах, используемых в инструментационном коде. Данные модификации необходимы для поддержания корректности работы динамического загрузчика на этапе разрешения внешних зависимостей.
В статье приведены результаты практических экспериментов по применению разработанной программной системы, реализующей предлагаемый метод. На примере задачи подсчёта базовых блоков разработанная система показала более высокую производительность по сравнению с распространённым средством инструментации Valgrind.
Ключевые слова:
статическая бинарная инструментация, динамический анализ, архитектура ARM, формат ELF, Android.
Образец цитирования:
М. К. Ермаков, С. П. Вартанов, “Применение статической бинарной инструментации с целью проведения динамического анализа программ для платформы ARM”, Труды ИСП РАН, 27:1 (2015), 5–24
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/tisp110 https://www.mathnet.ru/rus/tisp/v27/i1/p5
|
Статистика просмотров: |
Страница аннотации: | 319 | PDF полного текста: | 206 | Список литературы: | 33 |
|