Crate libudis86_sys

Source

Structs§

ud
ud_lval_ptr
ud_operand

Enums§

ud_mnemonic_code
ud_table_type
ud_type

Statics§

ud_mnemonics_str⚠

Functions§

ud_decode⚠
Returns the number of bytes decoded.
ud_disassemble⚠
Disassembles the next instruction in the input stream. Returns the number of bytes disassembled. A 0 indicates end of input. Note, to restart disassembly after the end of input, you must call one of the input setting functions with a new source of input.
ud_get_user_opaque_data⚠
Returns any pointer associated with the udis86 object, using the ud_set_user_opaque_data function.
ud_init⚠
Initializes an instance.
ud_input_end⚠
Test for end of input. You can use this function to test if udis86 has exhausted the input.
ud_input_skip⚠
Skips ahead n number of bytes in the input stream.
ud_insn_asm⚠
If the syntax is specified, returns pointer to the character string holding assembly language representation of the disassembled instruction.
ud_insn_hex⚠
Returns pointer to a character string holding the hexadecimal representation of the disassembled bytes.
ud_insn_len⚠
Returns the number of bytes disassembled.
ud_insn_mnemonic⚠
Returns the instruction mnemonic in the form of an enumerated constant (ud_mnemonic_code). As a convention all mnemonic constants are composed by prefixing standard instruction mnemonics with UD_I. For example, the enumerations for mov, xor and jmp are UD_Imov, UD_Ixor, and UD_Ijmp, respectively.
ud_insn_off⚠
Returns the offset of the disassembled instruction in terms of the program counter value specified initially.
ud_insn_opr⚠
Returns a reference (ud_operand) to the nth (starting with 0) operand of the instruction. If the instruction does not have such an operand, the function returns null.
ud_insn_ptr⚠
Returns pointer to the buffer holding the instruction bytes. Use ud_insn_len to determine the size of this buffer.
ud_lookup_mnemonic⚠
Returns a pointer to a character string corresponding to the given mnemonic code. Returns a null if the code is invalid.
ud_opr_is_gpr⚠
Returns true if the operand uses a general purpose register.
ud_opr_is_sreg⚠
Returns true if the operand uses a segment register.
ud_set_asm_buffer⚠
Sets a custom assembler output buffer.
ud_set_input_buffer⚠
Sets the input source for the library to a buffer of size bytes.
ud_set_input_file⚠
Sets the input source to a file pointed to by a given standard library FILE pointer. Note that libudis86 does not perform any checks, and assumes that the file pointer is properly initialized and open for reading.
ud_set_input_hook⚠
Sets a pointer to a function, to callback for input. The callback is invoked each time libudis86 needs the next byte in the input stream. To single end-of-input, this callback must return the constant UD_EOI.
ud_set_mode⚠
Sets the mode of disassembly. Possible values are 16, 32, and 64. By default, the library works in 32bit mode.
ud_set_pc⚠
Sets the program counter (IP/EIP/RIP). This changes the offset of the assembly output generated, with direct effect on branch instructions.
ud_set_sym_resolver⚠
Sets a symbol resolver for relative targets used in the translation phase.
ud_set_syntax⚠
Sets the function that translates the intermediate decode information to a human readable form. There are two inbuilt translators,
ud_set_user_opaque_data⚠
Associates a pointer with the udis86 object to be retrieved and used in client functions, such as the input hook callback function.
ud_set_vendor⚠
Sets the vendor of whose instruction to choose from. This is only useful for selecting the VMX or SVM instruction sets at which point INTEL and AMD have diverged significantly. At a later stage, support for a more granular selection of instruction sets maybe added.
ud_translate_att⚠
Translator for the AT&T syntax.
ud_translate_intel⚠
Translator for the Intel syntax.

Unions§

ud_lval