awesome-repositories.com
博客
MCP
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
unicorn-engine avatar

unicorn-engine/unicorn

0
View on GitHub↗
9,076 星标·1,506 分支·C·GPL-2.0·4 次浏览www.unicorn-engine.org↗

Unicorn

Unicorn is a multi-architecture CPU emulation framework and library that utilizes just-in-time compilation to execute instructions across various processor architectures, including ARM, x86, and RISC-V. It functions as both a JIT compilation engine and an instrumentation tool, allowing for the execution of machine code without the need for physical hardware.

The framework is distinguished by its hook-based execution instrumentation, which enables the interception of specific instructions and memory accesses to trigger custom callback functions. It provides a language-agnostic binding layer and community-maintained interfaces, allowing its emulation capabilities to be integrated into multiple high-level programming languages.

The system covers wide-ranging capabilities for software analysis, including fine-grained code instrumentation and virtual-to-physical address mapping. It manages execution performance through translation cache management and supports controlled execution via instruction-based timeouts.

Features

  • Instruction-Level Emulators - Simulates CPU behavior across multiple processor architectures for controlled software analysis and testing.
  • Just-In-Time Compilation - Utilizes just-in-time compilation to translate guest processor instructions into native host machine code for high-performance emulation.
  • Instrumentation & Hooking - Implements hooks to intercept instructions and memory accesses for runtime program analysis.
  • Instruction Hooking - Enables triggering custom code by hooking into specific instructions, memory reads, and memory writes.
  • CPU Core Implementations - Provides software implementations of processor architectures to run and test code without physical hardware.
  • CPU Model Configurations - Allows users to configure specific processor architectures and models to activate required system registers and instruction sets.
  • CPU Execution Instrumentation - Enables fine-grained tracking and analysis of program behavior by hooking into specific instructions and memory accesses.
  • Physical Address Mapping - Implements virtual-to-physical address mapping and custom fill hooks to manage guest memory translation.
  • Multi-Architecture Emulators - Supports ARM, x86, RISC-V, and other architectures for software analysis and testing without physical hardware.
  • JIT Compilation Engines - Integrates a JIT compilation engine to accelerate the execution of guest machine code.
  • Instruction Translation Layers - Translates guest processor instructions into native host machine code to enable high-performance cross-platform execution.
  • Instruction Translation Caches - Manages a cache of compiled code blocks with invalidation logic to ensure execution correctness.
  • Cross-Architecture Behavioral Analysis - Enables analyzing program behavior across multiple CPU types to identify platform-specific bugs.
  • CPU Emulation Frameworks - Provides the building blocks for creating specialized emulation tools by binding CPU execution to high-level languages.
  • Low-Level Debuggers - Provides low-level monitoring and modification of instruction execution and memory access during runtime.
  • CPU Emulation Libraries - Offers a set of interfaces for integrating multi-architecture CPU emulation into various programming languages.
  • Cross-Language Bindings Layers - Provides a standardized interface layer to expose core emulation logic to multiple high-level programming languages.
  • Language Bindings - Provides community-maintained interfaces that allow the emulation engine to be integrated into various high-level programming languages.
  • Pluggable Backends - Uses a common interface to support pluggable backend implementations for diverse CPU models.
  • Instruction Cache Invalidations - Allows clearing cached translated blocks to ensure instruction modifications or hooks are applied immediately during execution.
  • Dynamic Analysis and Debugging - Lightweight multi-platform CPU emulator for analysis.
  • Binary Analysis Platforms - CPU emulator framework for multi-architecture binary execution.
  • 二进制分析工具 - CPU emulator framework for binary instrumentation and analysis.
  • Debugging - Lightweight multi-platform CPU emulator for analysis.
  • Debugging Tools - A lightweight multi-platform, multi-architecture CPU emulator.
  • Firmware Emulation Frameworks - Lightweight multi-platform, multi-architecture CPU emulator framework.

Star 历史

unicorn-engine/unicorn 的 Star 历史图表unicorn-engine/unicorn 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

Unicorn 的开源替代方案

相似的开源项目,按与 Unicorn 的功能重合度排序。
  • jart/blinkjart 的头像

    jart/blink

    7,534在 GitHub 上查看↗

    Blink is a JIT-based instruction emulator and x86-64 Linux emulator designed to run Linux binaries and ELF files across different host operating systems and architectures. It functions as a binary execution sandbox and system call simulator, providing a controlled environment for running programs. The project distinguishes itself with a terminal user interface for monitoring execution, managing breakpoints, and visualizing JIT compilation paths. It supports self-modifying code through a cache-invalidating memory model and provides execution environment isolation using restricted directory ove

    C
    在 GitHub 上查看↗7,534
  • jonathansalwan/tritonJonathanSalwan 的头像

    JonathanSalwan/Triton

    4,202在 GitHub 上查看↗

    Triton is a dynamic binary analysis framework designed to automate reverse engineering. It functions as a multi-architecture CPU emulator, an SMT-based symbolic execution engine, and a dynamic taint analysis tool. The framework translates raw machine instructions into abstract syntax trees, allowing it to represent binary program logic as a structured intermediate representation. This allows the system to map multiple hardware instruction sets to a single analysis framework and translate machine instructions into mathematical formulas for solving constraints. Its capabilities cover the simul

    C++
    在 GitHub 上查看↗4,202
  • pwndbg/pwndbgpwndbg 的头像

    pwndbg/pwndbg

    10,051在 GitHub 上查看↗

    pwndbg is a GDB plugin and binary analysis framework designed for reverse engineering, exploit development, and low-level program analysis. It extends the core functionality of the debugger to provide advanced memory inspection and automation tools. The project distinguishes itself with specialized capabilities for heap analysis across glibc, jemalloc, and musl, as well as a comprehensive kernel debugging toolkit for inspecting Linux kernel tasks and slab allocators. It includes an integrated ROP gadget searcher for constructing exploit chains and an LLM-powered debugging assistant that provi

    Pythonbinary-ninjacapture-the-flagctf
    在 GitHub 上查看↗10,051
  • fex-emu/fexFEX-Emu 的头像

    FEX-Emu/FEX

    6,896在 GitHub 上查看↗

    FEX is an emulator that executes 32-bit and 64-bit x86 binaries on ARM64 hardware. It functions as a binary translation framework that converts guest machine code into host instructions using a JIT compilation engine and a persistent code cache. The project features a Vulkan graphics wrapper that translates OpenGL and Vulkan API calls to native host drivers, enabling cross-architecture graphics rendering. It includes a dedicated root filesystem manager for downloading, mounting, and switching between compressed filesystem images required for guest application environments. The system provide

    C++arm64cppemulation
    在 GitHub 上查看↗6,896
查看 Unicorn 的所有 30 个替代方案→

常见问题解答

unicorn-engine/unicorn 是做什么的?

Unicorn is a multi-architecture CPU emulation framework and library that utilizes just-in-time compilation to execute instructions across various processor architectures, including ARM, x86, and RISC-V. It functions as both a JIT compilation engine and an instrumentation tool, allowing for the execution of machine code without the need for physical hardware.

unicorn-engine/unicorn 的主要功能有哪些?

unicorn-engine/unicorn 的主要功能包括:Instruction-Level Emulators, Just-In-Time Compilation, Instrumentation & Hooking, Instruction Hooking, CPU Core Implementations, CPU Model Configurations, CPU Execution Instrumentation, Physical Address Mapping。

unicorn-engine/unicorn 有哪些开源替代品?

unicorn-engine/unicorn 的开源替代品包括: jart/blink — Blink is a JIT-based instruction emulator and x86-64 Linux emulator designed to run Linux binaries and ELF files… jonathansalwan/triton — Triton is a dynamic binary analysis framework designed to automate reverse engineering. It functions as a… pwndbg/pwndbg — pwndbg is a GDB plugin and binary analysis framework designed for reverse engineering, exploit development, and… fex-emu/fex — FEX is an emulator that executes 32-bit and 64-bit x86 binaries on ARM64 hardware. It functions as a binary… bytecodealliance/wasmtime — Wasmtime is a WebAssembly runtime and sandboxed bytecode executor designed to run WebAssembly bytecode on a host… vivisect/vivisect — A combined disassembler/static analysis/symbolic execution/debugger framework.