txt - 分析MIPS二进制文件:有解析二进制数据的Python库吗?




python读取文件 (4)

我正在开发一个实用程序,它需要将十六进制地址解析为二进制文件中的符号函数名称和源代码行号。 该实用程序将在x86上的Linux上运行,尽管它分析的二进制文件将用于基于MIPS的嵌入式系统。 MIPS二进制文件采用ELF格式,使用DWARF作为符号调试信息。

我目前正在计划叉objdump,传递一个十六进制地址列表和解析输出获取函数名称和源代码行号。 我编译了一个支持MIPS二进制文件的objdump,它正在工作。

我宁愿有一个包允许我从Python代码本地查找东西,而不需要另外一个进程。 我在python.org上找不到libdwarf,libelf或libbfd,也没有提到dwarfstd.org上的python。

有没有合适的模块可用?


我不知道任何,但如果一切都失败了,你可以使用ctypes直接使用libdwarf,libelf或libbfd。


你应该给建设一个尝试。 将二进制数据解析为python对象是非常有用的。

甚至有一个ELF32文件格式的例子。


hachior是解析二进制数据的另一个库


您可能对pydevtools的DWARF库感兴趣

>>> from bintools.dwarf import DWARF
>>> dwarf = DWARF('test/test')
>>> dwarf.get_loc_by_addr(0x8048475)
('/home/emilmont/Workspace/dbg/test/main.c', 36, 0)




dwarf