Abstract

The article presents the experience of using software emulators as a tool for dynamic analysis of binary code: as a machine instruction tracer, and as a smart interactive debugger. We provide a description of deterministic replay implemented in the QEMU emulator to supply the stated functionalities.

Highlights

  • Программные эмуляторы успешно применяются в различных областях: как средство консолидации серверов, во время кросс-платформенной разработки, при замещении устаревшей аппаратуры

  • Насколько точно перечисленные выше эмуляторы выполняют команды целевых архитектур, все они страдают от одной существенной проблемы – крайне низкой скорости работы во время снятия трассы выполнения

  • Emulator is considered as tracer of machine commands layer and as interactive debugging tool

Read more

Summary

Введение

Программные эмуляторы успешно применяются в различных областях: как средство консолидации серверов, во время кросс-платформенной разработки, при замещении устаревшей аппаратуры. В последние годы эмуляторы активно начали применять при анализе бинарного кода. Изучение вредоносного кода, как правило, ведется в виртуальной машине, а не на реальной аппаратуре. Помимо вопроса защиты окружения от влияния изучаемого кода, решается и обратная задача – разграничивается предмет изучения и инструмент анализа. Факт работы отладчика в общем окружении легко выявляется, после чего изучаемая программа может либо целенаправленно изменить свое поведение, либо попытаться нарушить процесс отладки. Программные эмуляторы позволяют собирать детальные трассы выполнения уровня машинных команд, которые затем можно анализировать с высокой степенью автоматизации. Возможность выполнения анализа базируется на том, что для целевой процессорной архитектуры существует трассирующий полносистемный эмулятор, т.е. Работа поддержана грантом РФФИ 12-01-31417 277 усовершенствования, внесенные в эмулятор с открытым исходом QEMU, ставший основным средством сбора трасс

Опыт сбора трасс в программных эмуляторах
Устройство механизма детерминированного воспроизведения
Запись журнала событий
Детерминированное воспроизведение журнала событий
Контроль корректности воспроизведения журнала
Сбор трасс для последующего автоматизированного анализа
Расширение возможностей отладки
Сохранение состояний виртуальной машины
Детерминированная и обратная отладка
Известные инструменты обратной отладки
Реализация обратной отладки
Заключение
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call