コンピュータアーキテクチャ教育向けのQtベースRISC-V CPUシミュレータ。WebAssembly版はブラウザで実行できます。
unicorn-engine/unicorn
QEMUをベースにした軽量なCPUエミュレータフレームワーク。アーキテクチャに依存しないAPIで、複数のアーキテクチャのマシンコードを実行できます。
- スター
- 9,545
- フォーク
- 1,588
- 未解決の Issue
- 237
- 最終コミット
- 20 日前
これは何?
Unicornは、QEMUをベースにしたCPUエミュレータフレームワークです。フルOSや物理ハードウェアを使わずに、ARM、ARM64、M68K、MIPS、PowerPC、RISC-V、SPARC、S390X、TriCore、X86(16、32、64ビット)などのアーキテクチャ向けマシンコードを読み込んで実行できます。
アーキテクチャに依存しない共通APIを備えているため、レジスタの設定、メモリのマッピング、命令の実行に使う同じコードを、サポート対象のさまざまなCPUで利用できます。Cで実装されており、Python、Rust、Go、Java、.NET、Ruby、Luaなど、多くの言語向けのバインディングが用意されています。Windowsのほか、Linux、macOS、Android、BSD系などの*nixシステムで動作します。
Unicornは、パフォーマンス向上のためにJITコンパイルを使用し、さまざまなレベルで詳細な計測を行えるフックを提供します。GPLv2ライセンスで配布されています。
主な機能
- 01ARM、ARM64、M68K、MIPS、PowerPC、RISC-V、SPARC、S390X、TriCore、X86のCPUをエミュレートします。
- 02サポート対象のすべてのCPUで共通して使える、アーキテクチャに依存しないシンプルなAPIを提供します。
- 03Python、Rust、Go、Java、.NETをはじめ、多くの言語向けのバインディングを提供します。
- 04実行速度を高めるためにJITコンパイルを使用します。
- 05エミュレーション中に、詳細な計測を行うフックを利用できます。
ユースケース
- 複数のCPUアーキテクチャ向けマシンコードの解析やリバースエンジニアリング。
- 制御されたエミュレーション環境でコードを実行するバイナリのファジング。
- 物理ハードウェアを使わないファームウェアや組み込みコードのテスト。
- 計測機能を使って命令を実行するカスタムツールの開発。
クイックスタート
- 1
docs/COMPILE.md のコンパイル・インストールガイドを読む
- 2
PyPI から Python バインディングをインストールする
pip install unicorn
使う前に知っておきたいこと
- GPLv2(コピーレフトライセンス)の下でライセンスされており、プロプライエタリソフトウェアでの使用が制限される場合があります。
- README には、他の言語向けに参照先のコンパイルガイド以外のビルド済みインストール方法が記載されていません。
収録されている特集
トピック
よくある質問
- unicorn とは?
- QEMUをベースにした軽量なCPUエミュレータフレームワーク。アーキテクチャに依存しないAPIで、複数のアーキテクチャのマシンコードを実行できます。 Unicornは、QEMUをベースにしたCPUエミュレータフレームワークです。フルOSや物理ハードウェアを使わずに、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
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
512バイトのx86ブートセクターで動作し、リアルモードで偽のLinux起動ログを生成する小さな文字単位の言語モデル。
実機のOSを起動できる、実行時にマシンコードをWebAssemblyへ変換してブラウザー上で動作するx86 PCエミュレーター。
1981年以降のIBM PC互換機向けのビンテージOSやソフトウェアを動かせる、低レベルなx86エミュレーター。
Apple Silicon搭載Macで、macOSと密接に連携した仮想マシン上で標準のOmarchy Linuxデスクトップを実行できるMacアプリ。