社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

GitHub工业级开源:CPU仿真器框架

GitHubFun网站 • 12 月前 • 593 次点击  

Unicorn是一个轻量级、多平台、多架构的CPU仿真器框架,基于QEMU

源代码

http://www.gitpp.com/gitai/unicorn

Unicorn 提供了一些无与伦比的CPU仿真功能:

  • 多架构:ARM、ARM64 (ARMv8)、M68K、MIPS、PowerPC、RISCV、SPARC、S390X、TriCore 和 X86(16、32、64 位)

  • 干净/简单/轻量级/直观的架构中立 API

  • 用纯 C 语言实现,绑定了 Crystal、Clojure、Visual Basic、Perl、Rust、Ruby、Python、Java、.NET、Go、Delphi/Free Pascal、Haskell、Pharo 和 Lua。

  • 对 Windows 和 *nix 的本机支持(已确认 Mac OSX、Linux、Android、*BSD 和 Solaris)

  • 通过即时编译实现高性能

  • 支持各个级别的细粒度检测

  • 线程安全设计

  • 根据自由软件许可证 GPLv2 分发

更多信息请访问http://www.unicorn-engine.org


QEMU是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以GPL许可证分发源码的模拟处理器软件,在GNU/Linux平台上广泛使用。以下是关于QEMU的详细介绍:

  1. 主要特点

  • 多平台支持:QEMU可以在多种操作系统上运行,如Linux、Windows、macOS等,使其具有广泛的适用性。

  • 多架构仿真:QEMU能够模拟多种CPU架构,包括但不限于x86、ARM、MIPS等,这使得开发人员可以在单一主机上测试和运行不同体系结构的操作系统和应用程序。

  • 高性能:通过利用KVM(Kernel-based Virtual Machine)等虚拟化技术,QEMU可以提供高性能的虚拟化解决方案,使得虚拟机的运行更加流畅。

  • 丰富的功能:QEMU不仅支持硬件仿真和虚拟化,还提供了调试功能、交叉编译环境等,为开发人员提供了强大的工具集。

  • 运作模式

    • 用户模式(User mode):在此模式下,QEMU能启动那些为不同中央处理器编译的Linux程序,例如Wine及Dosemu等。

    • 系统模式(System mode):QEMU能模拟整个电脑系统,包括中央处理器及其他周边设备,使得为跨平台编写的程序进行测试及调试工作变得容易,同时能在一部主机上虚拟出数部不同的虚拟电脑。

  • 应用场景

    • 开发和测试环境:QEMU为开发人员提供了一个隔离的环境来测试和调试他们的软件,可以方便地创建虚拟机并在其中运行应用程序,以测试在不同操作系统和硬件环境下的兼容性。

    • 教育和学习:QEMU也为教育工作者和学生提供了一个实验环境,使他们可以在一台计算机上学习和实践各种操作系统和软件,无需购买额外的硬件设备。

  • 与Unicorn的关系

    • Unicorn最初是作为QEMU的一个插件而启动的,但现在已经成长为一款独立的模拟器框架。它基于QEMU的技术基础,专注于提供一个轻量级、多平台、多架构的CPU仿真器框架。

    总的来说,QEMU是一个功能强大且灵活的模拟处理器软件,广泛应用于开发、测试、教育等多个领域。而Unicorn则在QEMU的基础上,进一步满足了特定场景下对轻量级、多平台、多架构CPU仿真的需求。


    CPU模拟器是一种软件,它能够在不同的硬件平台上模拟特定的中央处理器(CPU)的行为。这种工具在多个领域有着广泛的应用,主要包括以下几个方面:

    1. 软件开发和测试:CPU模拟器允许软件开发者在不同的硬件平台上测试和调试他们的代码,确保它在目标系统上能够正确运行。这对于那些需要跨平台兼容性的软件尤其重要。

    2. 硬件设计和验证:硬件工程师可以使用CPU模拟器来测试和验证新的处理器设计。通过模拟,他们可以在硬件实际制造之前发现潜在的问题,并验证设计的功能。

    3. 教育和培训:CPU模拟器可以用于教育目的,帮助学生和专业人士了解处理器的工作原理和编程模型。它提供了一个安全的环境,让学生可以在不影响真实硬件的情况下进行实验和学习。

    4. 性能评估:研究人员和工程师可以使用CPU模拟器来评估不同算法或系统配置对性能的影响。这有助于他们优化和改进系统设计。

    5. 虚拟化和云计算:在虚拟化技术中,CPU模拟器可以用来模拟不同的硬件环境,以便在虚拟机中运行不同的操作系统或应用程序。在云计算领域,这有助于提供灵活和可扩展的服务。

    6. 遗产系统支持:对于已经停产的硬件系统,CPU模拟器可以用来在新的硬件上运行旧软件,从而保持系统的兼容性和功能。

    7. 安全分析:安全研究人员可以使用CPU模拟器来分析恶意软件或病毒的行为,而不必在真实系统上运行这些威胁。

    8. 娱乐和游戏:在游戏领域,CPU模拟器可以用来在PC上运行原本只在特定游戏机上发布的游戏,或者模拟旧游戏机的硬件以提供更好的性能和兼容性。

    总之,CPU模拟器是一种强大的工具,它为软件开发、硬件设计、教育和研究提供了极大的灵活性和便利。

    Unicorn 已被以下125 个产品使用(排名不分先后)。

    • Qiling:跨平台、多架构的轻量级沙箱。

    • udbserver:Unicorn 的一个插件,用于提供调试服务器。

    • UniDOS:微软 DOS 模拟器。

    • Radare2:类 Unix 逆向工程框架和命令行工具。

    • Usercorn:用户空间系统模拟器。

    • Unicorn-decoder:一个可以转储自修改代码的 shellcode 解码器。

    • Univm:用于 x86 模拟的 x64dbg 插件。

    • PyAna:分析 Windows shellcode。

    • GEF:GDB 增强功能。

    • Pwndbg:GDB的Python插件,用于辅助漏洞利用开发。

    • Eli.Decode:解码混淆的 shellcode。

    • IdaEmu:用于代码模拟的 IDA Pro 插件。

    • Roper:使用遗传算法对目标二进制文件构建 ROP 链攻击。

    • Sk3wlDbg:IDA Pro 的机器代码模拟插件。

    • Angr:静态和动态 concolic(符号)分析的框架。

    • Cemu:基于 Keystone 和 Unicorn 引擎的廉价 EMUlator。

    • ROPMEMU:分析基于 ROP 的利用。

    • BroIDS_Unicorn:使用 Unicorn 检测 Bro IDS 上的 shellcode 的插件。

    • UniAna:分析 PE 文件或 Shellcode(仅限 Windows x86)。

    • ARMSCGen:ARM Shellcode 生成器。

    • TinyAntivirus:开源防病毒引擎,设计用于检测和清除多态病毒。

    • Patchkit:一个强大的二进制修补工具包。

    • Arpilnik:适用于 x86_64 机器的非常简单的算术表达式编译器。

    • Shellbug:基本命令行、基于文本的 shellcode 调试器。

    • GCTF-Challenges:GryphonCTF 2016 上基于组装的谜题。

    • Sibyl:基于 Miasm2 的占卜功能。

    • Kadabra:一个空白的执行框架。

    • Fuzzemu:Cortex-M3 ARM 的指令模拟器。

    • Simuvex:VEX IR 的符号执行引擎。

    • VulcanoIO:用于逆向工程恶意软件的开源集群物联网。

    • Nao:IDA Pro 的死代码消除器插件。

    • Ripr:从二进制代码中提取功能以在 Python 中使用。

    • Unicorn.Js:JavaScript 的 Unicorn 模拟器的端口。

    • SECCON2016 CTF:在线CTF游戏(Crypto 200,Lost Description)。

    • Pwntools:CTF框架和漏洞利用开发库。

    • Indika:用于二进制函数识别的毯子执行/最小哈希语义哈希工具。

    • Pogom 更新:最快的 Pokémon Go 地图可用。

    • x86-64-pe-emu:Python 中的 AMD64 Windows PE 模拟器。

    • cgPwn:网络大Pwnage Box。

    • unitracer:恶意软件的 Windows API 跟踪器。

    • Asrepl:x86-64 程序集 REPL。

    • unicorn-libemu-shim:Unicorn 引擎的 libemu shim 层和 win32 环境。

    • UniversalRop:使用 Unicorn 和 Z3 生成 ropchain 的小工具。

    • Manticore:动态二进制分析工具。

    • PrimeU:HP Prime 计算器的模拟器。

    • JSRT:Windows 的 Javascript 运行时,基于 Chakra。

    • Cuckoo:自动动态恶意软件分析系统。

    • AroeA:用于提取堆栈字符串+简单反混淆的 IDA 脚本。

    • Unico:Unicorn PE 功能运行器。

    • Pegasus:Windbg 仿真插件。

    • AsmShell:命令行汇编器外壳。

    • uEmu:基于 Unicorn 的 IDA 小型可爱模拟器插件。

    • CageTheUnicorn:Switch 代码的调试/模拟环境。

    • Asemu:使用 ncurses 和 Capstone/Keystone/Unicorn 的 32 位 x86 模拟器。

    • CircuitBreaker:任天堂 Switch 黑客工具包。

    • ROPChain:ROPChain 生成器。

    • AFL-Unicorn:模糊任何二进制文件。

    • reengage:诺基亚 N-Gage 逆向工程平台/模拟器。

    • openswe1r:1999 年游戏“星球大战:第一集赛车”的开源端口。

    • Syntia:综合混淆代码的语义。

    • uDdbg:类似 GDB 的调试器,为 Unicorn 模拟器提供运行时环境和附加功能。

    • Vita3K:PlayStation Vita 模拟器。

    • JuniEmu:ARM 32 位的仿真器接口。

    • Yuzu:Nintendo Switch 的开源模拟器。

    • Dynamic:ARM 动态重新编译器。

    • Fygimbal:通过串口与飞宇科技云台对话的工具。

    • SlothEmu:x64dbg 的独角兽模拟器。

    • Dbghlpr:它提供了对使用 Windbg 进行调试有用的各种功能。

    • UniPE:一个使用 UniCorn 执行 PE 文件的小型框架。

    • 为我的旅程提供便利:多架构 CPU 模拟器。

    • EKA2L1:Symbian 操作系统模拟器。

    • Cxbx-Reloaded:Xbox(原始)模拟器。

    • Vios:实验性 Playstation Vita 模拟器。

    • Fuzzle:有状态的模糊测试引擎。

    • EmuHookDetector:使用仿真并将静态与动态输出进行比较的钩子检测器。

    • Scanr:检测文件和流量中的 x86 shellcode。

    • Binja-secret:封装 Frida、Unicorn、Capstone 和 Keystone 的二进制 Ninja 插件。

    • AndroidNativeEmu:部分模拟 Android 本机库。

    • Frick:第一个构建在 Frida 之上的调试器。

    • Emufuzz:libFuzzer + Unicorn + Capstone。

    • vtMal:Python 中的恶意软件沙箱模拟。

    • Reil:Aarch64 指令集到 REIL 的 C++ 翻译/模拟库。

    • Cmulator:用于 shellcode 或 PE 二进制文件的可编写脚本的逆向工程沙箱模拟器。

    • unicorn_string_deobfuscator:基于 Unicorn 的模拟器,用于反混淆方程组字符串 XOR 混淆。

    • Flare IDA:来自 FLARE 团队的 IDA Pro 实用程序。

    • Flare Emu:IDA Pro 模拟器。

    • ish:适用于 iOS 的 Linux shell。使用 Unicorn 作为测试自定义模拟器的参考。

    • Unicorn Tracer:向 Unicorn 框架添加一些功能,以轻松跟踪内存变化。

    • Pad 解包器:《智龙迷城》二进制解包器。

    • Ryujinx:用 C# 编写的实验性 Switch 模拟器。

    • pyGDB Remote:Python GDB 远程协议实现。

    • Lakebed:针对 Nintendo Switch 重新实现的基于仿真的测试。

    • Unicorn PE:基于 Unicorn 的 Windows PE 文件模拟器。

    • Triton:动态二进制分析框架。

    • Emusca:用于侧信道分析攻击测试的功率跟踪模拟器。

    • ucui-unicorn:ncurses shellcode/指令测试器。

    • Dwarf:逆向工程师、黑客和安全分析师的调试器。

    • Un{i}packer:Windows 二进制文件的自动且独立于平台的解包器。

    • Rainbow:简单的脚本接口,用于模拟嵌入式二进制文件以进行跟踪。

    • Unidbg:模拟 Android ARM32 和/或 ARM64 本机库。

    • HDD-Firmware-Emulation:使用 Unicorn 模拟 SAMSUNG HM641JI HDD 固件。

    • xdvre:基于扩展插件工作的反汇编器/调试器。

    • astro:用于 C 自动评分的安全沙箱。

    • ARMStrong:一款快速、简单的 ARM 模拟器,专为教育而设计。

    • RopDissector:用于 ROP 漏洞和程序静态分析的框架。

    • ELMO2:ELMO2 旨在帮助软件工程师在开发阶段快速识别侧通道安全风险。

    • NetGuard Unpacker:公共 NetGuard 反混淆器。

    • ipasim:适用于 Windows 的 iOS 模拟器。

    • taintinduce:自动为未知指令集创建污点传播规则。

    • UnicoreFuzz:使用 AFL-Unicorn 对内核进行模糊测试。

    • UniTaint:针对 VMProtect 的基于污点的攻击的 PoC。

    • Lightswitch:在您的 Android 设备上运行 Nintendo Switch 自制软件和游戏!

    • unicorn-bios:Unicorn 引擎的基本 BIOS 模拟器。

    • uniFuzzer:基于 Unicorn 和 LibFuzzer 的闭源二进制文件的模糊测试工具。

    • Binee:二进制模拟环境。

    • Packman deobfuscator:英雄联盟反作弊代码反混淆器。

    • aah:Arm64 架构处理程序。

    • tracecorn_tina:基于 Tracecorn 的修改版本,用于解包。

    • EFI DXE 模拟器:EFI DXE 模拟器和交互式调试器。

    • ShellCodeEmulator:Windows shellcode 模拟器。

    • Frankenstein:用于模糊测试和进一步全栈调试的 Broadcom 和 Cypress 固件仿真。

    • AFLplusplus:Google afl 的高级分支 - 更快的速度、更多更好的突变、更多更好的工具、自定义模块支持等。

    • vmrp:功能手机“mrp”格式软件模拟器。

    • Modelsim-Unicorn:通过 VHDL 外语接口 (FLI) 集成 Modelsim/Questa Unicorn。

    • Speakeasy:一种便携式、模块化、二进制模拟器,旨在模拟 Windows 内核和用户模式恶意软件。

    Unicorn是一个轻量级、多平台、多架构的CPU仿真器框架,基于QEMU

    源代码

    http://www.gitpp.com/gitai/unicorn


    Python社区是高质量的Python/Django开发社区
    本文地址:http://www.python88.com/topic/170800
     
    593 次点击