0

我在阅读二进制文件的 .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'
4

1 回答 1

0

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

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

你想要这样的东西:

file = open('binary_file', 'rb')
content = file.read()
于 2016-03-02T03:35:35.240 回答