Unicorn – The Ultimate CPU Emulator

unicorn-engine.org

65 points by tosh 7 hours ago


Retr0id - an hour ago

For anyone who isn't familiar with Unicorn, it doesn't emulate any specific whole-system, it's a library/framework for emulation of just the CPU. You are responsible for hooking up the whole "rest of the world" to the emulated CPU, for whatever you might need. This includes things like emulating peripherals, syscalls, binary loading, etc.

You usually use it to build your own emulator or other analysis tool, often for reverse engineering.

fluoridation - an hour ago

Somewhat relatedly, is there something halfway between QEMU and Unicorn? That is, a full VM in a library, with debugging capabilities. I'd like to be able to configure a VM, save the execution at a specific point, modify memory, run, and stop when some condition is hit (e.g. a memory address is read, or executed). For years I've had this idea of running the Jamella editor in multiple threads to crack Diablo II item seeds.

bmenrigh - 4 hours ago

I was just looking at Unicorn last week because it's used by unipacker to do automated unpacking of binaries. I built a "toolbox" for gpt-5.5 to do semi-automated malware and exploit reverse engineering and unipacker is sometimes useful for that purpose.

harvie - 3 hours ago

"Based on Qemu 5, we built Unicorn2 from scratch"

What?

jsomedon - 4 hours ago

uh.. what is a cpu emulator? or what can I do with it? I am kind of having hard time comprehend this.

dmitrygr - 2 hours ago

> Based on Qemu 5, we built Unicorn2 from scratch, […] still maintaining backward compatibility with the current version, […] we also added 2 highly-demanded architectures in PowerPC & RISCV.

Qemu supports RV and PPC! And all of that is not what “from scratch” means!