在 Python 中读取二进制文件 (.out) 并使用 Capstone 进行反汇编
Posted
技术标签:
【中文标题】在 Python 中读取二进制文件 (.out) 并使用 Capstone 进行反汇编【英文标题】:Reading Binary File (.out) in Python and disassemble with Capstone 【发布时间】:2016-03-01 18:52:23 【问题描述】:我在读取二进制文件的 .text 部分时遇到了一些问题。
二进制文件由 gcc 编译。
readelf -S binary_file
这个命令表明
.text PROGBITS 0000831C 00031C 000340
.text 部分的地址为 0000831c,偏移量 = 00031c 且大小 = 000340
我试过了
file = open('binary_file')
content = file.readlines()
Capstone 无法识别。
如果 .text 内容看起来像
f102 030e 0000 a0e3
怎么读
content = b'\xf1\x02\x03\x0e\x00\x00\xa0\xe3'
【问题讨论】:
【参考方案1】:默认情况下,open()
以文本模式打开文件。要以二进制模式打开文件,您需要提供适当的模式:'rb' - 表示以二进制模式打开以供读取。
readlines()
被设计用来从文件中读取一行文本,所以用它来读取二进制文件是没有意义的。
你想要这样的东西:
file = open('binary_file', 'rb')
content = file.read()
【讨论】:
以上是关于在 Python 中读取二进制文件 (.out) 并使用 Capstone 进行反汇编的主要内容,如果未能解决你的问题,请参考以下文章