Jump to content

ДинамоРИО

ДинамоРИО
Разработчик(и) Авторы ДинамоРИО
Первоначальный выпуск июнь 2002 г .; 22 года назад ( 2002-06 )
Стабильная версия
10.0.0 [1] / 17 августа 2023 г .; 11 месяцев назад ( 17 августа 2023 г. )
Предварительный выпуск
7.0.0-RC1 / 3 февраля 2017 г .; 7 лет назад ( 03.02.2017 )
Репозиторий
Операционная система Андроид , Линукс , Винда
Платформа AArch32 , AArch64 , IA-32 , x86-64
Тип Инструментарий , профилировщик
Лицензия БСД
Веб-сайт dynamorio.org

DynamoRIO — это лицензированная BSD, среда динамического двоичного инструментирования, для разработки инструментов динамического анализа программ . DynamoRIO предназначен для приложений пользовательского пространства под операционными системами Android , Linux и Windows, работающими на AArch32 , IA-32 и x86-64 архитектурах набора команд .

DynamoRIO изначально создавался как система динамической двоичной оптимизации , но с тех пор используется для инструментов безопасности, отладки и анализа. DynamoRIO возникла в результате сотрудничества системы оптимизации Dynamo компании Hewlett-Packard и исследовательской группы Runtime Introspection and Optimization (RIO). [2] в Массачусетском технологическом институте ; отсюда и общее название «ДинамоРИО». Впервые он был выпущен публично как проприетарный набор двоичных инструментов в июне 2002 года, а затем в январе 2009 года был открыт с открытым исходным кодом под лицензией BSD.

DynamoRIO — это виртуальная машина процесса , которая перенаправляет выполнение программы из исходного двоичного кода в копию этого кода. Затем к этой копии добавляются инструменты, выполняющие действия нужного инструмента. Никаких изменений в исходную программу не вносится, ее не нужно каким-либо образом специально готовить. DynamoRIO работает полностью во время выполнения и обрабатывает устаревший код, динамически загружаемые библиотеки, динамически генерируемый код и самомодифицирующийся код.

DynamoRIO отслеживает весь поток управления , чтобы полностью зафиксировать выполнение целевой программы. Этот мониторинг увеличивает накладные расходы, даже если инструмент отсутствует. Средние накладные расходы DynamoRIO составляют 11 процентов. [3]

DynamoRIO API абстрагирует детали процесса виртуализации и фокусируется на мониторинге или изменении потока динамического кода программы. Инструмент может вставлять батуты в программу , которые вызывают действия инструмента в определенных точках программы. Инструмент также может вставлять инструменты на уровне ассемблера , что обеспечивает детальный контроль над действиями инструмента и его производительностью. DynamoRIO поддерживает адаптивную оптимизацию и адаптивное оснащение, позволяя инструменту удалять или изменять свое оснащение в любой момент выполнения целевой программы.

DynamoRIO вызывает зарегистрированные инструментом обратные вызовы в ряде общих точек событий программы, таких как создание потока, загрузка библиотеки, системные вызовы, сигналы или исключения. программы Его API также позволяет проверять библиотеки и адресное пространство в дополнение к ее коду.

API-интерфейс DynamoRIO и обратные вызовы событий разработаны с учетом кросс-платформенности, что позволяет одному и тому же коду инструмента работать как в Windows, так и в Linux, а также в IA-32 и x86-64. DynamoRIO обеспечивает прозрачность инструмента , изолируя ресурсы инструмента, такие как его стек , память и доступ к файлам, от программы, в которой инструмент работает.

DynamoRIO содержит библиотеки, которые расширяют его API, обеспечивая доступ к таблице символов , перенос и замену функций, а также утилиты отслеживания адресов памяти.

Инструменты

[ редактировать ]

Первые инструменты, созданные для DynamoRIO, были ориентированы на динамическую оптимизацию. [4] Для различных целей был создан ряд исследовательских инструментов, включая проверку на наличие вредоносных данных. [5] и профилирование . [6]

Программа пастырства

[ редактировать ]

Применение DynamoRIO в сфере безопасности привело к появлению метода, называемого программным пастырством . [7] Инструментарий управления программой отслеживает происхождение каждой инструкции программы и поток управления между инструкциями, чтобы предотвратить уязвимостей безопасности получение контроля над программой с помощью . В 2003 году управление программами было коммерциализировано под торговой маркой Memory Firewall программного обеспечения для предотвращения вторжений на хост в начинающей компании Determina. Determina была приобретена VMware в августе 2007 года. [8]

Доктор Память

[ редактировать ]

Dr. Memory с открытым исходным кодом — это отладчик памяти , созданный на основе DynamoRIO и выпущенный под лицензией LGPL . [9] Dr. Memory контролирует распределение памяти и доступ к ней, используя теневую память . Он обнаруживает ошибки программирования, связанные с памятью, такие как доступ к неинициализированной памяти, доступ к освобожденной памяти, переполнение и опустошение кучи, а также утечки памяти . Его набор функций аналогичен инструменту Valgrind на базе Memcheck , хотя он работает как в Windows, так и в Linux и в два раза быстрее, чем Memcheck. [10]

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ «Выпуск 10.0.0» . 17 августа 2023 г. Проверено 18 сентября 2023 г.
  2. ^ Проект RIO: самоанализ и оптимизация во время выполнения
  3. ^ Прозрачный динамический инструментарий, рисунок 4.
  4. ^ Инфраструктура для адаптивной динамической оптимизации
  5. ^ TaintTrace: эффективная трассировка потока с динамической двоичной перезаписью
  6. ^ PiPA: Конвейерное профилирование и анализ в многоядерных системах
  7. ^ Безопасное выполнение через управление программой
  8. ^ VMware приобретает поставщика HIPS Determina
  9. ^ Доктор Память: отладчик памяти для Windows и Linux
  10. ^ Практическая проверка памяти с помощью Dr. Memory
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9c87c4c2f192610d6aa420b135551100__1709379060
URL1:https://arc.ask3.ru/arc/aa/9c/00/9c87c4c2f192610d6aa420b135551100.html
Заголовок, (Title) документа по адресу, URL1:
DynamoRIO - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)