문제

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