Unicorn β The Ultimate CPU Emulator
68 points - today at 11:14 AM
SourceComments
Retr0id today at 4:35 PM
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 today at 4:45 PM
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 today at 2:05 PM
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 today at 3:06 PM
"Based on Qemu 5, we built Unicorn2 from scratch"
What?
jsomedon today at 2:26 PM
uh.. what is a cpu emulator? or what can I do with it? I am kind of having hard time comprehend this.
dmitrygr today at 4:16 PM
> 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 that is not what βfrom scratchβ means!