Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
pyrebox — Песочница обратного проектирования с возможностью написания сценариев на Python, фреймворк для инструментирования и инспекции виртуальных машин на основе QEMU. | Kitploit
Инструменты/GitHubGitHub/cisco-talos/pyrebox
Динамический анализ (песочница)Криминалистика памятиОбратная инженерияОтладчикиАнализ вредоносных программЦифровая криминалистикаАнализ Бинарных ФайловОбучение и ОбразованиеArchived
GitHubcisco-talos/pyrebox

pyrebox

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

1.7k25482 лет назадПроверено Kitploit
РепозиторийСайт

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

================ АРХИВИРОВАННЫЙ ПРОЕКТ

ЭТОТ ПРОЕКТ БЫЛ АРХИВИРОВАН, И ОЧЕРЕДЬ ЗАПРОСОВ ЗАБЛОКИРОВАНА. ПРОЕКТ БУДЕТ ОСТАВЛЕН В ОБЩЕМ ДОСТУПЕ ТОЛЬКО ДЛЯ СПРАВОЧНЫХ ЦЕЛЕЙ.

.. image:: docs/media/pyrebox_logo_light_bg.png

.. _QEMU: http://qemu.org/ .. _DECAF: https://github.com/sycurelab/DECAF .. _S2E: https://github.com/dslab-epfl/s2e .. _AVATAR: https://github.com/avatartwo .. _PANDA: https://github.com/panda-re/panda .. _Volatility: http://www.volatilityfoundation.org/ .. _BUILD: BUILD.rst .. _здесь: https://github.com/Cisco-Talos/pyrebox/issues .. _слайды: https://github.com/Cisco-Talos/pyrebox/tree/master/docs/pyrebox_hitb_ams.pdf .. _доступны: https://github.com/Cisco-Talos/pyrebox/tree/master/docs/pyrebox_euskalhack.pdf .. _скрипты: https://github.com/Cisco-Talos/pyrebox/tree/master/scripts .. _readthedocs.io: https://pyrebox.readthedocs.io/en/latest/ .. _вопросы: https://github.com/Cisco-Talos/pyrebox/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Aquestion%20 .. _презентация: https://www.youtube.com/watch?v=F2voG87obzM .. _Конкурс: https://volatility-labs.blogspot.com/2017/11/results-from-5th-annual-2017-volatility.html

PyREBox — это Python-скриптовая песочница для реверс-инжиниринга. Она основана на QEMU и направлена на помощь в реверс-инжиниринге, предоставляя возможности динамического анализа и отладки с другой точки зрения. PyREBox позволяет проверять работающую QEMU VM, изменять её память или регистры и инструментировать её выполнение, создавая простые скрипты на Python для автоматизации любого вида анализа. QEMU (работая как эмулятор всей системы) эмулирует полную систему (ЦП, память, устройства...). Используя методы VMI, она не требует внесения изменений в гостевую операционную систему, так как прозрачно получает информацию из её памяти во время выполнения.

Несколько академических проектов, таких как DECAF_, PANDA_, S2E_ или AVATAR_, ранее использовали инструментацию на основе QEMU для решения задач реверс-инжиниринга. Эти проекты позволяют писать плагины на C/C++ и реализуют несколько продвинутых функций, таких как динамический анализ потоков данных (taint analysis), символьное выполнение или даже запись и воспроизведение трасс выполнения. С PyREBox мы стремимся применить эту технологию, сосредоточившись на простоте дизайна и удобстве использования системы для аналитиков угроз.

PyREBox выиграл Volatility Plugin Конкурс_ в 2017 году!

Этот инструмент был представлен на HITB Amsterdam 2018. Вы можете посмотреть слайды_ или посмотреть презентацию_. Он также был представлен на третьем выпуске Конгресса безопасности EuskalHack (слайды доступны_).

Что нового

Не забудьте загрузить последнюю версию PyREBox, чтобы насладиться его новейшими функциями. PyREBox находится в активной разработке, и новые интересные функции еще впереди! Ветка master всегда должна содержать стабильную версию, а ветки dev содержат последние, разрабатываемые функции. Следующий список объявлений относится к ветке master и дате, когда изменения разработки были объединены в master.

  • [Дек 5, 2019] Бета-версия PyREBox3, готовая в ветке python3migration. Инструмент портирован на Python3 и Volatility3. Плагины пока не портированы.
  • [Июн 21, 2019] Обновление QEMU до версии 4.0.0 с поддержкой MTTCG (многопоточный TCG). Особая благодарность @richsurgenor за его ценный вклад в это обновление.
  • [Июн 17, 2019] Слияние ветки dev (Malware monitor 2).
  • [Июн 17, 2019] Автоматизация движения мыши.
  • [Июн 17, 2019] Обновление volatility.
  • [Окт 17, 2018] Добавлена функция API для получения системного времени из гостевых Windows.
  • [Окт 17, 2018] Добавлена поддержка символов в классе BP (breakpoint).
  • [Окт 17, 2018] Добавлен кэш символов (файл хоста). См. примеры файлов конфигурации (pyrebox.conf.WinXPSP3x86).
  • [Окт 17, 2018] Изменено получение символов для загрузки DLL-файлов с диска.
  • [Окт 10, 2018] Добавлена экспериментальная поддержка получения неотображенных страниц памяти.
  • [0ct 10, 2018] Добавлена интеграция с The Sleuth Kit.
  • [Авг 02, 2018] Добавлены скрипты автозапуска.
  • [Июл 26, 2018] Загружены слайды презентации EuskalHack 2018.
  • [Июл 02, 2018] Исправления для поддержки CentOS 7.
  • [Июн 25, 2018] Добавлены скрипты, представленные на EuskalHack 2018.
  • [Май 31, 2018] Обновление до Qemu v2.12.0.
  • [Май 29, 2018] Добавлена возможность вызова функций-триггеров (на C/C++) из скриптов Python.
  • [Май 29, 2018] Изменен формат параметров обратного вызова. См. документацию. Старый стиль всё ещё используется по умолчанию.
  • [Апр 28, 2018] Создана ветка разработки для новых и потенциально нестабильных функций в PyREBox.
  • [Апр 13, 2018] Представлен PyREBox на HITB Amsterdam (трек CommSec).
  • [Апр 13, 2018] Добавлены скрипты мониторинга вредоносного ПО (mw_mon).
  • [Мар 08, 2018] Теперь триггеры вызываются для всех процессов в системе (а не только для отслеживаемых). См. документацию
  • [Мар 08, 2018] Изменены параметры обратного вызова чтения/записи памяти. См. документацию и примеры.
  • [Мар 08, 2018] Добавлены точки останова на чтение/запись физических адресов памяти.
  • [Мар 08, 2018] Добавлены обратные вызовы загрузки и удаления модулей.
  • [Ноя 02, 2017] Добавлен гостевой агент для Linux 32 и 64 бит.
  • [Окт 23, 2017] Добавлен гостевой агент для Windows 32 и 64 бит.
  • [Окт 11, 2017] Добавлен разбор символов модулей Linux.
  • [Сен 22, 2017] Добавлена поддержка перезагрузки модулей.
  • [Сен 20, 2017] Добавлен пользовательский обратный вызов функции в класс BP.
  • [Сен 20, 2017] Обновление до Qemu v2.10.0.
  • [Авг 31, 2017] Частичная поддержка гостевых Linux.

Установка

Предоставляется скрипт сборки. Для получения подробной информации о зависимостях, пожалуйста, обратитесь к BUILD_. Также предоставляется Dockerfile.

Документация

Документация этого проекта размещена на readthedocs.io_.

Ошибки, вопросы и поддержка

Если вы считаете, что нашли ошибку, пожалуйста, сообщите об этом здесь_.

Прежде чем создавать новый запрос, пожалуйста, ознакомьтесь с вопросами_, открытыми другими пользователями.

Эта программа предоставляется «КАК ЕСТЬ», и никакая поддержка не гарантируется. Тем не менее, чтобы помочь нам решить ваши проблемы, пожалуйста, включите как можно больше информации для воспроизведения ошибки:

  • Операционная система, используемая для компиляции и запуска PyREBox.
  • Конкретная версия операционной системы и цель эмуляции, которую вы используете.
  • Команда оболочки / скрипт / задача, которую вы пытались выполнить.
  • Любая информация об ошибке, такая как сообщения об ошибках, трассировка стека Python (или IPython) или трассировка стека QEMU.
  • Любая другая соответствующая информация.

План развития

  • Конфигурация образов ВМ и консоль управления.
  • Поддержка ARM, MIPS и других архитектур.
  • Завершение поддержки гостевых систем GNU/Linux (см. issues).

Запуск ВМ

PyREBox основан на QEMU, поэтому для запуска ВМ в PyREBox вам нужно запустить её точно так же, как вы загружали QEMU VM. Предоставляется несколько примеров скриптов: start_i386.sh, start_x86_64.sh, вы можете использовать их в качестве примера.

В настоящее время поддерживается только одна опция монитора QEMU: stdio (-monitor stdio).

Цели этого проекта

  • Предоставить платформу эмуляции целой системы с простым интерфейсом для проверки эмулируемой гостевой системы.

    • Точная инструментация системных событий.
    • Встроенная интеллектуальная система виртуальных машин (VMI), основанная на volatility. Не требуется установка агента или драйвера в гостевую систему.
    • Интерфейс оболочки на основе IPython.
    • Движок сценариев на основе Python, позволяющий интегрировать в сценарии любые инструменты безопасности, основанные на этом языке (одна из крупнейших экосистем).
  • Иметь чистый дизайн, отделённый от QEMU. Многие проекты, построенные на QEMU, не развиваются при обновлении QEMU, теряя новые функции и оптимизации, а также обновления безопасности. Для достижения этого PyREBox реализован как независимый модуль, который может быть скомпилирован вместе с QEMU, требуя минимального набора модификаций.

  • Поддержка различных архитектур. В настоящее время PyREBox поддерживает только Windows для архитектур x86 и x86-64, но его дизайн позволяет поддерживать другие архитектуры, такие как ARM, MIPS или PowerPC, а также другие операционные системы.

Оболочка IPython

Запустить оболочку PyREBox так же просто, как ввести команду sh в мониторе QEMU. Она немедленно запустит оболочку IPython. Эта оболочка записывает историю команд, а также определённые переменные. Например, вы можете сохранить значение и восстановить его позже в другой точке выполнения, когда снова запустите оболочку. PyREBox использует все доступные функции IPython, такие как автодополнение, история команд, многострочное редактирование и автоматическая генерация справки по командам.

PyREBox позволит вам отлаживать систему (или процесс) довольно скрытным способом. В отличие от традиционных отладчиков, которые находятся в отлаживаемой системе (даже изменяя память отлаживаемого процесса для вставки точек останова), PyREBox полностью находится вне исследуемой системы и не требует установки какого-либо драйвера или компонента в гостевую систему.

.. image:: docs/media/breakpoint.gif

PyREBox предлагает полный набор команд для проверки и изменения состояния работающей ВМ. Просто введите list_commands, чтобы получить полный список. Вы можете запустить любой плагин volatility, просто введя vol и соответствующую команду volatility. Для получения полного списка доступных плагинов volatility вы можете ввести list_vol_commands. Этот список генерируется автоматически, поэтому он также будет показывать любой плагин volatility, который вы установите в пути volatility/ PyREBox.

Вы также можете определить свои собственные команды! Это так же просто, как объявить функцию в скрипте и загрузить её.

Если вам нужно что-то более выразительное, чем команда, вы можете написать фрагмент Python, используя API. Для подробного описания API см. Документацию_ или введите help(api) в оболочке.

.. image:: docs/media/stack.gif

Скриптинг

PyREBox позволяет динамически загружать скрипты, которые могут регистрировать функции обратного вызова, вызываемые при возникновении определённых событий, таких как выполнение инструкций, чтение/запись памяти, создание/уничтожение процессов и так далее.

Учитывая, что PyREBox интегрирован с Volatility, он позволит вам использовать все плагины volatility для криминалистического анализа памяти в ваших скриптах Python. Многие из самых известных инструментов реверс-инжиниринга реализованы на Python или, по крайней мере, имеют привязки к Python. Наш подход позволяет интегрировать любой из этих инструментов в скрипт.

Наконец, учитывая, что обратные вызовы Python могут приводить к снижению производительности при частых событиях, таких как выполнение инструкций, также возможно создание триггеров. Триггеры — это плагины на нативном коде (разработанные на C/C++), которые могут быть динамически вставлены во время выполнения при любом событии непосредственно перед выполнением обратного вызова Python. Это позволяет ограничить количество событий, достигающих кода Python, а также предварительно вычислять значения в нативном коде.

В этом репозитории вы найдете примеры скриптов_, которые помогут вам написать свой собственный код. Приветствуются вклады!

Благодарности

Прежде всего, PyREBox был бы невозможен без QEMU_ и Volatility_. Мы благодарим их разработчиков и сопровождающих за такую ​​отличную работу.

PyREBox вдохновлен несколькими академическими проектами, такими как DECAF_ или PANDA_. Фактически, многие из обратных вызовов, поддерживаемых PyREBox, эквивалентны тем, что есть в DECAF_, а концепции, лежащие в основе инструментации, основаны на этих работах.

PyREBox использует сторонний код, который можно найти в каталоге pyrebox/third_party. Для каждого стороннего проекта мы включаем указание его оригинальной лицензии, исходные файлы исходного кода, взятые из проекта, а также модифицированные версии файлов исходного кода (если применимо), используемые PyREBox.

Скачать инструмент