X86DIS(1)
β¨ x86dis β¨ β like, the whole manual page, bestie π
okay so real talk: this is the x86dis manual, and it lives in section 1 of the libdisasm manual set. it's a tiny command-line bestie that takes a big ol' pile of raw bytes and tells you what Intel x86 instructions are hiding in there. no cap. let's get into it π¦
πΈ NAME πΈ
x86dis β disassemble a bytestream of Intel x86 instructions
literally that's the whole vibe: bytes go in, assembly comes out π
π SYNTAX π
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]
β¨ DESCRIPTION β¨
A command-line interface to the libdisasm disassembler library.
that's it, that's the whole description. it's giving "confident, brief, iconic" π
π OPTIONS π
Heads up bestie: at least one option from the list-a,-e,-rmust be given. no instructions, no disassembly, no slay. sorry. π
-f,--file=fileβ read the input bytes from file instead of stdin π-o,--out=fileβ write output to file instead of stdout-l,--log=fileβ log errors to file instead of stderr-p,--pagesize=numβ set the page size for buffering STDIN to num (default is512K)-s,--syntax=nameβ set the output syntax to name, where name is one ofintel(Intel syntax),att(AT&T syntax), orraw(libdisasm syntax) π-d,--desc=nameβ print a description of syntax name-a,--addr=offsetβ disassemble a single instruction at offset β¨-e,--entry=offsetβ disassemble forward from offset-r,--range=offset lenβ disassemble len bytes starting at offset
okay so now the β¨numbersβ¨ part, because this is where people get got:
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
copy these exactly, i am begging you π
π 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.
fr fr, it does not check anything. you hand it garbage bytes, it disassembles garbage bytes. main character energy, zero impulse control. π
Descriptions of the various output formats can be obtained using the -d option. π
π AUTHORS π
mammon_ <mammon_@users.sourceforge.net>
π SEE ALSO π
bastard(1), libdisasm(7), x86_disasm(3), x86_format_insn(3), x86_init(3)
this page was brought to you by mammon_ (the author, iconic of them), version 0.21, and it belongs to the X86DIS(1) page of the libdisasm manual set. mwah, go disassemble something πβ¨π«Ά
π¦ where this page comes from
- debian bookworm: x86dis 0.23-6+b1
- debian trixie: x86dis 0.23-7 Β· Artistic-1.0-clarified
- ubuntu jammy: x86dis 0.23-6build1
- ubuntu noble: x86dis 0.23-6.1
- ubuntu questing: x86dis 0.23-7
- ubuntu resolute: x86dis 0.23-7build1 Β· Artistic-1.0-clarified
- ubuntu stonking: x86dis 0.23-7build1 Β· Artistic-1.0-clarified
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms