与GNU二进制文件描述符(bfd)和操作码库的Python(3.x兼容)接口。
pybfd3的Python项目详细描述
Pybfd3
此克隆的PyBFD主要添加了对python 3.x的支持,同时保持与python 2.x的兼容性。为防止冲突和可能的混淆,模块/包的名称已更改为pybfd3
因为pybfd似乎不再被维护,所以我决定创建自己的独立存储库。
安装
方法1:通过python包索引(pypi)。
$ pip install --user pybfd3
方法2:本地安装。
$ git clone https://github.com/0xe1a00000/pybfd3.git
$ pip install --user ./pybfd3
注意:
根据pip版本的不同,您可能需要添加pip的--egg安装选项才能成功完成安装。
示例会话
$ cd pybfd3/examples
$ chmod +x sample-session.py
$ ./sample-session.py
Usage : ./sample-session.py <binary>
$ ./sample-session.py `which sudo`
[+] Creating BFD instance...
[+] File format : Linker/assembler/compiler output.
[+] Architecture : Intel 386 (9)
[+] BFD target name : elf64-x86-64
[+] Entry point : 0x403970
[+] Sections : 27
[+] Selected section information:
Name : .text
Index : 13
Length : 59 Kbytes
0x402B60 SZ=2 BD=0 IT=1 push r15
0x402B62 SZ=2 BD=0 IT=1 push r14
0x402B64 SZ=2 BD=0 IT=1 push r13
0x402B66 SZ=2 BD=0 IT=1 push r12
0x402B68 SZ=1 BD=0 IT=1 push rbp
0x402B69 SZ=1 BD=0 IT=1 push rbx
0x402B6A SZ=5 BD=0 IT=1 mov ebx,0x63ec80
0x402B6F SZ=3 BD=0 IT=1 mov rbp,rsi
0x402B72 SZ=7 BD=0 IT=1 sub rsp,0xb8
[...]
待办事项
改进get_符号以在不存在符号时不抛出错误- MacOS测试