Assembly 获取共享对象文件(ELF)中函数的指令流(字节或程序集)

Assembly 获取共享对象文件(ELF)中函数的指令流(字节或程序集),assembly,binary,pyelftools,Assembly,Binary,Pyelftools,我正在获取与共享对象文件(ELF)中某个函数相关联的指令 这应通过python脚本实现。我当然可以通过命令行来实现这一点,目标不是从python脚本中启动cli命令。应该改用图书馆 我的脚本的输入是一个对象文件名和函数名,如 python getInstructionStream.py main.o foo 结果应该是这样的 00000016 <foo>: 16: 55 push ebp 17: 89 e

我正在获取与共享对象文件(ELF)中某个函数相关联的指令

这应通过python脚本实现。我当然可以通过命令行来实现这一点,目标不是从python脚本中启动cli命令。应该改用图书馆

我的脚本的输入是一个对象文件名和函数名,如

    python getInstructionStream.py main.o foo
结果应该是这样的

    00000016 <foo>:
    16: 55                      push   ebp
    17: 89 e5                   mov    ebp,esp
    19: 83 ec 10                sub    esp,0x10
    1c: 8b 45 0c                mov    eax,DWORD PTR [ebp+0xc]
    1f: 8b 55 08                mov    edx,DWORD PTR [ebp+0x8]
    22: 01 d0                   add    eax,edx
    24: 89 45 fc                mov    DWORD PTR [ebp-0x4],eax
    27: 8b 45 fc                mov    eax,DWORD PTR [ebp-0x4]
    2a: c9                      leave  
    2b: c3                      ret
00000016:
16:55推ebp
17:89 e5 mov ebp,esp
19:83 ec 10子esp,0x10
1c:8b 45 0c mov eax,DWORD PTR[ebp+0xc]
1f:8b 55 08 mov edx,DWORD PTR[ebp+0x8]
22:01 d0添加eax、edx
24:89 45 fc mov DWORD PTR[ebp-0x4],eax
27:8b 45 fc mov eax,DWORD PTR[ebp-0x4]
2a:c9离开
2b:c3 ret

不必以任何汇编语法显示输出。十六进制流也足够了。有人能给我举一个或多个能帮助我完成这类工作的库吗?

谢谢libelf的提示。我可以从这里继续

这听起来很像是你在请别人为你写代码。堆栈溢出不是这样工作的。你写代码,当你遇到麻烦时,你会寻求帮助。我不想让任何人为我写代码。我请求图书馆的支持,但我必须承认,这个问题没有得到很好的阐述。下次我会做得更好