工具
Miasm 逆向工程框架
用于分析、修改和生成二进制程序的 Python 逆向工程框架。它可读取、修改和生成 32 位与 64 位 PE 和 ELF 文件,汇编和反汇编 x86、ARM、AArch64、MIPS、PowerPC、SH4、MSP430 与 MeP 代码,并将其提升到自有的中间语言,用于符号执行、SSA 与数据流分析、依赖图以及面向反混淆的表达式化简。其 JIT 模拟器可借助 LLVM、GCC、Clang 或纯 Python 后端运行 shellcode 或二进制中的部分代码,用 Python 回调代替库函数,提供模拟部分 Windows API 和 Linux 行为的沙箱,并可通过 Z3 进行动态符号执行。
使用条件与局限
- PyPI 上的最新版本和最新标签均为 0.1.5,发布于 2023-04-18;GitHub Releases 只更新到 2019 年的 v0.1.3。所审阅的 master 提交仍标为 0.1.5,但比该标签多 100 个提交,因此当前代码需从克隆的仓库用 pip 安装,或使用项目的 Docker 镜像。CI 在 Ubuntu 上以 Python 3.10 和 3.13 运行回归测试。
- pyproject.toml 要求 Python 3.10+,依赖 future 和固定为 3.3.2 的 pyparsing。只有在存在 C 编译器时才会构建原生 JIT 扩展;否则安装会继续进行但缺少 JIT 相关功能,除非设置了 MIASM_REQUIRE_JIT=1。可选扩展包括 pycparser C 类型解析、用于求解器支持的依赖图和动态符号执行的 Z3、用于 LLVM 后端的 llvmlite 0.44.0、graphviz 导出,以及用于模拟 Windows 加密 API 的 pycryptodome。README 标明 LLVM 后端在 Windows 上未经测试。
- 二进制、shellcode 和内存转储由分析者自行提供。自带的 Windows API 模拟面向 32 位 x86,其他库函数的效果通过 Python 回调来建模。IDA 插件只使用 Miasm 的部分功能,不包含 JIT。
- 采用 GPL-2.0-only 许可。提升得到的 IR、化简后的表达式和模拟结果只是分析辅助,不能证明与原始代码等价。本次未分析或模拟任何二进制。
关于此条目
- 类型
- 工具
- 类别
- 二进制分析库
- 关联
- 基础工具
- 目标
- 二进制
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · cea-sec/miasm · 修订 3671fc2
- README.md#L503-L603 GitHub · cea-sec/miasm · 修订 3671fc2
- pyproject.toml GitHub · cea-sec/miasm · 修订 3671fc2
- CHANGELOG.md GitHub · cea-sec/miasm · 修订 3671fc2
- LICENSE GitHub · cea-sec/miasm · 修订 3671fc2
- .github/workflows/tests.yml GitHub · cea-sec/miasm · 修订 3671fc2
- miasm/arch GitHub · cea-sec/miasm · 修订 3671fc2
- miasm/analysis GitHub · cea-sec/miasm · 修订 3671fc2
- miasm/os_dep GitHub · cea-sec/miasm · 修订 3671fc2
- https://pypi.org/project/miasm/0.1.5/