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

Does the Captone python module support an exe as input, or does the data need to be an isolated instruction binary?

IDA 或 Ghidra 等一些反汇编程序采用 exe 并输出指令。其他反汇编程序要求用户解析 PE header,分离指令的二进制文件并将其传入。

我正在尝试学习使用 Capstone Python API,但是 the .py documentation 只显示正在传递的独立指令缓冲区,如下所示:

# 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 header 来隔离指令数据。 Captone 的 API 支持这个吗?

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