Графический симулятор процессора RISC-V на Qt для изучения архитектуры компьютеров; версия WebAssembly работает в браузере.
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
Прочитайте руководство по компиляции и установке в docs/COMPILE.md
- 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 обновляется ежедневно.
Похожие проекты
Компактная символьная языковая модель, которая работает в 512-байтном загрузочном секторе x86 и генерирует фальшивые журналы загрузки Linux в реальном режиме.
Эмулятор x86-ПК, работающий в браузере: он преобразует машинный код в WebAssembly на лету и загружает настоящие операционные системы.
Linux-оболочка для iOS, запускающая пользовательские программы Linux для x86 с помощью эмуляции и трансляции системных вызовов — без джейлбрейка.
Низкоуровневый эмулятор x86 для запуска старых ОС и программ, созданных для IBM PC и совместимых компьютеров с 1981 года.
Приложение для Mac, которое запускает стандартный рабочий стол Omarchy Linux в виртуальной машине, тесно интегрированной с macOS на Apple Silicon.