Repolode
unicorn-engine

unicorn-engine/unicorn

Лёгкий фреймворк для эмуляции CPU на базе QEMU, который выполняет машинный код для разных архитектур через единый API, не зависящий от архитектуры.

Звёзды
9,545
Форки
1,588
Открытые issues
237
Последний коммит
20 дней назад

Что это?

Unicorn — фреймворк для эмуляции CPU на базе QEMU. С его помощью программа может загружать и выполнять машинный код для таких архитектур, как ARM, ARM64, M68K, MIPS, PowerPC, RISC-V, SPARC, S390X, TriCore и X86 (16-, 32- и 64-битных), без запуска полноценной операционной системы и использования физического оборудования.

Фреймворк предоставляет единый API, не зависящий от архитектуры: один и тот же код для настройки регистров, отображения памяти и выполнения инструкций работает на всех поддерживаемых CPU. Unicorn написан на C и имеет биндинги для многих языков, включая Python, Rust, Go, Java, .NET, Ruby и Lua. Он работает в Windows и системах семейства *nix, таких как Linux, macOS, Android и BSD.

Для повышения производительности Unicorn использует JIT-компиляцию и предоставляет хуки для детальной инструментализации на разных уровнях. Распространяется по лицензии GPLv2.

Ключевые возможности

  • 01Эмулирует CPU архитектур ARM, ARM64, M68K, MIPS, PowerPC, RISC-V, SPARC, S390X, TriCore и X86.
  • 02Предоставляет единый API для всех поддерживаемых CPU, не зависящий от архитектуры.
  • 03Имеет биндинги для Python, Rust, Go, Java, .NET и многих других языков.
  • 04Использует JIT-компиляцию для ускорения выполнения.
  • 05Поддерживает хуки для детальной инструментализации в ходе эмуляции.

Сценарии использования

  • Анализ и реверс-инжиниринг машинного кода для разных архитектур CPU.
  • Фаззинг бинарных файлов путём выполнения кода в контролируемой эмулируемой среде.
  • Тестирование прошивок и кода для встраиваемых систем без физического оборудования.
  • Создание собственных инструментов для выполнения инструкций с инструментализацией.

Быстрый старт

  1. 1

    Прочитайте руководство по компиляции и установке в docs/COMPILE.md

  2. 2

    Установите привязки Python из PyPI

    pip install unicorn

Что важно знать

  • Распространяется по лицензии GPLv2 с авторским левом, которая может ограничивать использование в проприетарном ПО.
  • В README не описан способ установки готовых сборок для других языков, кроме упомянутого руководства по компиляции.

В подборках

Темы

Частые вопросы

Что такое unicorn?
Лёгкий фреймворк для эмуляции CPU на базе QEMU, который выполняет машинный код для разных архитектур через единый API, не зависящий от архитектуры. Unicorn — фреймворк для эмуляции CPU на базе QEMU. С его помощью программа может загружать и выполнять машинный код для таких архитектур, как ARM, ARM64, M68K, MIPS, PowerPC, RISC-V, SPARC, S390X, TriCore и X86 (16-, 32- и 64-битных), без запуска полноценной операционной системы и использования физического оборудования.
unicorn можно использовать бесплатно? Какая у него лицензия?
unicorn распространяется с открытым исходным кодом под лицензией GPL-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
unicorn всё ещё поддерживается?
Активно поддерживается. Последний коммит в unicorn — 18 окт. 2026 г..
Для чего можно использовать unicorn?
Анализ и реверс-инжиниринг машинного кода для разных архитектур CPU. Фаззинг бинарных файлов путём выполнения кода в контролируемой эмулируемой среде. Тестирование прошивок и кода для встраиваемых систем без физического оборудования. Создание собственных инструментов для выполнения инструкций с инструментализацией.
Как установить unicorn?
Прочитайте руководство по компиляции и установке в docs/COMPILE.md Установите привязки Python из PyPI: pip install unicorn
Где скачать unicorn?
Исходный код и инструкции по установке — на GitHub: https://github.com/unicorn-engine/unicorn

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Графический симулятор процессора RISC-V на Qt для изучения архитектуры компьютеров; версия WebAssembly работает в браузере.

Обучающие материалы#risc-v#cpu-simulator#computer-architecture
651+4 за неделю97C++GPL-3.0Обновлён 10 дней назад

Эмулятор x86-ПК, работающий в браузере: он преобразует машинный код в WebAssembly на лету и загружает настоящие операционные системы.

23,7 тыс.+22 за неделю1,9 тыс.JavaScriptBSD-2-ClauseАктивно поддерживаетсяОбновлён 8 дней назад

Низкоуровневый эмулятор x86 для запуска старых ОС и программ, созданных для IBM PC и совместимых компьютеров с 1981 года.

5 тыс.+19 за неделю641CGPL-2.0Активно поддерживаетсяОбновлён 6 часов назад