Dynamorio
О динаморио
Dynamorio - это система манипуляции с кодом выполнения, которая поддерживает преобразования кода в любой части программы, пока она выполняется. Dynamorio Экспортирует интерфейс для создания динамических инструментов для широкого спектра использования: анализ программы и понимание, профилирование, инструментация, оптимизация, перевод и т. Д. В отличие от многих динамических систем инструментов, Dynamorio не ограничивается внедрением вызовов/батутов и позволяет производить произвольные модификации инструкций применения через мощную библиотеку MANIPUTATION IACRIPUT. Dynamorio обеспечивает эффективные, прозрачные и всесторонние манипулирование немодифицированными приложениями, работающими в складе операционных систем (Windows, Linux или Android) и товара IA-32, AMD64, ARM и AARCH64. Поддержка Mac OSX находится в процессе.
Существующие инструменты на основе динамори
Dynamorio является основой для некоторых известных внешних инструментов:
- Эмулятор инструкции ARM (Armie)
- Winafl, инструмент Fuzzing Windows, в качестве инструментального и покрытия кода
- Мелкозернистый профилировщик для Arm DrcctProf
- Портативная и эффективная структура для мелкозернистых профилировщиков стоимости vclinic
- Осессийный дезинфицирующий фреймворк GWPSAN
Инструменты, построенные на Dynamorio и доступны в пакете релиза, включают:
- Инструмент отладки памяти доктор память
- Структура трассировки и анализа DRMEMTRACE с несколькими инструментами, которые работают как в онлайн (с многопроцессовой поддержкой), так и в автономных инструкциях и следах адреса памяти:
- Симулятор кеша drcachesim
- TLB моделирование
- Повторное расстояние
- Повторное время
- Микс -код
- Функциональное отслеживание вызова
- Унаследованный эмулятор процессора Drcpusim
- Инструмент «Строка для Windows» Drstrace
- Инструмент покрытия кода DRCOV
- Инструмент трассировки библиотеки DRLTRACE
- Инструмент по отслеживанию адресов памяти Memtrace (в автономных трассах DRMEMTRACE быстрее с более окружающей инфраструктурой, но это более простая отправная точка для индивидуального отслеживания адреса памяти)
- Инструмент трассировки значения памяти Мемваль
- Инструмент инструмента по отслеживанию инструкций (в автономных трассах DRMEMTRACE более быстрее с окружающей инфраструктурой, но это более простая отправная точка для индивидуальной трассировки инструкций)
- Базовый инструмент трассировки блока BBBUF
- Инструмент подсчета инструкций Inscount
- Динамический инструмент тестирования пузырьков доктор Fuzz
- Инструмент разборки Drdisas
- И больше, включая количество оптовых кодов, измерительные приборы и т. Д.: См. Образцы API
Создание собственных инструментов
Мощный API Dynamorio выпускает детали базовой инфраструктуры и позволяет строителю инструментов сосредоточиться на анализе или изменении потока кода выполнения приложения. Документация API включена в пакет релиза и также может быть просмотрена в Интернете. Слайды из наших прошлых учебников также доступны.
Загрузка Dynamorio
Dynamorio доступен бесплатно в качестве двоичного пакета как для Windows, так и для Linux. Исходный код Dynamorio доступен в основном по лицензии BSD.
Получение помощи
Используйте список обсуждений, чтобы задать вопросы.
Чтобы сообщить об ошибке, используйте трекер выпуска.
См. Также домашняя страница Dynamorio: http://dynamorio.org/