Live data from Hacker News

Unicorn – The Ultimate CPU Emulator

unicorn-engine.org

1–10 of 35 posts

Re: Unicorn – The Ultimate CPU Emulator

#2
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.

Re: Unicorn – The Ultimate CPU Emulator

#5
post #3

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

Well, say all you've got is an x86 device, but you want to develop for ARM. You can write and compile your code, push it to unicorn, and see how it runs.

Or you can use it as a sandbox serving x86 software on an x86 machine.

Or as a "virtual machine" serving say AOSP for ARM on a Windows x86 host.

There's a long list of projects using Unicorn at https://www.unicorn-engine.org/showcase/

Re: Unicorn – The Ultimate CPU Emulator

#6
post #3

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

Well, say all you've got is an x86 device, but you want to develop for ARM. You can write and compile your code, push it to unicorn, and see how it runs. Or you can use it as a sandbox serving x86 software on an x86 machine. Or as a "virtual machine" serving say AOSP for ARM on a Windows x86 host. There's a long list of projects using Unicorn at https://www.unicorn-engine.org/showcase/

How's this one differ from QEMU?

Re: Unicorn – The Ultimate CPU Emulator

#7
post #3

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

An emulator is a computer program that executes the machine code of some system. For example, if your computer is x86, you can't natively run ARM machine code. But an emulator can.

QEMU is an emulator that can run entire operating systems, because it emulates hardware devices like hard drives and displays. Unicorn doesn't emulate any of those things, it only emulates the CPU. It's probably mostly useful for compiler development and security research / reverse engineering.

Re: Unicorn – The Ultimate CPU Emulator

#8
post #3

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

This comparison to qemu gives some idea: https://www.unicorn-engine.org/docs/beyond_qemu.html

The ability to execute and inspect some code without any context (no OS, not even a complete binary) is useful for reverse/security engineering.

Re: Unicorn – The Ultimate CPU Emulator

#9

Earlier quoted context omitted.

Well, say all you've got is an x86 device, but you want to develop for ARM. You can write and compile your code, push it to unicorn, and see how it runs. Or you can use it as a sandbox serving x86 software on an x86 machine. Or as a "virtual machine" serving say AOSP for ARM on a Windows x86 host. There's a long list of projects using Unicorn at https://www.unicorn-engine.org/showcase/

How's this one differ from QEMU?

https://www.unicorn-engine.org/docs/beyond_qemu.html

Re: Unicorn – The Ultimate CPU Emulator

#10
post #3

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

Low-level debugging, older games (so many consoles have used everything from MIPS to PowerPC as CPUs), etc.

In the early 2000s, I used a linux-based emulator to virtualize some ancient manufacturing hardware control software that was still running on EOL and very expensive PA-RISC kit. It saved the company tens of thousands of dollars in new hardware, while also running faster (it involved early 1990s-era proprietary vector graphics as part of it was printing on the goods). The HP sales people were not amused and tried very hard to get my 22 year old self fired, but my manager convinced them to use it and the old hardware as a backup for awhile. Last I heard in 2011 it was still being used, though running in linux on VMware.

Post reply on HN