我即将编写一个软件,将二进制文件放入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*'))