我正在寻找一个可以反汇编二进制代码的库。
我发现libdisasm执行的任务与我想要的完全相同。但是,我发现一些链接表明libdisasm不适用于64位可执行文件。这是正确的吗?
但是objdump对64位可执行文件的输出是可靠的(据我所知)。那么,objdump是否也使用类似的库来进行反汇编呢?最初,我认为objdump使用libdisasm。
发布于 2012-07-16 20:20:54
objdump使用来自binutils的libopcodes。然而,它是非常基本的,因为它只提供文本表示,而没有关于指令的结构化信息。其他选项:
发布于 2012-12-12 11:37:27
这只是为了澄清原帖在评论中提出的一个问题(我没有足够的意见来评论)。
libdisasm项目多年来一直没有得到积极的维护。它不支持x86-64 (64位)指令集,也不支持SSE3之后的任何x86 (32位)扩展。
opdis项目是libdisasm的替代品。libdisasm的作者编写opdis是为了避免支持Intel和AMD不断变化的指令集所需的频繁更新。opdis中的实际操作码反汇编由GNU binutils (objdump使用的反汇编程序)中的libopcode处理,opdis提供指令元数据和更高级别的反汇编函数。
https://stackoverflow.com/questions/11503590
复制相似问题