
Фреймворк инструментирования времени выполнения для создания инструментов динамического анализа: трассировка, профилирование, покрытие кода, отладка памяти, фаззинг и дизассемблирование на Windows, Linux, Android и ARM.
DynamoRIO — это система манипулирования кодом во время выполнения, которая поддерживает преобразования кода в любой части программы, пока она выполняется. DynamoRIO предоставляет интерфейс для создания динамических инструментов для самых разных целей: анализ и понимание программ, профилирование, инструментирование, оптимизация, трансляция и т. д. В отличие от многих систем динамического инструментирования, DynamoRIO не ограничивается вставкой вызовов/трамплинов и позволяет произвольные изменения инструкций приложения с помощью мощной библиотеки манипуляции инструкциями IA-32/AMD64/ARM/AArch64. DynamoRIO обеспечивает эффективное, прозрачное и всестороннее манипулирование неизменёнными приложениями, работающими в стандартных операционных системах (Windows, Linux или Android) и на массовом оборудовании IA-32, AMD64, ARM и AArch64. Поддержка Mac OSX находится в разработке.
DynamoRIO является основой для некоторых известных внешних инструментов:
Инструменты, созданные на основе DynamoRIO и доступные в релизном пакете, включают:
Мощный API DynamoRIO скрывает детали базовой инфраструктуры и позволяет разработчику инструментов сосредоточиться на анализе или изменении потока кода приложения во время выполнения. Документация по API включена в релизный пакет, а также её можно просмотреть онлайн. Слайды с наших прошлых учебных занятий также доступны.
DynamoRIO доступен бесплатно в виде двоичного пакета для Windows и Linux. Исходный код DynamoRIO доступен в основном под лицензией BSD.
Используйте список рассылки для вопросов.
Чтобы сообщить об ошибке, используйте трекер проблем.
См. также домашнюю страницу DynamoRIO: http://dynamorio.org/