Unicorn – The Ultimate CPU emulator
Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework.
Highlight features:
Multi-architectures: ARM, ARM64 (ARMv8), m68k, MIPS, PowerPC, RISC-V, S390x (SystemZ), SPARC, TriCore & x86 (include x86_64).
Clean/simple/lightweight/intuitive architecture-neutral API.
Implemented in pure C language, with bindings for Pharo, Crystal, Clojure, Visual Basic, Perl, Rust, Haskell, Ruby, Python, Java, Go, D, Lua, JavaScript, .NET, Delphi/Pascal & MSVC available.
Native support for Windows & *nix (with macOS, Linux, Android, *BSD & Solaris confirmed).
High performance by using Just-In-Time compiler technique.
Support fine-grained instrumentation at various levels.
Thread-safe by design.
Distributed under free software license GPLv2.
Find in this BlackHat USA 2015 slides more technical details behind Unicorn engine.
Unicorn is based on QEMU, but it goes much further with a lot more to offer.
Asian Star 10x10 Award
November 13, 2022
We are happy to announce that Unicorn Engine was awarded by Alibaba Cloud for its impact on the cybersecurity field (and beyond since our project is widely used for other purposes, too)!
Unicorn Engine was created and released more than 7 years ago to the public. We launched Unicorn Engine under an open-source license with the goal of contributing to the community and helping as many people as possible with our code. Our team has worked hard to maintain and develop the project to its fullest potential. We are pleased to see Unicorn Engine becoming a de facto emulator and laying the foundation for various innovative works in academia and industry.
We want to thank the whole community for your continuous support over the years. This recognition is for all of us!
For further information on the award, see https://asiastar10x10.kr-asia.com/awardees-2022/
Version 2.0.1
November 1, 2022
Unicorn Engine Team is happy to announce the new version 2.0.1 of our framework!
This version fixes many issues of v2.0 in the core and some bindings. See the ChangeLog for more details.
The source code & precompiled binaries are available in the Download section. See Documentation for how to compile and install Unicorn.
As always, we would like to thank the whole community for your tireless support on developing and maintaining Unicorn project!
Version 2.0.0
July 7, 2022
We are very happy to announce version 2.0.0 of Unicorn Engine, also known as Unicorn2 !
This release is a major step forward for our project. While we still maintain backward compatibility with Unicorn 1.0.x, Unicorn2 supports the updated instruction set of all important CPU architectures, including X86, Arm, Aarch64, Mips, Sparc & M68k. Moreover, we added 4 more architectures in PowerPC , RISCV , S390x & TriCore .
Another significant change on this version is the addition of some new APIs to allow better control on how the core engine works. Check it out the Changelog for more details, and sample codes for how to use these new features.
We would like to thank the whole community for your generous & tireless support for the last 7 years! Without your help, Unicorn would not made this far!
The source code of Unicorn2 is now available on Github. Check out COMPILE.md for how to compile and install it.
Please contact if you want to support our work for the next versions.
Unicorn2
October 3, 2021
We are very excited to announce Unicorn2 beta to the public!
Unicorn engine was first introduced at Blackhat USA 2015 as the only cross-platform-architecture framework for CPU emulation. After its release, Unicorn made some good impact in the security community and quickly established itself as the foundation of various innovative work. More than 6 years passed, it is time to make a major step forward with Unicorn2!
Based on Qemu 5, we built Unicorn2 from scratch, with a lot of optimization on performance & code size. While still maintaining backward compatibility with the current version, Unicorn2 supports the latest instruction set of all important CPU architectures, including X86, Arm, Aarch64, Mips, Sparc & M68k. Going further, we also added 2 highly-demanded architectures in PowerPC & RISCV .
The source code of Unicorn2 is now available at dev branch on our Github repo. Check out COMPILE.md for how to compile and install Unicorn2.
Since this important milestone deserves it, we also designed a new logo for Unicorn, as you can see at the top of this post!
What is next now? Help us to fix bugs, update bindings so we can officially release Unicorn v2.0.
Please contact if you want to support our work.
Version 1.0.3
May 26, 2021
We are very happy to announce version 1.0.3 of Unicorn Engine!
This version fixes some minor issues of v1.0.2 in the core and some bindings. We also added a new binding in Rust. See the ChangeLog for more details.
The source code & precompiled binaries are available in the Download section. See Documentation for how to compile...