It’s exciting to announce the release of Unicorn2 after more than 6 years. The release note is rather short and concise and this post would elaborate on what Unicorn2 would offer in a bit more details.
Obviously, this should be the first you may notice, a new log.
Unicorn1 was forked from QEMU 2.2.1 while Unicorn2 is based on QEMU 5.0.1. This bump provides tons of bugfix, better support for new ISA and about 10%-20% speedup.
Compared to Unicorn1, Unicorn2 offers two new architectures: PPC && RISC-V.
Unicorn2 has three new APIs while still keeps forward compatibility:
Unicorn2 is supported to compile on Apple Silicon and Android. Make sure you follow the latest compilation guide.
The unit tests in Unicorn1 are not maintained for quite a long time and we bring it back in Unicorn2.
We receive lots of request from rustaceans and Unicorn2 would have a better rust bindings.
See Github wiki.
Yes, it’s me. Let’s make Unicorn2 move further. ;)
A good reference is the current (and future) milestone. Roughly speaking, I have a list here:
- Refine some bindings I’m familiar with, like golang etc
- Integrate unicornafl to our code base.
- Migrate old regress tests to unit tests.
- Maybe some new API and functionality.
- Better documents, both for users and developers.
Since Unicorn is always an open source project, I look forward to all of your contributions!