x86dis1
Disassemble a bytestream of intel x86 instructions
Usage
x86dis [{-a
offset | --addr=offset}]
[{-r
offset
len | --range=offset
len}]
[{-e
offset | --entry=offset}]
[{-s
name | --syntax=name}]
[{-d
name | --desc=name}]
[{-f
file | --file=file}]
[{-o
file | --out=file}]
[{-l
file | --log=file}]
[{-p
num | --pagesize=num}]
[{-h | -? | --help}]
[{-v | --version}]
Overview
A command-line interface to the libdisasm disassembler library.
Options
At least one option from the list -a, -e, -r must be given.
-
-f, --file=file -
Read input bytes from
fileinstead ofstdin
-
-o, --out=file -
Write output to
fileinstead ofstdout
-
-l, --log=file -
Log errors to
fileinstead ofstderr
-
-p, --pagesize=num -
Set page size for buffering STDIN to
num(default 512K)
-
-s, --syntax=name -
Set output syntax to
name, wherenameis one ofintel
(Intel syntax),att(AT&T syntax),raw(libdisasm syntax)
-
-d, --desc=name -
Print a description of syntax
name
-
-a, --addr=offset -
Disassemble single instruction at
offset
-
-e, --entry=offset -
Disassemble forward from
offset
-r,--range=offset len-
Disassemble
lenbytes starting atoffset
All offset and len parameters are expected to follow the conventions used in strtoul(3), where hexadecimal numbers have the prefix 0x, octal numbers have the prefix 0, and decimal numbers have no prefix. A value of 0 for len indicates that that range extends to the end of the file.
Examples
cat `which ls` | x86dis -s intel -e 0x00 -r 0x00 -1 -a 0xEEEE
x86dis -e 0 -s intel < bootsect.img
x86dis -d -s raw -f a.out -e `readelf -h a.out |
grep Entry | awk '{ printf( "0x%%x", strtonum($4) - 0x8048000 ) }` echo '55 89 e5 83 EC 08' | perl -ane 'foreach(@F){print pack("C",hex);}'| x86dis -e 0 -s att
Notes
x86dis performs no file format parsing, nor any verification that its input is in fact executable binary code. All offsets are assumed to be from the start of the file, with no load addresses applied. The intent is to provide a bytestream disassembler rather than an object file disassembler.
Descriptions of the various output formats can be obtained using the -d option.
Releases
Unchanged in 9 releases since Debian 5.0 (Lenny).