Simulador de CPU RISC-V baseado em Qt para ensinar arquitetura de computadores, com uma versão WebAssembly que roda no navegador.
unicorn-engine/unicorn
Framework leve de emulação de CPU baseado no QEMU, que executa código de máquina de várias arquiteturas por meio de uma API limpa e independente de arquitetura.
- Estrelas
- 9,535
- Forks
- 1,585
- Issues abertas
- 237
- Último commit
- há 19 dias
O que é?
Unicorn é um framework de emulação de CPU baseado no QEMU. Ele permite carregar e executar código de máquina para arquiteturas como ARM, ARM64, M68K, MIPS, PowerPC, RISC-V, SPARC, S390X, TriCore e X86 (16, 32 e 64 bits), sem precisar executar um sistema operacional completo nem usar hardware físico.
O framework oferece uma única API independente de arquitetura, então o mesmo código para configurar registradores, mapear memória e executar instruções funciona em todas as CPUs compatíveis. Ele é implementado em C e tem bindings para várias linguagens, incluindo Python, Rust, Go, Java, .NET, Ruby e Lua. Funciona no Windows e em sistemas *nix, como Linux, macOS, Android e BSDs.
Unicorn usa compilação just-in-time para oferecer mais desempenho e disponibiliza hooks para instrumentação detalhada em vários níveis. É distribuído sob a licença GPLv2.
Recursos principais
- 01Emula CPUs ARM, ARM64, M68K, MIPS, PowerPC, RISC-V, SPARC, S390X, TriCore e X86.
- 02Oferece uma API limpa e independente de arquitetura, compartilhada por todas as CPUs compatíveis.
- 03Disponibiliza bindings para Python, Rust, Go, Java, .NET e várias outras linguagens.
- 04Usa compilação just-in-time para acelerar a execução.
- 05Oferece hooks de instrumentação detalhada durante a emulação.
Casos de uso
- Analisar ou fazer engenharia reversa de código de máquina para várias arquiteturas de CPU.
- Fazer fuzzing de binários executando código em um ambiente emulado e controlado.
- Testar firmware ou código embarcado sem hardware físico.
- Criar ferramentas personalizadas que precisam executar instruções com instrumentação.
Início rápido
- 1
Leia o guia de compilação e instalação em docs/COMPILE.md
- 2
Instale os bindings de Python pelo PyPI
pip install unicorn
Antes de usar
- Licenciado sob a GPLv2, uma licença copyleft que pode restringir o uso em software proprietário.
- O README não oferece uma opção de instalação pré-compilada para outras linguagens além do guia de compilação mencionado.
Em coleções
Tópicos
Perguntas frequentes
- O que é unicorn?
- Framework leve de emulação de CPU baseado no QEMU, que executa código de máquina de várias arquiteturas por meio de uma API limpa e independente de arquitetura. Unicorn é um framework de emulação de CPU baseado no QEMU. Ele permite carregar e executar código de máquina para arquiteturas como ARM, ARM64, M68K, MIPS, PowerPC, RISC-V, SPARC, S390X, TriCore e X86 (16, 32 e 64 bits), sem precisar executar um sistema operacional completo nem usar hardware físico.
- unicorn é gratuito? Qual é a licença?
- unicorn é open source sob a licença GPL-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- unicorn ainda é mantido?
- Manutenção ativa. O último commit de unicorn foi em 18 de out. de 2026.
- Para que posso usar unicorn?
- Analisar ou fazer engenharia reversa de código de máquina para várias arquiteturas de CPU. Fazer fuzzing de binários executando código em um ambiente emulado e controlado. Testar firmware ou código embarcado sem hardware físico. Criar ferramentas personalizadas que precisam executar instruções com instrumentação.
- Como instalar unicorn?
- Leia o guia de compilação e instalação em docs/COMPILE.md Instale os bindings de Python pelo PyPI: pip install unicorn
- Onde consigo unicorn?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/unicorn-engine/unicorn
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Um minúsculo modelo de linguagem em nível de caractere que roda em um setor de boot x86 de 512 bytes e inventa logs falsos de inicialização do Linux em modo real.
Um emulador de PC x86 que roda no navegador e traduz código de máquina para WebAssembly em tempo de execução para iniciar sistemas operacionais reais.
Um shell Linux para iOS que executa o espaço de usuário do Linux x86 por meio de emulação em modo usuário e tradução de chamadas de sistema, sem precisar de jailbreak.
Um emulador x86 de baixo nível que executa sistemas operacionais e softwares antigos para IBM PC e máquinas compatíveis a partir de 1981.
Um app para Mac que executa o desktop Omarchy Linux padrão em uma máquina virtual integrada ao macOS no Apple Silicon.