
Всеобъемлющая платформа для бинарной эмуляции и инструментирования.
Zelos (Zeropoint Emulated Lightweight Operating System) — это платформа для эмуляции бинарных файлов на Python. Одно из применений zelos — быстрая оценка динамического поведения бинарных файлов через командную строку или Python-скрипты. Все системные вызовы эмулируются для изоляции целевого бинарного файла. Поддерживаются бинарные файлы Linux x86_64 (32- и 64-битные), ARM и MIPS. Эмуляцию ЦП обеспечивает Unicorn.

Полная документация доступна здесь.
Используйте менеджер пакетов pip для установки zelos.
pip install zelos
Для эмуляции бинарного файла с параметрами по умолчанию:
$ zelos my_binary
Чтобы просмотреть выполняемые инструкции, добавьте флаг --inst:
$ zelos --inst my_binary
Можно выводить только первое выполнение каждой инструкции, а не каждое, с помощью --fasttrace:
$ zelos --inst --fasttrace my_binary
По умолчанию системные вызовы выводятся на stdout. Чтобы записывать их в файл, используйте флаг --trace_file:
$ zelos --trace_file path/to/file my_binary
Укажите любые аргументы командной строки после имени бинарного файла:
$ zelos my_binary arg1 arg2
import zelos
z = zelos.Zelos("my_binary")
z.start(timeout=3)
Zelos поддерживает плагины от первой и третьей сторон. Некоторые примечательные плагины на данный момент:
zelos в IDA с комментариями на уровне инструкций.zelos.Принимаются pull request'ы. Для значительных изменений, пожалуйста, сначала откройте issue, чтобы обсудить, что вы хотели бы изменить.
Пожалуйста, не забывайте обновлять тесты по мере необходимости.
Сначала создайте новое виртуальное окружение Python. Это гарантирует отсутствие конфликтов версий пакетов:
$ python3 -m venv ~/.venv/zelos
$ source ~/.venv/zelos/bin/activate
Теперь склонируйте репозиторий и перейдите в каталог zelos:
(zelos) $ git clone [email protected]:zeropointdynamics/zelos.git
(zelos) $ cd zelos
Установите редактируемую версию zelos в виртуальное окружение. Это сделает import zelos доступным, и любые локальные изменения в zelos вступят в силу немедленно:
(zelos) $ pip install -e '.[dev]'
На этом этапе тесты должны проходить, а документация — собираться:
(zelos) $ pytest
(zelos) $ cd docs
(zelos) $ make html
Собранная документация находится в docs/_build/html/.
Установите pre-commit хуки zelos для обеспечения соблюдения стиля кода:
(zelos) $ pre-commit install
В дополнение к автоматическому запуску при каждом коммите, вы можете запускать их в любое время с помощью:
(zelos) $ pre-commit run --all-files
Команды немного отличаются в Windows:
C:\> python3 -m venv zelos_venv
C:\> zelos_venv\Scripts\activate.bat
(zelos) C:\> pip install -e .[dev]