Я собираюсь написать программное обеспечение, которое помещает двоичный файл в radare2, а затем выгружает подпрограммы, включая инструкции, адреса и двоичное представление инструкций, в текстовый файл.
Я работал с IDA Pro и IDAPython, но я также хочу воссоздать его для radare2. В конце текстовый файл должен выглядеть так:
0x0804ba0a 55 push ebp
0x0804ba0b 89e5 mov ebp, esp
0x0804ba0d 83ec18 sub esp, 0x18
0x0804ba10 83e4f0 and esp, 0xfffffff0
0x0804ba13 b800000000 mov eax, 0
0x0804ba18 29c4 sub esp, eax
К сожалению, источников в Интернете мало, и документация не совсем длинная. Я хотел бы дать вам больше для работы, но я как-то застрял здесь.
Я разобрался, как разобрать функцию с помощью команды pdf, и, возможно, я мог бы использовать ее в Python таким образом, но, как я это сделал, main, точка входа и sym.main будут отсутствовать. Я хотел бы разобрать весь раздел .text или все функции в разделе .text:
import r2pipe
file = 'path_to_file'
r = r2pipe.open()
with open (file, 'w') as f:
r.cmd('aaa')
# disassemble all functions starting with fcn and write them
# to the file
f.write(r.cmd('pdf @@ fcn*'))