Чтение двоичного файла (.out) в Python и дизассемблирование с Capstone

У меня возникли проблемы с чтением раздела.text двоичного файла.

Двоичный файл компилируется gcc.

readelf -S binary_file

Эта команда показывает, что

.text   PROGBITS    0000831C   00031C   000340

Адрес, если текстовый раздел - 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()
Другие вопросы по тегам