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

obtaining the instruction stream (byte or assembly) for function within a shared object file (ELF)

我正在努力获取与共享对象文件 (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

用任何汇编语法显示输出都不是必须的。十六进制流也足够了。任何人都可以给我命名一个或多个可以帮助我完成此类工作的库吗?

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