Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
uEmu — 基于unicorn的IDA小型可爱模拟器插件。 | Kitploit
工具/GitHubGitHub/alexhude/uemu
嵌入式系统安全动态分析 (沙盒)逆向工程调试器二进制分析固件分析
GitHubalexhude/uemu

uEmu

基于unicorn的IDA小型可爱模拟器插件。

查看仓库
1.2k1830天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

概述

uEmu 是一个基于 unicorn 引擎的 IDA 小可爱模拟器插件。

开箱支持以下架构:x86、x64、ARM、ARM64、MIPS、MIPS64

它擅长什么?

  • 模拟裸机代码(引导加载程序、嵌入式固件等)
  • 模拟独立函数

它不擅长什么?

  • 模拟复杂的操作系统代码(动态库、进程等)
  • 模拟含有大量系统调用的代码

哪些方面可以改进?

  • 找到模拟特定供应商寄存器访问的方法(例如 ARM64 的 MSR S3_x, X0)
  • 增加更多需要跟踪的寄存器

安装

  • 通过 idapyswitch 配置 IDAPython
  • brew install unicorn 安装 Unicorn 二进制文件
  • pip install unicorn 安装 Unicorn Python 绑定
  • 在 IDA 中使用 文件/脚本文件... 或 ALT+F7 加载 uEmu.py

或者,uEmu 可以作为 IDA 插件自动加载。在这种情况下,将其放入 [IDA]/Plugins 文件夹,并在 uEmu.py 中将 USE_AS_SCRIPT 改为 False

功能

弹出菜单

  • Start 命令通过映射所有段并设置 Unicorn 来初始化模拟器
  • Run 命令模拟指令,直到遇到断点或发生错误
  • Step 模拟一条或 N 条指令(按住 ALT/OPTION 指定数量)
  • Stop 中断模拟
  • Reset 重置模拟引擎并取消映射所有内存区域
  • Jump To PC 直接跳转到当前 PC
  • Set PC 将 PC 移动到光标位置
  • 可以手动或通过 JSON 文件 更新 CPU 上下文(见下文)
  • Show Controls 显示包含 Start/Run/Step/Stop 按钮的窗口
  • Show CPU Context 显示包含可用寄存器的窗口
  • Show CPU Extended Context 显示包含扩展寄存器(FP/SIMD)的窗口
  • Show Stack 显示当前栈的窗口
  • Show Memory Range 允许显示特定内存区域

Start

从光标位置开始模拟。首先需要提供初始 CPU 上下文(参见 Update CPU Context) 之后,IDA 数据库中的所有段将被映射到模拟器(初始化数据也会被复制)

Run

执行代码直到遇到代码或内存断点,或发生需要用户操作的事件。

Step

执行单步执行。按住 ALT/OPTION 指定要执行的步数。

Stop

当模拟进行中时,此命令可用于中断执行。

Reset

重置模拟器实例并取消映射所有内存区域。

断点

您可以使用 IDA 断点来指示模拟应中断的位置。 这包括代码断点和内存断点。 通常与 Run 命令一起使用。

运行时操作

未映射内存

当模拟器需要访问尚未映射的内存时,插件会显示以下对话框。

  • 按 YES 提供要加载到内存的内存转储。

  • 按 NO 映射一个用零填充的空页面 (0x1000)
  • 按 Cancel 停止模拟

未知指令

当模拟器遇到未知指令时,可以跳过它并手动恢复 CPU 上下文。

视图

Controls

只是一个控制执行的面板。

CPU Context

当前 CPU 上下文。

每次模拟停止时,更改的寄存器将高亮显示。可以通过弹出菜单选择以 1、2 或 3 列显示寄存器。

可以通过弹出菜单更新 CPU 上下文(见下文)。

CPU Extended Context

当前 CPU 扩展上下文。

每次模拟停止时,更改的寄存器将高亮显示。可以通过弹出菜单选择以 1、2 或 3 列显示寄存器。

可以通过弹出菜单更新 CPU 上下文(见下文)。

Memory

使用此视图查看指定地址和大小的内存区域。注释将显示在标题中以便参考。

每次模拟停止时,更改的内存块将高亮显示。

更新 CPU 上下文

可以通过弹出菜单单独更改寄存器值,或通过 JSON 文件一次性更改。 当前上下文也可以保存为 JSON 文件供以后使用。

主插件菜单

除了弹出菜单中列出的所有功能外,还有几个新命令。

Show Mapped Memory

显示所有已映射的区域。使用弹出菜单查看特定区域的内存或将其转储到文件。

Fetch Segments

此命令尝试通过创建新映射或与现有映射合并(如果可能)来同步 IDA 段与已映射内存。 这有助于在运行时将新的 IDA 段添加到模拟器,而无需重新启动模拟器。

Load Project

从文件加载 uEmu 状态。

Save Project

将 uEmu 状态保存到文件。 请注意,仅保存插件中定义的寄存器。

Settings

  • Follow PC 在模拟期间将 IDA 视图滚动到当前 PC
  • Convert to Code automatically 如果光标下的 IDA 数据不是代码,则自动转换
  • Trace instructions 打印模拟器正在执行的每条指令
  • Lazy mapping 按需添加页面,而不是在启动时映射所有现有区域

扩展

还可以使用扩展系统为 uEmu 添加新功能或在其基础上构建您的项目。 请在此处找到带有示例的描述 here

  • crauEmu - 用于开发和分析代码重用攻击有效载荷的扩展。
下载工具