工具

diStorm3 x86/AMD64 反汇编库

轻量级的 x86/AMD64 C 语言反汇编库,README 称其为“分解器”:除格式化文本外,distorm_decompose 还会为每条指令返回一个二进制结构,描述其操作码、操作数、前缀、控制流类别,并可选地给出受影响的 CPU 标志位。它可解码 16、32 和 64 位代码,可在遇到调用、返回、分支、中断或特权指令时停止,其生成的指令表涵盖整数、x87、MMX、3DNow!、SSE 至 SSE4.2 和 SSE4a、AVX、FMA、AES、CLMUL、VMX 及 SVM 指令集。仓库还包含 distorm3 Python 模块,以及 Java 和 .NET 的示例封装和面向 Linux、Win32 及 Windows 内核驱动的示例程序。

目标
二进制
类别
二进制分析库
关联
基础工具
来源复核于

使用条件与局限

  • 自所审阅的提交(2021-12-18)以来 master 分支没有新的提交。PyPI 上最新版本为 distorm3 3.5.2,于 2021-03-19 上传,包括源码包和一个 Windows 32 位 Python 3.7 wheel;GitHub 发布列表止于 3.5.2b(2021-04-03),而 master 上的 setup.py 已写为 3.5.3,该版本并未发布到 PyPI。
  • 可用 pip install distorm3 安装 Python 模块(安装时会编译 C 源码),也可用面向 Linux、macOS 和 TinyCC 的 Makefile 或 Windows 下的 Visual Studio 解决方案构建 C 库。setup.py 列出 Windows、macOS 和 Linux,最新的 Python 分类标注为 3.5;CI 最后一次针对 Ubuntu 18.04、Windows 和 macOS 以及 Python 3.x。README 指向 GitHub wiki 查看 API 文档。
  • 输入是调用方提供的原始机器码字节、代码偏移和解码模式;它只解码指令,不解析可执行文件格式,不构建控制流图,也不做代码提升。disOps 脚本根据 x86sets.py 数据库生成其指令表。
  • 仓库附带一个测试辅助程序 test-deps/yasm-1.3.0-win64.exe,CI 工作流在 Windows 上将其复制到位,供 Python 测试用 yasm 汇编其指令样例;除此之外未提交其他示例二进制。
  • BSD 三条款许可证(COPYING;GitHub 将其识别为未分类)。本条目未反汇编任何代码。

关于此条目

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · gdabah/distorm · 修订 7a02caa
  2. include/distorm.h GitHub · gdabah/distorm · 修订 7a02caa
  3. disOps/x86sets.py GitHub · gdabah/distorm · 修订 7a02caa
  4. setup.py GitHub · gdabah/distorm · 修订 7a02caa
  5. .github/workflows/py.yml GitHub · gdabah/distorm · 修订 7a02caa
  6. examples GitHub · gdabah/distorm · 修订 7a02caa
  7. test-deps GitHub · gdabah/distorm · 修订 7a02caa
  8. COPYING GitHub · gdabah/distorm · 修订 7a02caa
  9. https://pypi.org/project/distorm3/3.5.2/
  10. https://github.com/gdabah/distorm/releases/tag/3.5.2b

同分区更多条目:原生二进制

原生二进制分区全部 158 项资源