Чтение двоичного файла (.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()