首页 > 解决方案 > Captone python 模块是否支持 exe 作为输入,或者数据是否需要是独立的指令二进制文件?

问题描述

一些像 IDA 或 Ghidra 这样的反汇编程序会使用 exe 并输出指令。其他反汇编程序要求用户解析 PE 标头,隔离指令的二进制文件并将其传入。

我正在尝试学习使用 Capstone Python API,但.py 文档只显示了正在传递的隔离指令的缓冲区,如下所示:

# test1.py
from capstone import *

CODE = b"\x55\x48\x8b\x05\xb8\x13\x00\x00"

md = Cs(CS_ARCH_X86, CS_MODE_64)
for i in md.disasm(CODE, 0x1000):
    print("0x%x:\t%s\t%s" %(i.address, i.mnemonic, i.op_str))

但我想做类似的事情:

CODE = open("test.exe", "rb")

无需亲自解析 PE 标头以隔离指令数据。Captone 的 API 是否支持此功能?

标签: pythoncapstone

解决方案


Capstone 是独立于架构的。它不理解 PE 文件或 elf 文件。您只需为您拥有的任何处理器提供机器语言字节。


推荐阅读