plasma-disassembler/plasma

GitHub: plasma-disassembler/plasma

Plasma 是一个支持多架构和多种文件格式的交互式反汇编器,能够生成彩色伪代码并提供 Python 脚本扩展能力,帮助安全研究人员更高效地进行逆向分析。

Stars: 3068 | Forks: 273

# PLASMA 旧项目名称为 **Reverse**。 `PLASMA` 是一个交互式反汇编器。它可以生成具有彩色语法且更具可读性的汇编(伪代码)。你可以使用可用的 Python API 编写脚本(请参见下面的示例)。该项目仍处于大力开发中。 [wiki](https://github.com/joelpx/plasma/wiki):TODO 列表和一些文档。 它支持: * 架构:x86{64}、ARM、MIPS{64}(部分支持 ARM 和 MIPS) * 格式:ELF、PE、RAW **警告**:在实现结构和类型定义之前,数据库兼容性可能会被破坏。 ## 依赖项 * python >= 3.4 * [capstone](https://github.com/aquynh/capstone),已使用 4.0-alpha5 测试 * [python-pyelftools](https://github.com/eliben/pyelftools) * [pefile](https://github.com/erocarrera/pefile) + python3-future * [python-msgpack](https://github.com/msgpack/msgpack-python) >= 0.4.6 * `c++filt`(包含在 binutils Linux 软件包中) * 终端应支持 UTF8 和 256 色(如果不支持,请使用选项 `--nocolor`) 可选: * `python-qt4`,用于内存映射 * [keystone](https://github.com/keystone-engine/keystone),用于脚本 asm.py ## 安装 ``` ./install.sh ``` 或者,如果你已经通过之前的命令安装了依赖项: ``` ./install.sh --update ``` 检查测试: ``` make .................................................................................... 84/84 tests passed successfully in 2.777975s analyzer tests... ... ``` ## 函数的伪反编译 ``` $ plasma -i tests/server.bin >> v main # 您可以按下 tab 来显示伪反编译 # | 来分割窗口 # 有关所有快捷键,请参见命令帮助 ``` ![plasma](/images/visual.png?raw=true) 通过反转条件跳转来控制流图: ![plasma](/images/invcond.png?raw=true) ## 脚本编写 (Python API) 关于 API 的更多信息请参阅 [wiki](https://github.com/joelpx/plasma/wiki/api)。 一些示例(这些脚本放置在 plasma/scripts 中): ``` $ plasma -i FILE plasma> py !strings.py # print all strings plasma> py !xrefsto.py FUNCTION # xdot call graph plasma> py !crypto.py # detect some crypto constants plasma> py !asm.py CODE # assemble with keystone plasma> py !disasm.py HEX_STRING # disassemble a buffer ```
标签:API, Capstone, DAST, ELF, Hakrawler, MIPS, PE, Python, URL提取, x86, 二进制分析, 二进制解析, 云安全监控, 云安全运维, 云资产清单, 伪代码, 反汇编器, 反编译, 恶意软件分析, 控制流图, 无后门, 汇编, 漏洞分析, 网络信息收集, 路径探测, 逆向工具, 逆向工程, 静态分析