Opdis : Opcode Disassembler

Verison 1.0

Overview

Opdis is a wrapper for the libopcodes disassembler library distributed as part of GNU binutils. It extends the libopcodes library by offering linear and control-flow disassembly algorithms, instruction and operand objects that are suitable for analysis, and a command-line utility to perform disassembly on arbitrary locations in a file.

These features are lacking in libopcodes and objdump. The design of libopcodes makes it awkward to use for binary analysis; it assumes that disassembled instructions are going to be printed, not stored or analyzed, and therefore it invokes a callback with an fprintf(3) signature. The shortcomings of objdump are even greater: it does not support control-flow disassembly, nor does it allow the user to specify which bytes in the file to disassemble.

The Opdis project consists of the libopdis library and the opdis command-line utility.


libopdis

The libopdis library contains the core functionality; it uses linear and control-flow algorithms to generate instruction and operand objects.

Configuration

Disassembly

Data Model

BFD Support

Linking to libopdis

libopdis requires both libopcodes and libbfd :

-lopdis -lopcodes -lbfd

opdis

The opdis utility is a command-line front-end to the library which attempts to meet the needs of a generic disassembler.


Supported Architectures

Opdis supports the disassembly of all architectures that libopcodes supports. On most of these architectures, however, only the ASCII string for the disassembled instruction is available.

Complete instruction and operand objects are generated only for the following platforms:


Other Documentation


License

Both opdis and libopdis are covered by the GNU Public License, version 3. See the file COPYING included in the distribution, or http://www.gnu.org/licenses/gpl.txt .


Generated on Wed Mar 10 14:30:45 2010 for Opdis Disassembly Library by  doxygen 1.6.1