# udis86

## Disassembler Library for x86 and x86-64

udis86 is an easy-to-use minimalistic disassembler library (libudis86) for the x86 and x86-64 class of instruction set architectures. The primary intent of the design and development of udis86 is to aid software development projects that entail binary code analysis.

Project site · Bug Tracking · x86/optable.xml

### Get sources

Latest Release: udis86-1.7.tar.gz

udis86 is now maintained using the git source code control system. The latest, stable code is available as the master branch in the sourceforge project git repository.

    git://udis86.git.sourceforge.net/gitroot/udis86/udis86

### Get documentation

The reference manual available in `$SRC/docs/manual`, or you may browse online.

### libudis86

- Full support for the x86 and x86-64 (AMD64) range of instruction set architectures.
- Full support for all AMD-V, INTEL-VMX, MMX, SSE, SSE2, SSE3, FPU(x87), and AMD 3Dnow! instructions.
- Supports 16bit, 32bit, and 64bit disassembly modes.
- Supports instruction meta-data using XML based decode tables.
- Generates output in AT&T or INTEL assembler language syntaxes.
- Supports flexbile input methods: File, Buffer, and Hooks.
- Reentrant.
- Clean and very easy-to-use API.

### udcli

A front-end incarnation of this library, udcli is a small command-line tool for your quick disassembly needs.

    $ echo "65 67 89 87 76 65 54 56 78 89 09 00 87" | udcli -32 -x
    0000000000000000 656789877665    mov [gs:bx+0x6576], eax
    0000000000000000 54              push esp
    0000000000000000 56              push esi
    0000000000000000 7889            js 0x93
    0000000000000000 0900            or [eax], eax

### Author

Authored and maintained by Vivek Thampi. You can reach me at vivek[at]sig9[dot]com. Please let me know if you are using udis86, have ideas for it, or would like to comment on it.

### License

Udis86 is an open source project, and is distributed under the terms of the BSD License.

© 2009 Vivek Thampi