在Python中读取二进制文件(.out)并使用Capstone

时间:2016-03-01 18:52:23

标签: python binaryfiles capstone

我在阅读二进制文件的.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 个答案:

答案 0 :(得分:0)

默认情况下,open()以文本模式打开文件。要以二进制模式打开文件,您需要提供适当的模式:'rb' - 这意味着打开以便以二进制模式读取。

readlines()旨在从文件中读取一行文本,因此使用它从二进制文件中读取是没有意义的。

你想要这样的东西:

file = open('binary_file', 'rb')
content = file.read()