我在阅读二进制文件的.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'
答案 0 :(得分:0)
默认情况下,open()
以文本模式打开文件。要以二进制模式打开文件,您需要提供适当的模式:'rb' - 这意味着打开以便以二进制模式读取。
readlines()
旨在从文件中读取一行文本,因此使用它从二进制文件中读取是没有意义的。
你想要这样的东西:
file = open('binary_file', 'rb')
content = file.read()