2016-03-01 426 views
0

阅读二进制文件的.text部分时遇到了一些问题。在Python中阅读二进制文件(.out)并使用Capstone进行反汇编

该二进制文件是由gcc编译的。

readelf -S binary_file 

此命令显示

.text PROGBITS 0000831C 00031C 000340 

的地址如果.text段是0000831c,偏移= 00031c和大小= 000340

我试图

file = open('binary_file') 
content = file.readlines() 

而凯普斯通不知道。

如果内容的.text貌似

f102 030e 0000 a0e3 

如何读它作为

content = b'\xf1\x02\x03\x0e\x00\x00\xa0\xe3' 

回答

0

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

readlines()被设计为从文件读取一行文本,所以用它从二进制文件中读取是没有意义的。

你想要的东西,如:

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