# Welcome to udis86’s documentation!

Udis86 is a disassembler engine that decodes a stream of binary machine code bytes as opcodes defined in the x86 and x86-64 class of Instruction Set Architectures. The core component of this project is libudis86 which provides a clean and simple interface to disassemble binary code, and to inspect the disassembly to various degrees of detail. The library is designed to aid software projects that entail analysis and manipulation of all flavors of x86 binary code.

- Getting Started
  - Building and Installing udis86
  - Interfacing with libudis86: A Quick Example
- libudis86
  - ud_t: udis86 object
    - `ud_t`
  - Setup Machine State
    - `ud_set_mode()`
    - `ud_set_pc()`
    - `ud_set_vendor()`
  - Setup Input
    - `ud_set_input_buffer()`
    - `ud_set_input_file()`
    - `ud_set_input_hook()`
    - `ud_input_skip()`
    - `ud_input_end()`
    - `ud_set_user_opaque_data()`
    - `ud_get_user_opaque_data()`
  - Setup Translation
    - `ud_set_syntax()`
  - Disassemble
    - `ud_disassemble()`
    - `ud_insn_len()`
    - `ud_insn_off()`
    - `ud_insn_hex()`
    - `ud_insn_ptr()`
    - `ud_insn_asm()`
    - `ud_insn_opr()`
    - `ud_insn_mnemonic()`
  - Inspect Operands
    - `ud_operand_t`
    - `size`
    - `type`
    - `base`
    - `index`
    - `scale`
    - `offset`
    - `lval`
  - Inspect Prefixes
    - `pfx_rex`
    - `pfx_seg`
    - `pfx_opr`
    - `pfx_adr`
    - `pfx_lock`
    - `pfx_str`
    - `pfx_rep`
    - `pfx_repe`
    - `pfx_repne`

# Indices and tables

- Index

- Search Page