I am searching for a library which performs disassembly of a binary code.

I found that that libdisasm performs exactly same task as I want. However, I have found some links indicating that libdisasm does not work for 64-bit executables. Is it correct ?

But objdump's output for 64-bit executables is reliable (to the best of my knowledge). So, does objdump too use a similar library for disassembly ?? Initially, I thought that objdump uses libdisasm.

有帮助吗?

解决方案

objdump uses libopcodes from binutils. It is pretty basic, however, since it only provides text representation and no structured information about the instructions. Other options:

其他提示

This is just to clarify a question asked by the original poster in a comment (I have insufficient points to comment).

The libdisasm project has not been actively maintained in many years. It does not support the x86-64 (64-bit) instruction set, or any of the x86 (32-bit) extensions after SSE3.

The opdis project is the replacement for libdisasm. The author of libdisasm wrote opdis in order to avoid the frequent updates required to support Intel and AMD's constantly-changing instruction sets. The actual opcode disassembly in opdis is handled by libopcodes from GNU binutils (the disassembler used by objdump), with opdis providing instruction metadata and higher-level disassembly functions.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top