objdump使用的反汇编库

时间:2012-07-16 11:45:20

标签: assembly disassembly objdump

我正在搜索执行二进制代码反汇编的库。

我发现libdisasm执行的任务与我想要完全相同。但是,我发现一些链接表明libdisasm不适用于64位可执行文件。这是对的吗 ?

但objdump对64位可执行文件的输出是可靠的(据我所知)。那么,objdump是否也使用类似的库进行反汇编?最初,我认为objdump使用libdisasm。

2 个答案:

答案 0 :(得分:10)

objdump使用binutils中的libopcodes。然而,这是非常基本的,因为它只提供文本表示,并且没有关于指令的结构化信息。其他选择:

答案 1 :(得分:1)

这只是为了澄清原始海报在评论中提出的问题(我没有足够的评论意见)。

libdisasm项目多年来一直没有得到积极维护。它不支持x86-64(64位)指令集或SSE3之后的任何x86(32位)扩展。

opdis项目是libdisasm的替代品。 libdisasm的作者编写了opdis,以避免支持英特尔和AMD不断变化的指令集所需的频繁更新。 opdis中的实际操作码反汇编由GNU binutils的libopcodes(objdump使用的反汇编程序)处理,opdis提供指令元数据和更高级别的反汇编函数。