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.
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
Get documentation
Reference manual available in$SRC/docs/manual
,
or 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
Udis86 is a creation of 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