Repolode
unicorn-engine

unicorn-engine/unicorn

基于 QEMU 的轻量级多架构 CPU 模拟框架,通过统一的 API 运行机器码。

Star
9,540
Fork
1,587
未关闭 Issue
237
最近提交
20天前

这是什么?

Unicorn 是基于 QEMU 构建的 CPU 模拟框架,可以在不运行完整操作系统或实际硬件的情况下,加载并执行 ARM、ARM64、M68K、MIPS、PowerPC、RISC-V、SPARC、S390X、TriCore 和 X86(16、32、64 位)等架构的机器码。

框架提供统一的、与架构无关的 API,用同一套代码即可设置寄存器、映射内存和执行指令。它使用 C 语言实现,并提供 Python、Rust、Go、Java、.NET、Ruby、Lua 等多种语言绑定,支持 Windows 以及 Linux、macOS、Android、BSD 等类 Unix 系统。

项目采用即时编译(JIT)提升执行性能,并提供多层级的细粒度插桩能力。项目以 GPLv2 协议发布。

核心功能

  • 01模拟 ARM、ARM64、M68K、MIPS、PowerPC、RISC-V、SPARC、S390X、TriCore 和 X86 等多种 CPU 架构。
  • 02提供跨架构统一的简洁 API。
  • 03支持 Python、Rust、Go、Java、.NET 等多种语言绑定。
  • 04采用即时编译提升执行速度。
  • 05模拟过程中支持多层级的细粒度插桩。

适用场景

  • 对多种 CPU 架构的机器码进行分析与逆向工程。
  • 在受控的模拟环境中运行代码,用于二进制模糊测试。
  • 在没有实体硬件的情况下测试固件或嵌入式代码。
  • 开发需要执行指令并进行插桩的自定义工具。

快速上手

  1. 1

    阅读 docs/COMPILE.md 中的编译和安装指南

  2. 2

    从 PyPI 安装 Python 绑定

    pip install unicorn

使用前须知

  • 采用 GPLv2 许可证,这是一种 copyleft 许可,可能限制其在专有软件中的使用。
  • 除参考的编译指南外,README 没有提供其他语言的预编译安装方式。

收录于专题

标签

常见问题

unicorn 是什么?
基于 QEMU 的轻量级多架构 CPU 模拟框架,通过统一的 API 运行机器码。 Unicorn 是基于 QEMU 构建的 CPU 模拟框架,可以在不运行完整操作系统或实际硬件的情况下,加载并执行 ARM、ARM64、M68K、MIPS、PowerPC、RISC-V、SPARC、S390X、TriCore 和 X86(16、32、64 位)等架构的机器码。
unicorn 可以免费使用吗?用的什么许可证?
unicorn 以 GPL-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
unicorn 还在维护吗?
活跃维护中。unicorn 最近一次提交是在 2026年10月18日。
unicorn 适合用来做什么?
对多种 CPU 架构的机器码进行分析与逆向工程。 在受控的模拟环境中运行代码,用于二进制模糊测试。 在没有实体硬件的情况下测试固件或嵌入式代码。 开发需要执行指令并进行插桩的自定义工具。
unicorn 怎么安装和运行?
阅读 docs/COMPILE.md 中的编译和安装指南 从 PyPI 安装 Python 绑定: pip install unicorn
在哪里获取 unicorn?
源代码和安装说明在 GitHub 上:https://github.com/unicorn-engine/unicorn

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目

基于 Qt 的 RISC-V CPU 模拟器,用于计算机体系结构教学,提供可在浏览器中运行的 WebAssembly 版本。

学习资源#risc-v#cpu-simulator#computer-architecture
651+4 本周97C++GPL-3.0维护活跃更新于 9天前