IDAPython 8.4
Loading...
Searching...
No Matches
ida_bytes Namespace Reference

Detailed Description

Contains functions that deal with individual byte characteristics.

Each byte of the disassembled program is represented by a 32-bit value. We will
call this value 'flags'. The structure of the flags is here.

You are not allowed to inspect individual bits of flags and modify them
directly. Use special functions to inspect and/or modify flags.

Flags are kept in a virtual array file (*.id1). Addresses (ea) are all 32-bit
(or 64-bit) quantities.

Classes

class  compiled_binpat_t
 Proxy of C++ compiled_binpat_t class. More...
 
class  compiled_binpat_vec_t
 Proxy of C++ qvector< compiled_binpat_t > class. More...
 
class  data_format_t
 Proxy of C++ data_format_t class. More...
 
class  data_type_t
 Proxy of C++ data_type_t class. More...
 
class  hidden_range_t
 Proxy of C++ hidden_range_t class. More...
 
class  octet_generator_t
 Proxy of C++ octet_generator_t class. More...
 

Functions

"error_t" enable_flags (*args)
 enable_flags(start_ea, end_ea, stt) -> error_t Allocate flags for address range.
 
"error_t" disable_flags (*args)
 disable_flags(start_ea, end_ea) -> error_t Deallocate flags for address range.
 
"error_t" change_storage_type (*args)
 change_storage_type(start_ea, end_ea, stt) -> error_t Change flag storage type for address range.
 
"ea_t" next_addr (*args)
 next_addr(ea) -> ea_t Get next address in the program (i.e.
 
"ea_t" prev_addr (*args)
 prev_addr(ea) -> ea_t Get previous address in the program.
 
"ea_t" next_chunk (*args)
 next_chunk(ea) -> ea_t Get the first address of next contiguous chunk in the program.
 
"ea_t" prev_chunk (*args)
 prev_chunk(ea) -> ea_t Get the last address of previous contiguous chunk in the program.
 
"ea_t" chunk_start (*args)
 chunk_start(ea) -> ea_t Get start of the contiguous address block containing 'ea'.
 
"asize_t" chunk_size (*args)
 chunk_size(ea) -> asize_t Get size of the contiguous address block containing 'ea'.
 
"ea_t" find_free_chunk (*args)
 find_free_chunk(start, size, alignment) -> ea_t Search for a hole in the addressing space of the program.
 
"ea_t" next_that (*args)
 next_that(ea, maxea, testf) -> ea_t Find next address with a flag satisfying the function 'testf'.
 
"ea_t" next_unknown (*args)
 next_unknown(ea, maxea) -> ea_t Similar to next_that(), but will find the next address that is unexplored.
 
"ea_t" prev_that (*args)
 prev_that(ea, minea, testf) -> ea_t Find previous address with a flag satisfying the function 'testf'.
 
"ea_t" prev_unknown (*args)
 prev_unknown(ea, minea) -> ea_t Similar to prev_that(), but will find the previous address that is unexplored.
 
"ea_t" prev_head (*args)
 prev_head(ea, minea) -> ea_t Get start of previous defined item.
 
"ea_t" next_head (*args)
 next_head(ea, maxea) -> ea_t Get start of next defined item.
 
"ea_t" prev_not_tail (*args)
 prev_not_tail(ea) -> ea_t Get address of previous non-tail byte.
 
"ea_t" next_not_tail (*args)
 next_not_tail(ea) -> ea_t Get address of next non-tail byte.
 
"ea_t" prev_visea (*args)
 prev_visea(ea) -> ea_t Get previous visible address.
 
"ea_t" next_visea (*args)
 next_visea(ea) -> ea_t Get next visible address.
 
"ea_t" get_item_head (*args)
 get_item_head(ea) -> ea_t Get the start address of the item at 'ea'.
 
"ea_t" get_item_end (*args)
 get_item_end(ea) -> ea_t Get the end address of the item at 'ea'.
 
"ea_t" calc_max_item_end (*args)
 calc_max_item_end(ea, how=15) -> ea_t Calculate maximal reasonable end address of a new item.
 
"asize_t" get_item_size (*args)
 get_item_size(ea) -> asize_t Get size of item (instruction/data) in bytes.
 
"bool" is_mapped (*args)
 is_mapped(ea) -> bool Is the specified address 'ea' present in the program?
 
"flags64_t" get_flags_ex (*args)
 get_flags_ex(ea, how) -> flags64_t Get flags for the specified address, extended form.
 
"flags64_t" get_flags (*args)
 get_flags(ea) -> flags64_t get flags with FF_IVL & MS_VAL.
 
"flags64_t" get_full_flags (*args)
 get_full_flags(ea) -> flags64_t Get flags value for address 'ea'.
 
"flags64_t" get_item_flag (*args)
 get_item_flag(_from, n, ea, appzero) -> flags64_t Get flag of the item at 'ea' even if it is a tail byte of some array or structure.
 
"bool" get_item_refinfo (*args)
 get_item_refinfo(ri, ea, n) -> bool Get refinfo of the item at 'ea'.
 
"bool" has_value (*args)
 has_value(F) -> bool Do flags contain byte value?
 
"void" del_value (*args)
 del_value(ea) Delete byte value from flags.
 
"bool" is_loaded (*args)
 is_loaded(ea) -> bool Does the specified address have a byte value (is initialized?)
 
"int" nbits (*args)
 nbits(ea) -> int Get number of bits in a byte at the given address.
 
"int" bytesize (*args)
 bytesize(ea) -> int Get number of bytes required to store a byte at the given address.
 
"uchar" get_byte (*args)
 get_byte(ea) -> uchar Get one byte (8-bit) of the program at 'ea'.
 
"uchar" get_db_byte (*args)
 get_db_byte(ea) -> uchar Get one byte (8-bit) of the program at 'ea' from the database.
 
"ushort" get_word (*args)
 get_word(ea) -> ushort Get one word (16-bit) of the program at 'ea'.
 
"uint32" get_dword (*args)
 get_dword(ea) -> uint32 Get one dword (32-bit) of the program at 'ea'.
 
"uint64" get_qword (*args)
 get_qword(ea) -> uint64 Get one qword (64-bit) of the program at 'ea'.
 
"uint64" get_wide_byte (*args)
 get_wide_byte(ea) -> uint64 Get one wide byte of the program at 'ea'.
 
"uint64" get_wide_word (*args)
 get_wide_word(ea) -> uint64 Get one wide word (2 'byte') of the program at 'ea'.
 
"uint64" get_wide_dword (*args)
 get_wide_dword(ea) -> uint64 Get two wide words (4 'bytes') of the program at 'ea'.
 
"uchar *" get_octet2 (*args)
 get_octet2(ogen) -> bool
 
"uint32" get_16bit (*args)
 get_16bit(ea) -> uint32 Get 16bits of the program at 'ea'.
 
"uint32" get_32bit (*args)
 get_32bit(ea) -> uint32 Get not more than 32bits of the program at 'ea'.
 
"uint64" get_64bit (*args)
 get_64bit(ea) -> uint64 Get not more than 64bits of the program at 'ea'.
 
"bool" get_data_value (*args)
 get_data_value(v, ea, size) -> bool Get the value at of the item at 'ea'.
 
"uint64" get_original_byte (*args)
 get_original_byte(ea) -> uint64 Get original byte value (that was before patching).
 
"uint64" get_original_word (*args)
 get_original_word(ea) -> uint64 Get original word value (that was before patching).
 
"uint64" get_original_dword (*args)
 get_original_dword(ea) -> uint64 Get original dword (that was before patching) This function works for wide byte processors too.
 
"uint64" get_original_qword (*args)
 get_original_qword(ea) -> uint64 Get original qword value (that was before patching) This function DOESN'T work for wide byte processors too.
 
"bool" put_byte (*args)
 put_byte(ea, x) -> bool Set value of one byte of the program.
 
"void" put_word (*args)
 put_word(ea, x) Set value of one word of the program.
 
"void" put_dword (*args)
 put_dword(ea, x) Set value of one dword of the program.
 
"void" put_qword (*args)
 put_qword(ea, x) Set value of one qword (8 bytes) of the program.
 
"bool" patch_byte (*args)
 patch_byte(ea, x) -> bool Patch a byte of the program.
 
"bool" patch_word (*args)
 patch_word(ea, x) -> bool Patch a word of the program.
 
"bool" patch_dword (*args)
 patch_dword(ea, x) -> bool Patch a dword of the program.
 
"bool" patch_qword (*args)
 patch_qword(ea, x) -> bool Patch a qword of the program.
 
"bool" revert_byte (*args)
 revert_byte(ea) -> bool Revert patched byte
 
"void" add_byte (*args)
 add_byte(ea, value) Add a value to one byte of the program.
 
"void" add_word (*args)
 add_word(ea, value) Add a value to one word of the program.
 
"void" add_dword (*args)
 add_dword(ea, value) Add a value to one dword of the program.
 
"void" add_qword (*args)
 add_qword(ea, value) Add a value to one qword of the program.
 
"bool" get_zero_ranges (*args)
 get_zero_ranges(zranges, range) -> bool Return set of ranges with zero initialized bytes.
 
"void" put_bytes (*args)
 put_bytes(ea, buf) Modify the specified number of bytes of the program.
 
"void" patch_bytes (*args)
 patch_bytes(ea, buf) Patch the specified number of bytes of the program.
 
"bool" is_code (*args)
 is_code(F) -> bool Does flag denote start of an instruction?
 
"bool" f_is_code (*args)
 f_is_code(F, arg2) -> bool Does flag denote start of an instruction?
 
"bool" is_data (*args)
 is_data(F) -> bool Does flag denote start of data?
 
"bool" f_is_data (*args)
 f_is_data(F, arg2) -> bool Does flag denote start of data?
 
"bool" is_tail (*args)
 is_tail(F) -> bool Does flag denote tail byte?
 
"bool" f_is_tail (*args)
 f_is_tail(F, arg2) -> bool Does flag denote tail byte?
 
"bool" is_not_tail (*args)
 is_not_tail(F) -> bool Does flag denote tail byte?
 
"bool" f_is_not_tail (*args)
 f_is_not_tail(F, arg2) -> bool Does flag denote tail byte?
 
"bool" is_unknown (*args)
 is_unknown(F) -> bool Does flag denote unexplored byte?
 
"bool" is_head (*args)
 is_head(F) -> bool Does flag denote start of instruction OR data?
 
"bool" f_is_head (*args)
 f_is_head(F, arg2) -> bool Does flag denote start of instruction OR data?
 
"bool" del_items (*args)
 del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool Convert item (instruction/data) to unexplored bytes.
 
"bool" is_manual_insn (*args)
 is_manual_insn(ea) -> bool Is the instruction overridden?
 
"qstring *" get_manual_insn (*args)
 get_manual_insn(ea) -> str Retrieve the user-specified string for the manual instruction.
 
"void" set_manual_insn (*args)
 set_manual_insn(ea, manual_insn) Set manual instruction string.
 
"bool" is_flow (*args)
 is_flow(F) -> bool Does the previous instruction exist and pass execution flow to the current byte?
 
"bool" has_extra_cmts (*args)
 has_extra_cmts(F) -> bool Does the current byte have additional anterior or posterior lines?
 
"bool" f_has_extra_cmts (*args)
 f_has_extra_cmts(f, arg2) -> bool
 
"bool" has_cmt (*args)
 has_cmt(F) -> bool Does the current byte have an indented comment?
 
"bool" f_has_cmt (*args)
 f_has_cmt(f, arg2) -> bool
 
"bool" has_xref (*args)
 has_xref(F) -> bool Does the current byte have cross-references to it?
 
"bool" f_has_xref (*args)
 f_has_xref(f, arg2) -> bool Does the current byte have cross-references to it?
 
"bool" has_name (*args)
 has_name(F) -> bool Does the current byte have non-trivial (non-dummy) name?
 
"bool" f_has_name (*args)
 f_has_name(f, arg2) -> bool Does the current byte have non-trivial (non-dummy) name?
 
"bool" has_dummy_name (*args)
 has_dummy_name(F) -> bool Does the current byte have dummy (auto-generated, with special prefix) name?
 
"bool" f_has_dummy_name (*args)
 f_has_dummy_name(f, arg2) -> bool Does the current byte have dummy (auto-generated, with special prefix) name?
 
"bool" has_auto_name (*args)
 has_auto_name(F) -> bool Does the current byte have auto-generated (no special prefix) name?
 
"bool" has_any_name (*args)
 has_any_name(F) -> bool Does the current byte have any name?
 
"bool" has_user_name (*args)
 has_user_name(F) -> bool Does the current byte have user-specified name?
 
"bool" f_has_user_name (*args)
 f_has_user_name(F, arg2) -> bool Does the current byte have user-specified name?
 
"bool" is_invsign (*args)
 is_invsign(ea, F, n) -> bool Should sign of n-th operand inverted during output?.
 
"bool" toggle_sign (*args)
 toggle_sign(ea, n) -> bool Toggle sign of n-th operand.
 
"bool" is_bnot (*args)
 is_bnot(ea, F, n) -> bool Should we negate the operand?.
 
"bool" toggle_bnot (*args)
 toggle_bnot(ea, n) -> bool Toggle binary negation of operand.
 
"bool" is_lzero (*args)
 is_lzero(ea, n) -> bool Display leading zeroes? Display leading zeroes in operands.
 
"bool" set_lzero (*args)
 set_lzero(ea, n) -> bool Set toggle lzero bit.
 
"bool" clr_lzero (*args)
 clr_lzero(ea, n) -> bool Clear toggle lzero bit.
 
"bool" toggle_lzero (*args)
 toggle_lzero(ea, n) -> bool Toggle lzero bit.
 
"bool" leading_zero_important (*args)
 leading_zero_important(ea, n) -> bool Check if leading zeroes are important.
 
"int" get_operand_type_shift (*args)
 get_operand_type_shift(n) -> int Get the shift in flags64_t for the nibble representing operand n's type
 
"flags64_t" get_operand_flag (*args)
 get_operand_flag(typebits, n) -> flags64_t Place operand n's type flag in the right nibble of a 64-bit flags set.
 
"bool" is_flag_for_operand (*args)
 is_flag_for_operand(F, typebits, n) -> bool Check that the 64-bit flags set has the expected type for operand n.
 
"bool" is_defarg0 (*args)
 is_defarg0(F) -> bool Is the first operand defined? Initially operand has no defined representation.
 
"bool" is_defarg1 (*args)
 is_defarg1(F) -> bool Is the second operand defined? Initially operand has no defined representation.
 
"bool" is_off0 (*args)
 is_off0(F) -> bool Is the first operand offset? (example: push offset xxx)
 
"bool" is_off1 (*args)
 is_off1(F) -> bool Is the second operand offset? (example: mov ax, offset xxx)
 
"bool" is_char0 (*args)
 is_char0(F) -> bool Is the first operand character constant? (example: push 'a')
 
"bool" is_char1 (*args)
 is_char1(F) -> bool Is the second operand character constant? (example: mov al, 'a')
 
"bool" is_seg0 (*args)
 is_seg0(F) -> bool Is the first operand segment selector? (example: push seg seg001)
 
"bool" is_seg1 (*args)
 is_seg1(F) -> bool Is the second operand segment selector? (example: mov dx, seg dseg)
 
"bool" is_enum0 (*args)
 is_enum0(F) -> bool Is the first operand a symbolic constant (enum member)?
 
"bool" is_enum1 (*args)
 is_enum1(F) -> bool Is the second operand a symbolic constant (enum member)?
 
"bool" is_stroff0 (*args)
 is_stroff0(F) -> bool Is the first operand an offset within a struct?
 
"bool" is_stroff1 (*args)
 is_stroff1(F) -> bool Is the second operand an offset within a struct?
 
"bool" is_stkvar0 (*args)
 is_stkvar0(F) -> bool Is the first operand a stack variable?
 
"bool" is_stkvar1 (*args)
 is_stkvar1(F) -> bool Is the second operand a stack variable?
 
"bool" is_float0 (*args)
 is_float0(F) -> bool Is the first operand a floating point number?
 
"bool" is_float1 (*args)
 is_float1(F) -> bool Is the second operand a floating point number?
 
"bool" is_custfmt0 (*args)
 is_custfmt0(F) -> bool Does the first operand use a custom data representation?
 
"bool" is_custfmt1 (*args)
 is_custfmt1(F) -> bool Does the second operand use a custom data representation?
 
"bool" is_numop0 (*args)
 is_numop0(F) -> bool Is the first operand a number (i.e.
 
"bool" is_numop1 (*args)
 is_numop1(F) -> bool Is the second operand a number (i.e.
 
"flags64_t" get_optype_flags0 (*args)
 get_optype_flags0(F) -> flags64_t Get flags for first operand.
 
"flags64_t" get_optype_flags1 (*args)
 get_optype_flags1(F) -> flags64_t Get flags for second operand.
 
"bool" is_defarg (*args)
 is_defarg(F, n) -> bool is defined?
 
"bool" is_off (*args)
 is_off(F, n) -> bool is offset?
 
"bool" is_char (*args)
 is_char(F, n) -> bool is character constant?
 
"bool" is_seg (*args)
 is_seg(F, n) -> bool is segment?
 
"bool" is_enum (*args)
 is_enum(F, n) -> bool is enum?
 
"bool" is_manual (*args)
 is_manual(F, n) -> bool is forced operand? (use is_forced_operand())
 
"bool" is_stroff (*args)
 is_stroff(F, n) -> bool is struct offset?
 
"bool" is_stkvar (*args)
 is_stkvar(F, n) -> bool is stack variable?
 
"bool" is_fltnum (*args)
 is_fltnum(F, n) -> bool is floating point number?
 
"bool" is_custfmt (*args)
 is_custfmt(F, n) -> bool is custom data format?
 
"bool" is_numop (*args)
 is_numop(F, n) -> bool is number (bin, oct, dec, hex)?
 
"bool" is_suspop (*args)
 is_suspop(ea, F, n) -> bool is suspicious operand?
 
"bool" op_adds_xrefs (*args)
 op_adds_xrefs(F, n) -> bool Should processor module create xrefs from the operand?.
 
"bool" set_op_type (*args)
 set_op_type(ea, type, n) -> bool (internal function) change representation of operand(s).
 
"bool" op_seg (*args)
 op_seg(ea, n) -> bool Set operand representation to be 'segment'.
 
"bool" op_enum (*args)
 op_enum(ea, n, id, serial=0) -> bool Set operand representation to be 'enum_t'.
 
"uchar *" get_enum_id (*args)
 get_enum_id(ea, n) -> enum_t Get enum id of 'enum' operand.
 
"bool" op_based_stroff (*args)
 op_based_stroff(insn, n, opval, base) -> bool Set operand representation to be 'struct offset' if the operand likely points to a structure member.
 
"int" get_stroff_path (*args)
 get_stroff_path(path, delta, ea, n) -> int Get struct path of operand.
 
"bool" op_stkvar (*args)
 op_stkvar(ea, n) -> bool Set operand representation to be 'stack variable'.
 
"bool" set_forced_operand (*args)
 set_forced_operand(ea, n, op) -> bool Set forced operand.
 
"qstring *" get_forced_operand (*args)
 get_forced_operand(ea, n) -> str Get forced operand.
 
"bool" is_forced_operand (*args)
 is_forced_operand(ea, n) -> bool Is operand manually defined?.
 
"flags64_t" combine_flags (*args)
 combine_flags(F) -> flags64_t
 
"flags64_t" char_flag (*args)
 char_flag() -> flags64_t see FF_opbits
 
"flags64_t" off_flag (*args)
 off_flag() -> flags64_t see FF_opbits
 
"flags64_t" enum_flag (*args)
 enum_flag() -> flags64_t see FF_opbits
 
"flags64_t" stroff_flag (*args)
 stroff_flag() -> flags64_t see FF_opbits
 
"flags64_t" stkvar_flag (*args)
 stkvar_flag() -> flags64_t see FF_opbits
 
"flags64_t" flt_flag (*args)
 flt_flag() -> flags64_t see FF_opbits
 
"flags64_t" custfmt_flag (*args)
 custfmt_flag() -> flags64_t see FF_opbits
 
"flags64_t" seg_flag (*args)
 seg_flag() -> flags64_t see FF_opbits
 
"flags64_t" num_flag (*args)
 num_flag() -> flags64_t Get number of default base (bin, oct, dec, hex)
 
"flags64_t" hex_flag (*args)
 hex_flag() -> flags64_t Get number flag of the base, regardless of current processor - better to use num_flag()
 
"flags64_t" dec_flag (*args)
 dec_flag() -> flags64_t Get number flag of the base, regardless of current processor - better to use num_flag()
 
"flags64_t" oct_flag (*args)
 oct_flag() -> flags64_t Get number flag of the base, regardless of current processor - better to use num_flag()
 
"flags64_t" bin_flag (*args)
 bin_flag() -> flags64_t Get number flag of the base, regardless of current processor - better to use num_flag()
 
"bool" op_chr (*args)
 op_chr(ea, n) -> bool set op type to char_flag()
 
"bool" op_num (*args)
 op_num(ea, n) -> bool set op type to num_flag()
 
"bool" op_hex (*args)
 op_hex(ea, n) -> bool set op type to hex_flag()
 
"bool" op_dec (*args)
 op_dec(ea, n) -> bool set op type to dec_flag()
 
"bool" op_oct (*args)
 op_oct(ea, n) -> bool set op type to oct_flag()
 
"bool" op_bin (*args)
 op_bin(ea, n) -> bool set op type to bin_flag()
 
"bool" op_flt (*args)
 op_flt(ea, n) -> bool set op type to flt_flag()
 
"bool" op_custfmt (*args)
 op_custfmt(ea, n, fid) -> bool Set custom data format for operand (fid-custom data format id)
 
"bool" clr_op_type (*args)
 clr_op_type(ea, n) -> bool Remove operand representation information.
 
"int" get_default_radix (*args)
 get_default_radix() -> int Get default base of number for the current processor.
 
"int" get_radix (*args)
 get_radix(F, n) -> int Get radix of the operand, in: flags.
 
"flags64_t" code_flag (*args)
 code_flag() -> flags64_t FF_CODE
 
"flags64_t" byte_flag (*args)
 byte_flag() -> flags64_t Get a flags64_t representing a byte.
 
"flags64_t" word_flag (*args)
 word_flag() -> flags64_t Get a flags64_t representing a word.
 
"flags64_t" dword_flag (*args)
 dword_flag() -> flags64_t Get a flags64_t representing a double word.
 
"flags64_t" qword_flag (*args)
 qword_flag() -> flags64_t Get a flags64_t representing a quad word.
 
"flags64_t" oword_flag (*args)
 oword_flag() -> flags64_t Get a flags64_t representing a octaword.
 
"flags64_t" yword_flag (*args)
 yword_flag() -> flags64_t Get a flags64_t representing a ymm word.
 
"flags64_t" zword_flag (*args)
 zword_flag() -> flags64_t Get a flags64_t representing a zmm word.
 
"flags64_t" tbyte_flag (*args)
 tbyte_flag() -> flags64_t Get a flags64_t representing a tbyte.
 
"flags64_t" strlit_flag (*args)
 strlit_flag() -> flags64_t Get a flags64_t representing a string literal.
 
"flags64_t" stru_flag (*args)
 stru_flag() -> flags64_t Get a flags64_t representing a struct.
 
"flags64_t" cust_flag (*args)
 cust_flag() -> flags64_t Get a flags64_t representing custom type data.
 
"flags64_t" align_flag (*args)
 align_flag() -> flags64_t Get a flags64_t representing an alignment directive.
 
"flags64_t" float_flag (*args)
 float_flag() -> flags64_t Get a flags64_t representing a float.
 
"flags64_t" double_flag (*args)
 double_flag() -> flags64_t Get a flags64_t representing a double.
 
"flags64_t" packreal_flag (*args)
 packreal_flag() -> flags64_t Get a flags64_t representing a packed decimal real.
 
"bool" is_byte (*args)
 is_byte(F) -> bool FF_BYTE
 
"bool" is_word (*args)
 is_word(F) -> bool FF_WORD
 
"bool" is_dword (*args)
 is_dword(F) -> bool FF_DWORD
 
"bool" is_qword (*args)
 is_qword(F) -> bool FF_QWORD
 
"bool" is_oword (*args)
 is_oword(F) -> bool FF_OWORD
 
"bool" is_yword (*args)
 is_yword(F) -> bool FF_YWORD
 
"bool" is_zword (*args)
 is_zword(F) -> bool FF_ZWORD
 
"bool" is_tbyte (*args)
 is_tbyte(F) -> bool FF_TBYTE
 
"bool" is_float (*args)
 is_float(F) -> bool FF_FLOAT
 
"bool" is_double (*args)
 is_double(F) -> bool FF_DOUBLE
 
"bool" is_pack_real (*args)
 is_pack_real(F) -> bool FF_PACKREAL
 
"bool" is_strlit (*args)
 is_strlit(F) -> bool FF_STRLIT
 
"bool" is_struct (*args)
 is_struct(F) -> bool FF_STRUCT
 
"bool" is_align (*args)
 is_align(F) -> bool FF_ALIGN
 
"bool" is_custom (*args)
 is_custom(F) -> bool FF_CUSTOM
 
"bool" f_is_byte (*args)
 f_is_byte(F, arg2) -> bool See is_byte()
 
"bool" f_is_word (*args)
 f_is_word(F, arg2) -> bool See is_word()
 
"bool" f_is_dword (*args)
 f_is_dword(F, arg2) -> bool See is_dword()
 
"bool" f_is_qword (*args)
 f_is_qword(F, arg2) -> bool See is_qword()
 
"bool" f_is_oword (*args)
 f_is_oword(F, arg2) -> bool See is_oword()
 
"bool" f_is_yword (*args)
 f_is_yword(F, arg2) -> bool See is_yword()
 
"bool" f_is_tbyte (*args)
 f_is_tbyte(F, arg2) -> bool See is_tbyte()
 
"bool" f_is_float (*args)
 f_is_float(F, arg2) -> bool See is_float()
 
"bool" f_is_double (*args)
 f_is_double(F, arg2) -> bool See is_double()
 
"bool" f_is_pack_real (*args)
 f_is_pack_real(F, arg2) -> bool See is_pack_real()
 
"bool" f_is_strlit (*args)
 f_is_strlit(F, arg2) -> bool See is_strlit()
 
"bool" f_is_struct (*args)
 f_is_struct(F, arg2) -> bool See is_struct()
 
"bool" f_is_align (*args)
 f_is_align(F, arg2) -> bool See is_align()
 
"bool" f_is_custom (*args)
 f_is_custom(F, arg2) -> bool See is_custom()
 
"bool" is_same_data_type (*args)
 is_same_data_type(F1, F2) -> bool Do the given flags specify the same data type?
 
"flags64_t" get_flags_by_size (*args)
 get_flags_by_size(size) -> flags64_t Get flags from size (in bytes).
 
"bool" create_data (*args)
 create_data(ea, dataflag, size, tid) -> bool Convert to data (byte, word, dword, etc).
 
"flags64_t" calc_dflags (*args)
 calc_dflags(f, force) -> flags64_t
 
"bool" create_byte (*args)
 create_byte(ea, length, force=False) -> bool Convert to byte.
 
"bool" create_word (*args)
 create_word(ea, length, force=False) -> bool Convert to word.
 
"bool" create_dword (*args)
 create_dword(ea, length, force=False) -> bool Convert to dword.
 
"bool" create_qword (*args)
 create_qword(ea, length, force=False) -> bool Convert to quadword.
 
"bool" create_oword (*args)
 create_oword(ea, length, force=False) -> bool Convert to octaword/xmm word.
 
"bool" create_yword (*args)
 create_yword(ea, length, force=False) -> bool Convert to ymm word.
 
"bool" create_zword (*args)
 create_zword(ea, length, force=False) -> bool Convert to zmm word.
 
"bool" create_tbyte (*args)
 create_tbyte(ea, length, force=False) -> bool Convert to tbyte.
 
"bool" create_float (*args)
 create_float(ea, length, force=False) -> bool Convert to float.
 
"bool" create_double (*args)
 create_double(ea, length, force=False) -> bool Convert to double.
 
"bool" create_packed_real (*args)
 create_packed_real(ea, length, force=False) -> bool Convert to packed decimal real.
 
"bool" create_struct (*args)
 create_struct(ea, length, tid, force=False) -> bool Convert to struct.
 
"bool" create_custdata (*args)
 create_custdata(ea, length, dtid, fid, force=False) -> bool Convert to custom data type.
 
"bool" create_align (*args)
 create_align(ea, length, alignment) -> bool Create an alignment item.
 
"int" calc_min_align (*args)
 calc_min_align(length) -> int Calculate the minimal possible alignment exponent.
 
"int" calc_max_align (*args)
 calc_max_align(endea) -> int Calculate the maximal possible alignment exponent.
 
"int" calc_def_align (*args)
 calc_def_align(ea, mina, maxa) -> int Calculate the default alignment exponent.
 
"bool" create_16bit_data (*args)
 create_16bit_data(ea, length) -> bool Convert to 16-bit quantity (take the byte size into account)
 
"bool" create_32bit_data (*args)
 create_32bit_data(ea, length) -> bool Convert to 32-bit quantity (take the byte size into account)
 
"size_t" get_max_strlit_length (*args)
 get_max_strlit_length(ea, strtype, options=0) -> size_t Determine maximum length of string literal.
 
"bool" create_strlit (*args)
 create_strlit(start, len, strtype) -> bool Convert to string literal and give a meaningful name.
 
"opinfo_t *" get_opinfo (*args)
 get_opinfo(buf, ea, n, flags) -> opinfo_t Get additional information about an operand representation.
 
"bool" set_opinfo (*args)
 set_opinfo(ea, n, flag, ti, suppress_events=False) -> bool Set additional information about an operand representation.
 
"asize_t" get_data_elsize (*args)
 get_data_elsize(ea, F, ti=None) -> asize_t Get size of data type specified in flags 'F'.
 
"asize_t" get_full_data_elsize (*args)
 get_full_data_elsize(ea, F, ti=None) -> asize_t Get full size of data type specified in flags 'F'.
 
"int" is_varsize_item (*args)
 is_varsize_item(ea, F, ti=None, itemsize=None) -> int Is the item at 'ea' variable size?.
 
"asize_t" get_possible_item_varsize (*args)
 get_possible_item_varsize(ea, tif) -> asize_t Return the possible size of the item at EA of type TIF if TIF is the variable structure.
 
"bool" can_define_item (*args)
 can_define_item(ea, length, flags) -> bool Can define item (instruction/data) of the specified 'length', starting at 'ea'?
 
"bool" has_immd (*args)
 has_immd(F) -> bool Has immediate value?
 
"bool" is_func (*args)
 is_func(F) -> bool Is function start?
 
"bool" set_immd (*args)
 set_immd(ea) -> bool Set 'has immediate operand' flag.
 
"data_type_t const *" get_custom_data_type (*args)
 get_custom_data_type(dtid) -> data_type_t Get definition of a registered custom data type.
 
"data_format_t const *" get_custom_data_format (*args)
 get_custom_data_format(dfid) -> data_format_t Get definition of a registered custom data format.
 
"bool" attach_custom_data_format (*args)
 attach_custom_data_format(dtid, dfid) -> bool Attach the data format to the data type.
 
"bool" detach_custom_data_format (*args)
 detach_custom_data_format(dtid, dfid) -> bool Detach the data format from the data type.
 
"bool" is_attached_custom_data_format (*args)
 is_attached_custom_data_format(dtid, dfid) -> bool Is the custom data format attached to the custom data type?
 
"int" get_custom_data_types (*args)
 get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int Get list of registered custom data type ids.
 
"int" get_custom_data_formats (*args)
 get_custom_data_formats(out, dtid) -> int Get list of attached custom data formats for the specified data type.
 
"int" find_custom_data_type (*args)
 find_custom_data_type(name) -> int Get id of a custom data type.
 
"int" find_custom_data_format (*args)
 find_custom_data_format(name) -> int Get id of a custom data format.
 
"bool" set_cmt (*args)
 set_cmt(ea, comm, rptble) -> bool Set an indented comment.
 
"qstring *" get_cmt (*args)
 get_cmt(ea, rptble) -> str Get an indented comment.
 
"bool" append_cmt (*args)
 append_cmt(ea, str, rptble) -> bool Append to an indented comment.
 
"qstring *" get_predef_insn_cmt (*args)
 get_predef_insn_cmt(ins) -> str Get predefined comment.
 
"ea_t" find_byte (*args)
 find_byte(sEA, size, value, bin_search_flags) -> ea_t Find forward a byte with the specified value (only 8-bit value from the database).
 
"ea_t" find_byter (*args)
 find_byter(sEA, size, value, bin_search_flags) -> ea_t Find reverse a byte with the specified value (only 8-bit value from the database).
 
"qstring *" parse_binpat_str (*args)
 parse_binpat_str(out, ea, _in, radix, strlits_encoding=0) -> str Convert user-specified binary string to internal representation.
 
"size_t *" bin_search3 (*args)
 bin_search3(start_ea, end_ea, data, flags) -> ea_t Search for a patter in the program.
 
"ea_t" next_inited (*args)
 next_inited(ea, maxea) -> ea_t Find the next initialized address.
 
"ea_t" prev_inited (*args)
 prev_inited(ea, minea) -> ea_t Find the previous initialized address.
 
"bool" equal_bytes (*args)
 equal_bytes(ea, image, mask, len, bin_search_flags) -> bool Compare 'len' bytes of the program starting from 'ea' with 'image'.
 
"bool" update_hidden_range (*args)
 update_hidden_range(ha) -> bool Update hidden range information in the database.
 
"bool" add_hidden_range (*args)
 add_hidden_range(ea1, ea2, description, header, footer, color=bgcolor_t(-1)) -> bool Mark a range of addresses as hidden.
 
"hidden_range_t *" get_hidden_range (*args)
 get_hidden_range(ea) -> hidden_range_t Get pointer to hidden range structure, in: linear address.
 
"hidden_range_t *" getn_hidden_range (*args)
 getn_hidden_range(n) -> hidden_range_t Get pointer to hidden range structure, in: number of hidden range.
 
"int" get_hidden_range_qty (*args)
 get_hidden_range_qty() -> int Get number of hidden ranges.
 
"int" get_hidden_range_num (*args)
 get_hidden_range_num(ea) -> int Get number of a hidden range.
 
"hidden_range_t *" get_prev_hidden_range (*args)
 get_prev_hidden_range(ea) -> hidden_range_t Get pointer to previous hidden range.
 
"hidden_range_t *" get_next_hidden_range (*args)
 get_next_hidden_range(ea) -> hidden_range_t Get pointer to next hidden range.
 
"hidden_range_t *" get_first_hidden_range (*args)
 get_first_hidden_range() -> hidden_range_t Get pointer to the first hidden range.
 
"hidden_range_t *" get_last_hidden_range (*args)
 get_last_hidden_range() -> hidden_range_t Get pointer to the last hidden range.
 
"bool" del_hidden_range (*args)
 del_hidden_range(ea) -> bool Delete hidden range.
 
"bool" add_mapping (*args)
 add_mapping(_from, to, size) -> bool IDA supports memory mapping.
 
"void" del_mapping (*args)
 del_mapping(ea) Delete memory mapping range.
 
"ea_t" use_mapping (*args)
 use_mapping(ea) -> ea_t Translate address according to current mappings.
 
"size_t" get_mappings_qty (*args)
 get_mappings_qty() -> size_t Get number of mappings.
 
"ea_t *, ea_t *, asize_t *" get_mapping (*args)
 get_mapping(n) -> bool Get memory mapping range by its number.
 
"ea_t" free_chunk (*args)
 free_chunk(bottom, size, step) -> ea_t
 
"int" visit_patched_bytes (*args)
 visit_patched_bytes(ea1, ea2, py_callable) -> int Enumerates patched bytes in the given range and invokes a callable
 
"PyObject *" get_bytes (*args)
 get_bytes(ea, size, gmb_flags=0x01) -> bytes or None Get the specified number of bytes of the program.
 
"PyObject *" get_bytes_and_mask (*args)
 get_bytes_and_mask(ea, size, gmb_flags=0x01) -> PyObject * Get the specified number of bytes of the program, and a bitmask specifying what bytes are defined and what bytes are not.
 
"PyObject *" get_strlit_contents (*args)
 get_strlit_contents(ea, py_len, type, flags=0) -> bytes or None Get contents of string literal, as UTF-8-encoded codepoints.
 
"ea_t" bin_search (*args)
 bin_search(start_ea, end_ea, data, flags) -> ea_t Search for a set of bytes in the program
 
"PyObject *" print_strlit_type (*args)
 print_strlit_type(strtype, flags=0) -> (str, str) Get string type information: the string type name (possibly decorated with hotkey markers), and the tooltip.
 
"PyObject *" get_octet (*args)
 get_octet(ea, v, nbit) -> (int, int, int, int)
 
"PyObject *" get_8bit (*args)
 get_8bit(ea, v, nbit) -> PyObject *
 
"bool" op_stroff (*args)
 op_stroff(insn, n, path, path_len, delta) -> bool Set operand representation to be 'struct offset'.
 
"int" register_custom_data_type (*args)
 register_custom_data_type(py_dt) -> int Registers a custom data type.
 
"bool" unregister_custom_data_type (*args)
 unregister_custom_data_type(dtid) -> bool Unregisters a custom data type.
 
"int" register_custom_data_format (*args)
 register_custom_data_format(py_df) -> int Registers a custom data format with a given data type.
 
"bool" unregister_custom_data_format (*args)
 unregister_custom_data_format(dfid) -> bool Unregisters a custom data format
 
 register_data_types_and_formats (formats)
 Registers multiple data types and formats at once.
 
 unregister_data_types_and_formats (formats)
 As opposed to register_data_types_and_formats(), this function unregisters multiple data types and formats at once.
 

Variables

 ITEM_END_FIXUP = _ida_bytes.ITEM_END_FIXUP
 
 ITEM_END_INITED = _ida_bytes.ITEM_END_INITED
 
 ITEM_END_NAME = _ida_bytes.ITEM_END_NAME
 
 ITEM_END_XREF = _ida_bytes.ITEM_END_XREF
 
 ITEM_END_CANCEL = _ida_bytes.ITEM_END_CANCEL
 
 GFE_VALUE = _ida_bytes.GFE_VALUE
 
 GFE_IDB_VALUE = _ida_bytes.GFE_IDB_VALUE
 
 MS_VAL = _ida_bytes.MS_VAL
 
 FF_IVL = _ida_bytes.FF_IVL
 
 GMB_READALL = _ida_bytes.GMB_READALL
 
 GMB_WAITBOX = _ida_bytes.GMB_WAITBOX
 
 MS_CLS = _ida_bytes.MS_CLS
 
 FF_CODE = _ida_bytes.FF_CODE
 
 FF_DATA = _ida_bytes.FF_DATA
 
 FF_TAIL = _ida_bytes.FF_TAIL
 
 FF_UNK = _ida_bytes.FF_UNK
 
 DELIT_SIMPLE = _ida_bytes.DELIT_SIMPLE
 
 DELIT_EXPAND = _ida_bytes.DELIT_EXPAND
 
 DELIT_DELNAMES = _ida_bytes.DELIT_DELNAMES
 
 DELIT_NOTRUNC = _ida_bytes.DELIT_NOTRUNC
 
 DELIT_NOUNAME = _ida_bytes.DELIT_NOUNAME
 
 DELIT_NOCMT = _ida_bytes.DELIT_NOCMT
 
 DELIT_KEEPFUNC = _ida_bytes.DELIT_KEEPFUNC
 
 MS_COMM = _ida_bytes.MS_COMM
 
 FF_COMM = _ida_bytes.FF_COMM
 
 FF_REF = _ida_bytes.FF_REF
 
 FF_LINE = _ida_bytes.FF_LINE
 
 FF_NAME = _ida_bytes.FF_NAME
 
 FF_LABL = _ida_bytes.FF_LABL
 
 FF_FLOW = _ida_bytes.FF_FLOW
 
 FF_SIGN = _ida_bytes.FF_SIGN
 
 FF_BNOT = _ida_bytes.FF_BNOT
 
 FF_UNUSED = _ida_bytes.FF_UNUSED
 
 FF_ANYNAME = _ida_bytes.FF_ANYNAME
 
 MS_N_TYPE = _ida_bytes.MS_N_TYPE
 
 FF_N_VOID = _ida_bytes.FF_N_VOID
 
 FF_N_NUMH = _ida_bytes.FF_N_NUMH
 
 FF_N_NUMD = _ida_bytes.FF_N_NUMD
 
 FF_N_CHAR = _ida_bytes.FF_N_CHAR
 
 FF_N_SEG = _ida_bytes.FF_N_SEG
 
 FF_N_OFF = _ida_bytes.FF_N_OFF
 
 FF_N_NUMB = _ida_bytes.FF_N_NUMB
 
 FF_N_NUMO = _ida_bytes.FF_N_NUMO
 
 FF_N_ENUM = _ida_bytes.FF_N_ENUM
 
 FF_N_FOP = _ida_bytes.FF_N_FOP
 
 FF_N_STRO = _ida_bytes.FF_N_STRO
 
 FF_N_STK = _ida_bytes.FF_N_STK
 
 FF_N_FLT = _ida_bytes.FF_N_FLT
 
 FF_N_CUST = _ida_bytes.FF_N_CUST
 
 OPND_OUTER = _ida_bytes.OPND_OUTER
 
 OPND_MASK = _ida_bytes.OPND_MASK
 
 OPND_ALL = _ida_bytes.OPND_ALL
 
 DT_TYPE = _ida_bytes.DT_TYPE
 
 FF_BYTE = _ida_bytes.FF_BYTE
 
 FF_WORD = _ida_bytes.FF_WORD
 
 FF_DWORD = _ida_bytes.FF_DWORD
 
 FF_QWORD = _ida_bytes.FF_QWORD
 
 FF_TBYTE = _ida_bytes.FF_TBYTE
 
 FF_STRLIT = _ida_bytes.FF_STRLIT
 
 FF_STRUCT = _ida_bytes.FF_STRUCT
 
 FF_OWORD = _ida_bytes.FF_OWORD
 
 FF_FLOAT = _ida_bytes.FF_FLOAT
 
 FF_DOUBLE = _ida_bytes.FF_DOUBLE
 
 FF_PACKREAL = _ida_bytes.FF_PACKREAL
 
 FF_ALIGN = _ida_bytes.FF_ALIGN
 
 FF_CUSTOM = _ida_bytes.FF_CUSTOM
 
 FF_YWORD = _ida_bytes.FF_YWORD
 
 FF_ZWORD = _ida_bytes.FF_ZWORD
 
 ALOPT_IGNHEADS = _ida_bytes.ALOPT_IGNHEADS
 
 ALOPT_IGNPRINT = _ida_bytes.ALOPT_IGNPRINT
 
 ALOPT_IGNCLT = _ida_bytes.ALOPT_IGNCLT
 
 ALOPT_MAX4K = _ida_bytes.ALOPT_MAX4K
 
 ALOPT_ONLYTERM = _ida_bytes.ALOPT_ONLYTERM
 
 ALOPT_APPEND = _ida_bytes.ALOPT_APPEND
 
 STRCONV_ESCAPE = _ida_bytes.STRCONV_ESCAPE
 
 STRCONV_REPLCHAR = _ida_bytes.STRCONV_REPLCHAR
 
 STRCONV_INCLLEN = _ida_bytes.STRCONV_INCLLEN
 
 PSTF_TNORM = _ida_bytes.PSTF_TNORM
 
 PSTF_TBRIEF = _ida_bytes.PSTF_TBRIEF
 
 PSTF_TINLIN = _ida_bytes.PSTF_TINLIN
 
 PSTF_TMASK = _ida_bytes.PSTF_TMASK
 
 PSTF_HOTKEY = _ida_bytes.PSTF_HOTKEY
 
 PSTF_ENC = _ida_bytes.PSTF_ENC
 
 PSTF_ONLY_ENC = _ida_bytes.PSTF_ONLY_ENC
 
 PSTF_ATTRIB = _ida_bytes.PSTF_ATTRIB
 
 MS_CODE = _ida_bytes.MS_CODE
 
 FF_FUNC = _ida_bytes.FF_FUNC
 
 FF_IMMD = _ida_bytes.FF_IMMD
 
 FF_JUMP = _ida_bytes.FF_JUMP
 
 DTP_NODUP = _ida_bytes.DTP_NODUP
 
 PBSENC_DEF1BPU = _ida_bytes.PBSENC_DEF1BPU
 
 PBSENC_ALL = _ida_bytes.PBSENC_ALL
 
 BIN_SEARCH_CASE = _ida_bytes.BIN_SEARCH_CASE
 
 BIN_SEARCH_NOCASE = _ida_bytes.BIN_SEARCH_NOCASE
 
 BIN_SEARCH_NOBREAK = _ida_bytes.BIN_SEARCH_NOBREAK
 
 BIN_SEARCH_INITED = _ida_bytes.BIN_SEARCH_INITED
 
 BIN_SEARCH_NOSHOW = _ida_bytes.BIN_SEARCH_NOSHOW
 
 BIN_SEARCH_FORWARD = _ida_bytes.BIN_SEARCH_FORWARD
 
 BIN_SEARCH_BACKWARD = _ida_bytes.BIN_SEARCH_BACKWARD
 
 BIN_SEARCH_BITMASK = _ida_bytes.BIN_SEARCH_BITMASK
 
 MS_0TYPE = _ida_bytes.MS_0TYPE
 
 FF_0VOID = _ida_bytes.FF_0VOID
 
 FF_0NUMH = _ida_bytes.FF_0NUMH
 
 FF_0NUMD = _ida_bytes.FF_0NUMD
 
 FF_0CHAR = _ida_bytes.FF_0CHAR
 
 FF_0SEG = _ida_bytes.FF_0SEG
 
 FF_0OFF = _ida_bytes.FF_0OFF
 
 FF_0NUMB = _ida_bytes.FF_0NUMB
 
 FF_0NUMO = _ida_bytes.FF_0NUMO
 
 FF_0ENUM = _ida_bytes.FF_0ENUM
 
 FF_0FOP = _ida_bytes.FF_0FOP
 
 FF_0STRO = _ida_bytes.FF_0STRO
 
 FF_0STK = _ida_bytes.FF_0STK
 
 FF_0FLT = _ida_bytes.FF_0FLT
 
 FF_0CUST = _ida_bytes.FF_0CUST
 
 MS_1TYPE = _ida_bytes.MS_1TYPE
 
 FF_1VOID = _ida_bytes.FF_1VOID
 
 FF_1NUMH = _ida_bytes.FF_1NUMH
 
 FF_1NUMD = _ida_bytes.FF_1NUMD
 
 FF_1CHAR = _ida_bytes.FF_1CHAR
 
 FF_1SEG = _ida_bytes.FF_1SEG
 
 FF_1OFF = _ida_bytes.FF_1OFF
 
 FF_1NUMB = _ida_bytes.FF_1NUMB
 
 FF_1NUMO = _ida_bytes.FF_1NUMO
 
 FF_1ENUM = _ida_bytes.FF_1ENUM
 
 FF_1FOP = _ida_bytes.FF_1FOP
 
 FF_1STRO = _ida_bytes.FF_1STRO
 
 FF_1STK = _ida_bytes.FF_1STK
 
 FF_1FLT = _ida_bytes.FF_1FLT
 
 FF_1CUST = _ida_bytes.FF_1CUST
 

Function Documentation

◆ add_byte()

"void" add_byte ( * args)

This function works for wide byte processors too.

Parameters
ea(C++: ea_t) linear address
value(C++: uint32) byte value

◆ add_dword()

"void" add_dword ( * args)

This function works for wide byte processors too. This function takes into account order of bytes specified in idainfo::is_be()

Note
: this function works incorrectly if processor_t::nbits > 16
Parameters
ea(C++: ea_t) linear address
value(C++: uint64) byte value

◆ add_hidden_range()

"bool" add_hidden_range ( * args)

The range will be created in the invisible state with the default color

Parameters
ea1(C++: ea_t) linear address of start of the address range
ea2(C++: ea_t) linear address of end of the address range
description(C++: const char *) ,header,footer: range parameters
header(C++: const char *) char const *
footer(C++: const char *) char const *
color(C++: bgcolor_t) the range color
Returns
: success

◆ add_mapping()

"bool" add_mapping ( * args)

References to the addresses from the mapped range use data and meta-data from the mapping range.

Note
: You should set flag PR2_MAPPING in ph.flag2 to use memory mapping Add memory mapping range.
Parameters
from(C++: ea_t) start of the mapped range (nonexistent address)
to(C++: ea_t) start of the mapping range (existent address)
size(C++: asize_t) size of the range
Returns
: success

◆ add_qword()

"void" add_qword ( * args)

This function does not work for wide byte processors. This function takes into account order of bytes specified in idainfo::is_be()

Parameters
ea(C++: ea_t) linear address
value(C++: uint64) byte value

◆ add_word()

"void" add_word ( * args)

This function works for wide byte processors too. This function takes into account order of bytes specified in idainfo::is_be()

Parameters
ea(C++: ea_t) linear address
value(C++: uint64) byte value

◆ align_flag()

"flags64_t" align_flag ( * args)

◆ append_cmt()

"bool" append_cmt ( * args)

Creates a new comment if none exists. Appends a newline character and the specified string otherwise.

Parameters
ea(C++: ea_t) linear address
str(C++: const char *) comment string to append
rptble(C++: bool) append to repeatable comment?
Returns
: success

◆ attach_custom_data_format()

"bool" attach_custom_data_format ( * args)
Parameters
dtid(C++: int) data type id that can use the data format. 0 means all standard data types. Such data formats can be applied to any data item or instruction operands. For instruction operands, the data_format_t.value_size check is not performed by the kernel.
dfid(C++: int) data format id
Return values
trueok
falseno such ‘dtid’, or no such ‘dfid’, or the data format has already been attached to the data type

◆ bin_flag()

"flags64_t" bin_flag ( * args)

◆ bin_search()

"ea_t" bin_search ( * args)
Parameters
start_ealinear address, start of range to search
end_ealinear address, end of range to search (exclusive)
datathe prepared data to search for (see parse_binpat_str())
flagscombination of BIN_SEARCH_* flags
Returns
: the address of a match, or ida_idaapi.BADADDR if not found bin_search(start_ea, end_ea, image, imask, step, flags) -> ea_t
Parameters
start_eaea_t
end_eaea_t
imagebytevec_t const &
imaskbytevec_t const &
stepint
flagsint

◆ bin_search3()

"size_t *" bin_search3 ( * args)
Parameters
start_ea(C++: ea_t) linear address, start of range to search
end_ea(C++: ea_t) linear address, end of range to search (exclusive)
data(C++: const compiled_binpat_vec_t &) the prepared data to search for (see parse_binpat_str())
flags(C++: int) combination of Search flags
Returns
: BADADDR (if pressed Ctrl-Break or not found) or pattern address.

◆ byte_flag()

"flags64_t" byte_flag ( * args)

◆ bytesize()

"int" bytesize ( * args)
Parameters
ea(C++: ea_t)

◆ calc_def_align()

"int" calc_def_align ( * args)
Parameters
ea(C++: ea_t) linear address
mina(C++: int) minimal possible alignment exponent.
maxa(C++: int) minimal possible alignment exponent.

◆ calc_dflags()

"flags64_t" calc_dflags ( * args)
Parameters
fflags64_t
forcebool

◆ calc_max_align()

"int" calc_max_align ( * args)
Parameters
endea(C++: ea_t) end address of the alignment item.
Returns
: a value in the 0..32 range

◆ calc_max_item_end()

"ea_t" calc_max_item_end ( * args)

This function will limit the item with the current segment bounds.

Parameters
ea(C++: ea_t) linear address
how(C++: int) when to stop the search. A combination of Item end search flags
Returns
: end of new item. If it is not possible to create an item, it will return 'ea'. If operation was cancelled by user, it will return 'ea'

◆ calc_min_align()

"int" calc_min_align ( * args)
Parameters
length(C++: asize_t) size of the item in bytes.
Returns
: a value in the 1..32 range

◆ can_define_item()

"bool" can_define_item ( * args)
Note
: if there is an item starting at 'ea', this function ignores it
: this function converts to unexplored all encountered data items with fixup information. Should be fixed in the future.
Parameters
ea(C++: ea_t) start of the range for the new item
length(C++: asize_t) length of the new item in bytes
flags(C++: flags64_t) if not 0, then the kernel will ignore the data types specified by the flags and destroy them. For example: 1000 dw 5 1002 db 5 ; undef 1003 db 5 ; undef 1004 dw 5 1006 dd 5 can_define_item(1000, 6, 0) - false because of dw at 1004 can_define_item(1000, 6, word_flag()) - true, word at 1004 is destroyed
Returns
: 1-yes, 0-no
  • a new item would cross segment boundaries
  • a new item would overlap with existing items (except items specified by 'flags')

◆ change_storage_type()

"error_t" change_storage_type ( * args)
Parameters
start_ea(C++: ea_t) should be lower than end_ea.
end_ea(C++: ea_t) does not belong to the range.
stt(C++: storage_type_t)
Returns
: error code

◆ char_flag()

"flags64_t" char_flag ( * args)

◆ chunk_size()

"asize_t" chunk_size ( * args)
Parameters
ea(C++: ea_t)
Returns
: 0 if 'ea' doesn't belong to the program.

◆ chunk_start()

"ea_t" chunk_start ( * args)
Parameters
ea(C++: ea_t)
Returns
: BADADDR if 'ea' doesn't belong to the program.

◆ clr_lzero()

"bool" clr_lzero ( * args)

This function reset the display of leading zeroes for the specified operand to the default. If the default is not to display leading zeroes, leading zeroes will not be displayed, as vice versa.

Parameters
ea(C++: ea_t) the item (insn/data) address
n(C++: int) the operand number (0-first operand, 1-other operands)
Returns
: success

◆ clr_op_type()

"bool" clr_op_type ( * args)

(set operand representation to be 'undefined')

Parameters
ea(C++: ea_t) linear address
n(C++: int) 0..UA_MAXOP-1 operand number, OPND_ALL all operands
Returns
: success

◆ code_flag()

"flags64_t" code_flag ( * args)

◆ combine_flags()

"flags64_t" combine_flags ( * args)
Parameters
Fflags64_t

◆ create_16bit_data()

"bool" create_16bit_data ( * args)
Parameters
ea(C++: ea_t)
length(C++: asize_t)

◆ create_32bit_data()

"bool" create_32bit_data ( * args)
Parameters
ea(C++: ea_t)
length(C++: asize_t)

◆ create_align()

"bool" create_align ( * args)
Parameters
ea(C++: ea_t) linear address
length(C++: asize_t) size of the item in bytes. 0 means to infer from ALIGNMENT
alignment(C++: int) alignment exponent. Example: 3 means align to 8 bytes. 0 means to infer from LENGTH It is forbidden to specify both LENGTH and ALIGNMENT as 0.
Returns
: success

◆ create_byte()

"bool" create_byte ( * args)
Parameters
ea(C++: ea_t)
length(C++: asize_t)
force(C++: bool)

◆ create_custdata()

"bool" create_custdata ( * args)
Parameters
ea(C++: ea_t)
length(C++: asize_t)
dtid(C++: int)
fid(C++: int)
force(C++: bool)

◆ create_data()

"bool" create_data ( * args)

This function may be used to create arrays.

Parameters
ea(C++: ea_t) linear address
dataflag(C++: flags64_t) type of data. Value of function byte_flag(), word_flag(), etc.
size(C++: asize_t) size of array in bytes. should be divisible by the size of one item of the specified type. for variable sized items it can be specified as 0, and the kernel will try to calculate the size.
tid(C++: tid_t) type id. If the specified type is a structure, then tid is structure id. Otherwise should be BADNODE.
Returns
: success

◆ create_double()

"bool" create_double ( * args)
Parameters
ea(C++: ea_t)
length(C++: asize_t)
force(C++: bool)

◆ create_dword()

"bool" create_dword ( * args)
Parameters
ea(C++: ea_t)
length(C++: asize_t)
force(C++: bool)

◆ create_float()

"bool" create_float ( * args)
Parameters
ea(C++: ea_t)
length(C++: asize_t)
force(C++: bool)

◆ create_oword()

"bool" create_oword ( * args)
Parameters
ea(C++: ea_t)
length(C++: asize_t)
force(C++: bool)

◆ create_packed_real()

"bool" create_packed_real ( * args)
Parameters
ea(C++: ea_t)
length(C++: asize_t)
force(C++: bool)

◆ create_qword()

"bool" create_qword ( * args)
Parameters
ea(C++: ea_t)
length(C++: asize_t)
force(C++: bool)

◆ create_strlit()

"bool" create_strlit ( * args)

'start' may be higher than 'end', the kernel will swap them in this case

Parameters
start(C++: ea_t) starting address
len(C++: size_t) length of the string in bytes. if 0, then get_max_strlit_length() will be used to determine the length
strtype(C++: int32) string type. one of String type codes
Returns
: success

◆ create_struct()

"bool" create_struct ( * args)
Parameters
ea(C++: ea_t)
length(C++: asize_t)
tid(C++: tid_t)
force(C++: bool)

◆ create_tbyte()

"bool" create_tbyte ( * args)
Parameters
ea(C++: ea_t)
length(C++: asize_t)
force(C++: bool)

◆ create_word()

"bool" create_word ( * args)
Parameters
ea(C++: ea_t)
length(C++: asize_t)
force(C++: bool)

◆ create_yword()

"bool" create_yword ( * args)
Parameters
ea(C++: ea_t)
length(C++: asize_t)
force(C++: bool)

◆ create_zword()

"bool" create_zword ( * args)
Parameters
ea(C++: ea_t)
length(C++: asize_t)
force(C++: bool)

◆ cust_flag()

"flags64_t" cust_flag ( * args)

◆ custfmt_flag()

"flags64_t" custfmt_flag ( * args)

◆ dec_flag()

"flags64_t" dec_flag ( * args)

◆ del_hidden_range()

"bool" del_hidden_range ( * args)
Parameters
ea(C++: ea_t) any address in the hidden range
Returns
: success

◆ del_items()

"bool" del_items ( * args)

The whole item (including the head and tail bytes) will be destroyed. It is allowed to pass any address in the item to this function

Parameters
ea(C++: ea_t) any address within the first item to delete
flags(C++: int) combination of Unexplored byte conversion flags
nbytes(C++: asize_t) number of bytes in the range to be undefined
may_destroy(C++: may_destroy_cb_t *) optional routine invoked before deleting a head item. If callback returns false then item is not to be deleted and operation fails
Returns
: true on sucessful operation, otherwise false

◆ del_mapping()

"void" del_mapping ( * args)
Parameters
ea(C++: ea_t) any address in the mapped range

◆ del_value()

"void" del_value ( * args)

The corresponding byte becomes uninitialized.

Parameters
ea(C++: ea_t)

◆ detach_custom_data_format()

"bool" detach_custom_data_format ( * args)

Unregistering a custom data type detaches all attached data formats, no need to detach them explicitly. You still need unregister them. Unregistering a custom data format detaches it from all attached data types.

Parameters
dtid(C++: int) data type id to detach data format from
dfid(C++: int) data format id to detach
Return values
trueok
falseno such ‘dtid’, or no such ‘dfid’, or the data format was not attached to the data type

◆ disable_flags()

"error_t" disable_flags ( * args)

Exit with an error message if not enough disk space (this may occur too).

Parameters
start_ea(C++: ea_t) should be lower than end_ea.
end_ea(C++: ea_t) does not belong to the range.
Returns
: 0 if ok, otherwise return error code

◆ double_flag()

"flags64_t" double_flag ( * args)

◆ dword_flag()

"flags64_t" dword_flag ( * args)

◆ enable_flags()

"error_t" enable_flags ( * args)

This function does not change the storage type of existing ranges. Exit with an error message if not enough disk space.

Parameters
start_ea(C++: ea_t) should be lower than end_ea.
end_ea(C++: ea_t) does not belong to the range.
stt(C++: storage_type_t)
Returns
: 0 if ok, otherwise an error code

◆ enum_flag()

"flags64_t" enum_flag ( * args)

◆ equal_bytes()

"bool" equal_bytes ( * args)
Parameters
ea(C++: ea_t) linear address
image(C++: const uchar *) bytes to compare with
mask(C++: const uchar *) array of mask bytes, it's length is 'len'. if the flag BIN_SEARCH_BITMASK is passsed, 'bitwise AND' is used to compare. if not; 1 means to perform the comparison of the corresponding byte. 0 means not to perform. if mask == nullptr, then all bytes of 'image' will be compared. if mask == SKIP_FF_MASK then 0xFF bytes will be skipped
len(C++: size_t) length of block to compare in bytes.
bin_search_flags(C++: int) combination of Search flags
Return values
1equal
0not equal

◆ f_has_cmt()

"bool" f_has_cmt ( * args)
Parameters
fflags64_t
arg2void *

◆ f_has_dummy_name()

"bool" f_has_dummy_name ( * args)
Parameters
f(C++: flags64_t)
arg2void *

◆ f_has_extra_cmts()

"bool" f_has_extra_cmts ( * args)
Parameters
fflags64_t
arg2void *

◆ f_has_name()

"bool" f_has_name ( * args)
Parameters
f(C++: flags64_t)
arg2void *

◆ f_has_user_name()

"bool" f_has_user_name ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_has_xref()

"bool" f_has_xref ( * args)
Parameters
f(C++: flags64_t)
arg2void *

◆ f_is_align()

"bool" f_is_align ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_byte()

"bool" f_is_byte ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_code()

"bool" f_is_code ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_custom()

"bool" f_is_custom ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_data()

"bool" f_is_data ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_double()

"bool" f_is_double ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_dword()

"bool" f_is_dword ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_float()

"bool" f_is_float ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_head()

"bool" f_is_head ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_not_tail()

"bool" f_is_not_tail ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_oword()

"bool" f_is_oword ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_pack_real()

"bool" f_is_pack_real ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_qword()

"bool" f_is_qword ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_strlit()

"bool" f_is_strlit ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_struct()

"bool" f_is_struct ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_tail()

"bool" f_is_tail ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_tbyte()

"bool" f_is_tbyte ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_word()

"bool" f_is_word ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ f_is_yword()

"bool" f_is_yword ( * args)
Parameters
F(C++: flags64_t)
arg2void *

◆ find_byte()

"ea_t" find_byte ( * args)

example: ea=4 size=3 will inspect addresses 4, 5, and 6

Parameters
sEA(C++: ea_t) linear address
size(C++: asize_t) number of bytes to inspect
value(C++: uchar) value to find
bin_search_flags(C++: int) combination of Search flags
Returns
: address of byte or BADADDR

◆ find_byter()

"ea_t" find_byter ( * args)

example: ea=4 size=3 will inspect addresses 6, 5, and 4

Parameters
sEA(C++: ea_t) the lower address of the search range
size(C++: asize_t) number of bytes to inspect
value(C++: uchar) value to find
bin_search_flags(C++: int) combination of Search flags
Returns
: address of byte or BADADDR

◆ find_custom_data_format()

"int" find_custom_data_format ( * args)
Parameters
name(C++: const char *) name of the custom data format
Returns
: id or -1

◆ find_custom_data_type()

"int" find_custom_data_type ( * args)
Parameters
name(C++: const char *) name of the custom data type
Returns
: id or -1

◆ find_free_chunk()

"ea_t" find_free_chunk ( * args)
Parameters
start(C++: ea_t) Address to start searching from
size(C++: asize_t) Size of the desired empty range
alignment(C++: asize_t) Alignment bitmask, must be a pow2-1. (for example, 0xF would align the returned range to 16 bytes).
Returns
: Start of the found empty range or BADADDR

◆ float_flag()

"flags64_t" float_flag ( * args)

◆ flt_flag()

"flags64_t" flt_flag ( * args)

◆ free_chunk()

"ea_t" free_chunk ( * args)
Parameters
bottomea_t
sizeasize_t
stepint32

◆ get_16bit()

"uint32" get_16bit ( * args)
Parameters
ea(C++: ea_t)
Returns
: 1 byte (getFullByte()) if the current processor has 16-bit byte, otherwise return get_word()

◆ get_32bit()

"uint32" get_32bit ( * args)
Parameters
ea(C++: ea_t)
Returns
: 32 bit value, depending on processor_t::nbits:
  • if ( nbits <= 8 ) return get_dword(ea);
  • if ( nbits <= 16) return get_wide_word(ea);
  • return get_wide_byte(ea);

◆ get_64bit()

"uint64" get_64bit ( * args)
Parameters
ea(C++: ea_t)
Returns
: 64 bit value, depending on processor_t::nbits:
  • if ( nbits <= 8 ) return get_qword(ea);
  • if ( nbits <= 16) return get_wide_dword(ea);
  • return get_wide_byte(ea);

◆ get_8bit()

"PyObject *" get_8bit ( * args)
Parameters
eaea_t
vuint32
nbitint

◆ get_byte()

"uchar" get_byte ( * args)

This function works only for 8bit byte processors.

Parameters
ea(C++: ea_t)

◆ get_bytes()

"PyObject *" get_bytes ( * args)
Parameters
eaprogram address
sizenumber of bytes to return
gmb_flagsint
Returns
: the bytes (as a str), or None in case of failure

◆ get_bytes_and_mask()

"PyObject *" get_bytes_and_mask ( * args)
Parameters
eaprogram address
sizenumber of bytes to return
gmb_flagsint
Returns
: a tuple (bytes, mask), or None in case of failure. Both 'bytes' and 'mask' are 'str' instances.

◆ get_cmt()

"qstring *" get_cmt ( * args)
Parameters
ea(C++: ea_t) linear address. may point to tail byte, the function will find start of the item
rptble(C++: bool) get repeatable comment?
Returns
: size of comment or -1

◆ get_custom_data_format()

"data_format_t const *" get_custom_data_format ( * args)
Parameters
dfid(C++: int) data format id
Returns
: data format definition or nullptr

◆ get_custom_data_formats()

"int" get_custom_data_formats ( * args)
Parameters
out(C++: intvec_t *) buffer for the output. may be nullptr
dtid(C++: int) data type id
Returns
: number of returned custom data formats. if error, returns -1

◆ get_custom_data_type()

"data_type_t const *" get_custom_data_type ( * args)
Parameters
dtid(C++: int) data type id
Returns
: data type definition or nullptr

◆ get_custom_data_types()

"int" get_custom_data_types ( * args)
Parameters
out(C++: intvec_t *) buffer for the output. may be nullptr
min_size(C++: asize_t) minimum value size
max_size(C++: asize_t) maximum value size
Returns
: number of custom data types with the specified size limits

◆ get_data_elsize()

"asize_t" get_data_elsize ( * args)
Parameters
ea(C++: ea_t) linear address of the item
F(C++: flags64_t) flags
ti(C++: const opinfo_t *) additional information about the data type. For example, if the current item is a structure instance, then ti->tid is structure id. Otherwise is ignored (may be nullptr). If specified as nullptr, will be automatically retrieved from the database
Returns
: * byte : 1
  • word : 2
  • etc...

◆ get_data_value()

"bool" get_data_value ( * args)

This function works with entities up to sizeof(ea_t) (bytes, word, etc)

Parameters
v(C++: uval_t *) pointer to the result. may be nullptr
ea(C++: ea_t) linear address
size(C++: asize_t) size of data to read. If 0, then the item type at 'ea' will be used
Returns
: success

◆ get_db_byte()

"uchar" get_db_byte ( * args)

Works even if the debugger is active. See also get_dbg_byte() to read the process memory directly. This function works only for 8bit byte processors.

Parameters
ea(C++: ea_t)

◆ get_default_radix()

"int" get_default_radix ( * args)
Returns
: 2, 8, 10, 16

◆ get_dword()

"uint32" get_dword ( * args)

This function takes into account order of bytes specified in idainfo::is_be() This function works only for 8bit byte processors.

Parameters
ea(C++: ea_t)

◆ get_enum_id()

"uchar *" get_enum_id ( * args)
Parameters
ea(C++: ea_t) linear address
n(C++: int) 0..UA_MAXOP-1 operand number, OPND_ALL one of the operands
Returns
: id of enum or BADNODE

◆ get_first_hidden_range()

"hidden_range_t *" get_first_hidden_range ( * args)
Returns
: ptr to hidden range or nullptr

◆ get_flags()

"flags64_t" get_flags ( * args)

It is much slower under remote debugging because the kernel needs to read the process memory.

Parameters
ea(C++: ea_t)

◆ get_flags_by_size()

"flags64_t" get_flags_by_size ( * args)

Supported sizes: 1, 2, 4, 8, 16, 32. For other sizes returns 0

Parameters
size(C++: size_t)

◆ get_flags_ex()

"flags64_t" get_flags_ex ( * args)
Parameters
ea(C++: ea_t)
how(C++: int)

◆ get_forced_operand()

"qstring *" get_forced_operand ( * args)
Parameters
ea(C++: ea_t) linear address
n(C++: int) 0..UA_MAXOP-1 operand number
Returns
: size of forced operand or -1

◆ get_full_data_elsize()

"asize_t" get_full_data_elsize ( * args)

takes into account processors with wide bytes e.g. returns 2 for a byte element with 16-bit bytes

Parameters
ea(C++: ea_t)
F(C++: flags64_t)
ti(C++: const opinfo_t *) opinfo_t const *

◆ get_full_flags()

"flags64_t" get_full_flags ( * args)
Parameters
ea(C++: ea_t)
Returns
: 0 if address is not present in the program

◆ get_hidden_range()

"hidden_range_t *" get_hidden_range ( * args)
Parameters
ea(C++: ea_t) any address in the hidden range

◆ get_hidden_range_num()

"int" get_hidden_range_num ( * args)
Parameters
ea(C++: ea_t) any address in the hidden range
Returns
: number of hidden range (0..get_hidden_range_qty()-1)

◆ get_hidden_range_qty()

"int" get_hidden_range_qty ( * args)

◆ get_item_end()

"ea_t" get_item_end ( * args)

The returned address doesn't belong to the current item. Unexplored bytes are counted as 1 byte entities.

Parameters
ea(C++: ea_t)

◆ get_item_flag()

"flags64_t" get_item_flag ( * args)

This function is used to get flags of structure members or array elements.

Parameters
from(C++: ea_t) linear address of the instruction which refers to 'ea'
n(C++: int) operand number which refers to 'ea' or OPND_ALL for one of the operands
ea(C++: ea_t) the referenced address
appzero(C++: bool) append a struct field name if the field offset is zero? meaningful only if the name refers to a structure.
Returns
: flags or 0 (if failed)

◆ get_item_head()

"ea_t" get_item_head ( * args)

If there is no current item, then 'ea' will be returned (see definition at the end of bytes.hpp source)

Parameters
ea(C++: ea_t)

◆ get_item_refinfo()

"bool" get_item_refinfo ( * args)

This function works for a regular offset operand as well as for a tail byte of a structure variable (in this case refinfo to corresponding structure member will be returned)

Parameters
ri(C++: refinfo_t *) refinfo holder
ea(C++: ea_t) the item address
n(C++: int) operand number which refers to 'ea' or OPND_ALL for one of the operands
Returns
: success

◆ get_item_size()

"asize_t" get_item_size ( * args)

Unexplored bytes have length of 1 byte. This function returns 0 only for BADADDR.

Parameters
ea(C++: ea_t)

◆ get_last_hidden_range()

"hidden_range_t *" get_last_hidden_range ( * args)
Returns
: ptr to hidden range or nullptr

◆ get_manual_insn()

"qstring *" get_manual_insn ( * args)
Parameters
ea(C++: ea_t) linear address of the instruction or data item
Returns
: size of manual instruction or -1

◆ get_mapping()

"ea_t *, ea_t *, asize_t *" get_mapping ( * args)
Parameters
n(C++: size_t) number of mapping range (0..get_mappings_qty()-1)
Returns
: false if the specified range doesn't exist, otherwise returns ‘from’, ‘to’, ‘size’

◆ get_mappings_qty()

"size_t" get_mappings_qty ( * args)

◆ get_max_strlit_length()

"size_t" get_max_strlit_length ( * args)

If the string literal has a length prefix (e.g., STRTYPE_LEN2 has a two-byte length prefix), the length of that prefix (i.e., 2) will be part of the returned value.

Parameters
ea(C++: ea_t) starting address
strtype(C++: int32) string type. one of String type codes
options(C++: int) combination of string literal length options
Returns
: length of the string in octets (octet==8bit)

◆ get_next_hidden_range()

"hidden_range_t *" get_next_hidden_range ( * args)
Parameters
ea(C++: ea_t) any address in the program
Returns
: ptr to hidden range or nullptr if next hidden range doesn't exist

◆ get_octet()

"PyObject *" get_octet ( * args)
Parameters
eaea_t
vuint64
nbitint

◆ get_octet2()

"uchar *" get_octet2 ( * args)
Parameters
ogenoctet_generator_t *

◆ get_operand_flag()

"flags64_t" get_operand_flag ( * args)
Parameters
typebits(C++: uint8) the type bits (one of FF_N_)
n(C++: int) the operand number
Returns
: the shift to the nibble

◆ get_operand_type_shift()

"int" get_operand_type_shift ( * args)

Note: n must be < UA_MAXOP, and is not checked

Parameters
n(C++: uint32) the operand number
Returns
: the shift to the nibble

◆ get_opinfo()

"opinfo_t *" get_opinfo ( * args)
Parameters
buf(C++: opinfo_t *) buffer to receive the result. may not be nullptr
ea(C++: ea_t) linear address of item
n(C++: int) number of operand, 0 or 1
flags(C++: flags64_t) flags of the item
Returns
: nullptr if no additional representation information

◆ get_optype_flags0()

"flags64_t" get_optype_flags0 ( * args)
Parameters
F(C++: flags64_t)

◆ get_optype_flags1()

"flags64_t" get_optype_flags1 ( * args)
Parameters
F(C++: flags64_t)

◆ get_original_byte()

"uint64" get_original_byte ( * args)

This function works for wide byte processors too.

Parameters
ea(C++: ea_t)

◆ get_original_dword()

"uint64" get_original_dword ( * args)

This function takes into account order of bytes specified in idainfo::is_be()

Parameters
ea(C++: ea_t)

◆ get_original_qword()

"uint64" get_original_qword ( * args)

This function takes into account order of bytes specified in idainfo::is_be()

Parameters
ea(C++: ea_t)

◆ get_original_word()

"uint64" get_original_word ( * args)

This function works for wide byte processors too. This function takes into account order of bytes specified in idainfo::is_be()

Parameters
ea(C++: ea_t)

◆ get_possible_item_varsize()

"asize_t" get_possible_item_varsize ( * args)
Parameters
ea(C++: ea_t) the linear address of the item
tif(C++: const tinfo_t &) the item type
Returns
: the possible size
Return values
asize_t(-1)TIF is not a variable structure

◆ get_predef_insn_cmt()

"qstring *" get_predef_insn_cmt ( * args)
Parameters
ins(C++: const insn_t &) current instruction information
Returns
: size of comment or -1

◆ get_prev_hidden_range()

"hidden_range_t *" get_prev_hidden_range ( * args)
Parameters
ea(C++: ea_t) any address in the program
Returns
: ptr to hidden range or nullptr if previous hidden range doesn't exist

◆ get_qword()

"uint64" get_qword ( * args)

This function takes into account order of bytes specified in idainfo::is_be() This function works only for 8bit byte processors.

Parameters
ea(C++: ea_t)

◆ get_radix()

"int" get_radix ( * args)

If the operand is not a number, returns get_default_radix()

Parameters
F(C++: flags64_t) flags
n(C++: int) number of operand (0, 1, -1)
Returns
: 2, 8, 10, 16

◆ get_strlit_contents()

"PyObject *" get_strlit_contents ( * args)

It works even if the string has not been created in the database yet.

Note that the returned value will be of type 'bytes'; if you want auto-conversion to unicode strings (that is: real Python strings), you should probably be using the idautils.Strings class.

Parameters
ealinear address of the string
py_lenlength of the string in bytes (including terminating 0)
typetype of the string. Represents both the character encoding, and the 'type' of string at the given location.
flagscombination of STRCONV_..., to perform output conversion.
Returns
: a bytes-filled str object.

◆ get_stroff_path()

"int" get_stroff_path ( * args)
Parameters
path(C++: tid_t *) buffer for structure path (strpath). see nalt.hpp for more info.
delta(C++: adiff_t *) struct offset delta
ea(C++: ea_t) linear address
n(C++: int) 0..UA_MAXOP-1 operand number, OPND_ALL one of the operands
Returns
: length of strpath

◆ get_wide_byte()

"uint64" get_wide_byte ( * args)

Some processors may access more than 8bit quantity at an address. These processors have 32-bit byte organization from the IDA's point of view.

Parameters
ea(C++: ea_t)

◆ get_wide_dword()

"uint64" get_wide_dword ( * args)

Some processors may access more than 8bit quantity at an address. These processors have 32-bit byte organization from the IDA's point of view. This function takes into account order of bytes specified in idainfo::is_be()

Note
: this function works incorrectly if processor_t::nbits > 16
Parameters
ea(C++: ea_t)

◆ get_wide_word()

"uint64" get_wide_word ( * args)

Some processors may access more than 8bit quantity at an address. These processors have 32-bit byte organization from the IDA's point of view. This function takes into account order of bytes specified in idainfo::is_be()

Parameters
ea(C++: ea_t)

◆ get_word()

"ushort" get_word ( * args)

This function takes into account order of bytes specified in idainfo::is_be() This function works only for 8bit byte processors.

Parameters
ea(C++: ea_t)

◆ get_zero_ranges()

"bool" get_zero_ranges ( * args)

The returned set includes only big zero initialized ranges (at least >1KB). Some zero initialized byte ranges may be not included. Only zero bytes that use the sparse storage method (STT_MM) are reported.

Parameters
zranges(C++: rangeset_t *) pointer to the return value. cannot be nullptr
range(C++: const range_t *) the range of addresses to verify. can be nullptr - means all ranges
Returns
: true if the result is a non-empty set

◆ getn_hidden_range()

"hidden_range_t *" getn_hidden_range ( * args)
Parameters
n(C++: int) number of hidden range, is in range 0..get_hidden_range_qty()-1

◆ has_any_name()

"bool" has_any_name ( * args)
Parameters
F(C++: flags64_t)

◆ has_auto_name()

"bool" has_auto_name ( * args)
Parameters
F(C++: flags64_t)

◆ has_cmt()

"bool" has_cmt ( * args)
Parameters
F(C++: flags64_t)

◆ has_dummy_name()

"bool" has_dummy_name ( * args)
Parameters
F(C++: flags64_t)

◆ has_extra_cmts()

"bool" has_extra_cmts ( * args)
Parameters
F(C++: flags64_t)

◆ has_immd()

"bool" has_immd ( * args)
Parameters
F(C++: flags64_t)

◆ has_name()

"bool" has_name ( * args)
Parameters
F(C++: flags64_t)

◆ has_user_name()

"bool" has_user_name ( * args)
Parameters
F(C++: flags64_t)

◆ has_value()

"bool" has_value ( * args)
Parameters
F(C++: flags64_t)

◆ has_xref()

"bool" has_xref ( * args)
Parameters
F(C++: flags64_t)

◆ hex_flag()

"flags64_t" hex_flag ( * args)

◆ is_align()

"bool" is_align ( * args)
Parameters
F(C++: flags64_t)

◆ is_attached_custom_data_format()

"bool" is_attached_custom_data_format ( * args)
Parameters
dtid(C++: int) data type id
dfid(C++: int) data format id
Returns
: true or false

◆ is_bnot()

"bool" is_bnot ( * args)

asm_t::a_bnot should be defined in the idp module in order to work with this function

Parameters
ea(C++: ea_t)
F(C++: flags64_t)
n(C++: int)

◆ is_byte()

"bool" is_byte ( * args)
Parameters
F(C++: flags64_t)

◆ is_char()

"bool" is_char ( * args)
Parameters
F(C++: flags64_t)
n(C++: int)

◆ is_char0()

"bool" is_char0 ( * args)
Parameters
F(C++: flags64_t)

◆ is_char1()

"bool" is_char1 ( * args)
Parameters
F(C++: flags64_t)

◆ is_code()

"bool" is_code ( * args)
Parameters
F(C++: flags64_t)

◆ is_custfmt()

"bool" is_custfmt ( * args)
Parameters
F(C++: flags64_t)
n(C++: int)

◆ is_custfmt0()

"bool" is_custfmt0 ( * args)
Parameters
F(C++: flags64_t)

◆ is_custfmt1()

"bool" is_custfmt1 ( * args)
Parameters
F(C++: flags64_t)

◆ is_custom()

"bool" is_custom ( * args)
Parameters
F(C++: flags64_t)

◆ is_data()

"bool" is_data ( * args)
Parameters
F(C++: flags64_t)

◆ is_defarg()

"bool" is_defarg ( * args)
Parameters
F(C++: flags64_t)
n(C++: int)

◆ is_defarg0()

"bool" is_defarg0 ( * args)
Parameters
F(C++: flags64_t)

◆ is_defarg1()

"bool" is_defarg1 ( * args)
Parameters
F(C++: flags64_t)

◆ is_double()

"bool" is_double ( * args)
Parameters
F(C++: flags64_t)

◆ is_dword()

"bool" is_dword ( * args)
Parameters
F(C++: flags64_t)

◆ is_enum()

"bool" is_enum ( * args)
Parameters
F(C++: flags64_t)
n(C++: int)

◆ is_enum0()

"bool" is_enum0 ( * args)
Parameters
F(C++: flags64_t)

◆ is_enum1()

"bool" is_enum1 ( * args)
Parameters
F(C++: flags64_t)

◆ is_flag_for_operand()

"bool" is_flag_for_operand ( * args)
Parameters
F(C++: flags64_t) the flags
typebits(C++: uint8) the type bits (one of FF_N_)
n(C++: int) the operand number
Returns
: success

◆ is_float()

"bool" is_float ( * args)
Parameters
F(C++: flags64_t)

◆ is_float0()

"bool" is_float0 ( * args)
Parameters
F(C++: flags64_t)

◆ is_float1()

"bool" is_float1 ( * args)
Parameters
F(C++: flags64_t)

◆ is_flow()

"bool" is_flow ( * args)
Parameters
F(C++: flags64_t)

◆ is_fltnum()

"bool" is_fltnum ( * args)
Parameters
F(C++: flags64_t)
n(C++: int)

◆ is_forced_operand()

"bool" is_forced_operand ( * args)
Parameters
ea(C++: ea_t) linear address
n(C++: int) 0..UA_MAXOP-1 operand number

◆ is_func()

"bool" is_func ( * args)
Parameters
F(C++: flags64_t)

◆ is_head()

"bool" is_head ( * args)
Parameters
F(C++: flags64_t)

◆ is_invsign()

"bool" is_invsign ( * args)

allowed values of n: 0-first operand, 1-other operands

Parameters
ea(C++: ea_t)
F(C++: flags64_t)
n(C++: int)

◆ is_loaded()

"bool" is_loaded ( * args)
Parameters
ea(C++: ea_t)

◆ is_lzero()

"bool" is_lzero ( * args)

The global switch for the leading zeroes is in idainfo::s_genflags Note: the leading zeroes doesn't work if for the target assembler octal numbers start with 0.

Parameters
ea(C++: ea_t) the item (insn/data) address
n(C++: int) the operand number (0-first operand, 1-other operands)
Returns
: success

◆ is_manual()

"bool" is_manual ( * args)
Parameters
F(C++: flags64_t)
n(C++: int)

◆ is_manual_insn()

"bool" is_manual_insn ( * args)
Parameters
ea(C++: ea_t) linear address of the instruction or data item

◆ is_mapped()

"bool" is_mapped ( * args)
Parameters
ea(C++: ea_t)

◆ is_not_tail()

"bool" is_not_tail ( * args)
Parameters
F(C++: flags64_t)

◆ is_numop()

"bool" is_numop ( * args)
Parameters
F(C++: flags64_t)
n(C++: int)

◆ is_numop0()

"bool" is_numop0 ( * args)

binary, octal, decimal or hex?)

Parameters
F(C++: flags64_t)

◆ is_numop1()

"bool" is_numop1 ( * args)

binary, octal, decimal or hex?)

Parameters
F(C++: flags64_t)

◆ is_off()

"bool" is_off ( * args)
Parameters
F(C++: flags64_t)
n(C++: int)

◆ is_off0()

"bool" is_off0 ( * args)
Parameters
F(C++: flags64_t)

◆ is_off1()

"bool" is_off1 ( * args)
Parameters
F(C++: flags64_t)

◆ is_oword()

"bool" is_oword ( * args)
Parameters
F(C++: flags64_t)

◆ is_pack_real()

"bool" is_pack_real ( * args)
Parameters
F(C++: flags64_t)

◆ is_qword()

"bool" is_qword ( * args)
Parameters
F(C++: flags64_t)

◆ is_same_data_type()

"bool" is_same_data_type ( * args)
Parameters
F1(C++: flags64_t)
F2(C++: flags64_t)

◆ is_seg()

"bool" is_seg ( * args)
Parameters
F(C++: flags64_t)
n(C++: int)

◆ is_seg0()

"bool" is_seg0 ( * args)
Parameters
F(C++: flags64_t)

◆ is_seg1()

"bool" is_seg1 ( * args)
Parameters
F(C++: flags64_t)

◆ is_stkvar()

"bool" is_stkvar ( * args)
Parameters
F(C++: flags64_t)
n(C++: int)

◆ is_stkvar0()

"bool" is_stkvar0 ( * args)
Parameters
F(C++: flags64_t)

◆ is_stkvar1()

"bool" is_stkvar1 ( * args)
Parameters
F(C++: flags64_t)

◆ is_strlit()

"bool" is_strlit ( * args)
Parameters
F(C++: flags64_t)

◆ is_stroff()

"bool" is_stroff ( * args)
Parameters
F(C++: flags64_t)
n(C++: int)

◆ is_stroff0()

"bool" is_stroff0 ( * args)
Parameters
F(C++: flags64_t)

◆ is_stroff1()

"bool" is_stroff1 ( * args)
Parameters
F(C++: flags64_t)

◆ is_struct()

"bool" is_struct ( * args)
Parameters
F(C++: flags64_t)

◆ is_suspop()

"bool" is_suspop ( * args)
Parameters
ea(C++: ea_t)
F(C++: flags64_t)
n(C++: int)

◆ is_tail()

"bool" is_tail ( * args)
Parameters
F(C++: flags64_t)

◆ is_tbyte()

"bool" is_tbyte ( * args)
Parameters
F(C++: flags64_t)

◆ is_unknown()

"bool" is_unknown ( * args)
Parameters
F(C++: flags64_t)

◆ is_varsize_item()

"int" is_varsize_item ( * args)
Parameters
ea(C++: ea_t) linear address of the item
F(C++: flags64_t) flags
ti(C++: const opinfo_t *) additional information about the data type. For example, if the current item is a structure instance, then ti->tid is structure id. Otherwise is ignored (may be nullptr). If specified as nullptr, will be automatically retrieved from the database
itemsize(C++: asize_t *) if not nullptr and the item is varsize, itemsize will contain the calculated item size (for struct types, the minimal size is returned)
Return values
1varsize item
0fixed item
-1error (bad data definition)

◆ is_word()

"bool" is_word ( * args)
Parameters
F(C++: flags64_t)

◆ is_yword()

"bool" is_yword ( * args)
Parameters
F(C++: flags64_t)

◆ is_zword()

"bool" is_zword ( * args)
Parameters
F(C++: flags64_t)

◆ leading_zero_important()

"bool" leading_zero_important ( * args)
Parameters
ea(C++: ea_t)
n(C++: int)

◆ nbits()

"int" nbits ( * args)
Parameters
ea(C++: ea_t)
Returns
: processor_t::dnbits() if the address doesn't belong to a segment, otherwise the result depends on the segment type

◆ next_addr()

"ea_t" next_addr ( * args)

next address which has flags).

Parameters
ea(C++: ea_t)
Returns
: BADADDR if no such address exist.

◆ next_chunk()

"ea_t" next_chunk ( * args)
Parameters
ea(C++: ea_t)
Returns
: BADADDR if next chunk doesn't exist.

◆ next_head()

"ea_t" next_head ( * args)
Parameters
ea(C++: ea_t) begin search at this address
maxea(C++: ea_t) not included in the search range
Returns
: BADADDR if none exists.

◆ next_inited()

"ea_t" next_inited ( * args)
Parameters
ea(C++: ea_t)
maxea(C++: ea_t)

◆ next_not_tail()

"ea_t" next_not_tail ( * args)
Parameters
ea(C++: ea_t)
Returns
: BADADDR if none exists.

◆ next_that()

"ea_t" next_that ( * args)
Note
: do not pass is_unknown() to this function to find unexplored bytes. It will fail under the debugger. To find unexplored bytes, use next_unknown().
Parameters
ea(C++: ea_t) start searching at this address + 1
maxea(C++: ea_t) not included in the search range.
testf(C++: testf_t *) test function to find next address
Returns
: the found address or BADADDR.

◆ next_unknown()

"ea_t" next_unknown ( * args)
Parameters
ea(C++: ea_t)
maxea(C++: ea_t)

◆ next_visea()

"ea_t" next_visea ( * args)
Parameters
ea(C++: ea_t)
Returns
: BADADDR if none exists.

◆ num_flag()

"flags64_t" num_flag ( * args)

◆ oct_flag()

"flags64_t" oct_flag ( * args)

◆ off_flag()

"flags64_t" off_flag ( * args)

◆ op_adds_xrefs()

"bool" op_adds_xrefs ( * args)

Currently 'offset' and 'structure offset' operands create xrefs

Parameters
F(C++: flags64_t)
n(C++: int)

◆ op_based_stroff()

"bool" op_based_stroff ( * args)

For example, let's there is a structure at 1000 1000 stru_1000 Elf32_Sym <...> the operand #8 will be represented as '#Elf32_Sym.st_size' after the call of 'op_based_stroff(..., 8, 0x1000)' By the way, after the call of 'op_plain_offset(..., 0x1000)' it will be represented as '#(stru_1000.st_size - 0x1000)'

Parameters
insn(C++: const insn_t &) the instruction
n(C++: int) 0..UA_MAXOP-1 operand number, OPND_ALL all operands
opval(C++: adiff_t) operand value (usually op_t::value or op_t::addr)
base(C++: ea_t) base reference
Returns
: success

◆ op_bin()

"bool" op_bin ( * args)
Parameters
ea(C++: ea_t)
n(C++: int)

◆ op_chr()

"bool" op_chr ( * args)
Parameters
ea(C++: ea_t)
n(C++: int)

◆ op_custfmt()

"bool" op_custfmt ( * args)
Parameters
ea(C++: ea_t)
n(C++: int)
fid(C++: int)

◆ op_dec()

"bool" op_dec ( * args)
Parameters
ea(C++: ea_t)
n(C++: int)

◆ op_enum()

"bool" op_enum ( * args)

If applied to unexplored bytes, converts them to 16/32bit word data

Parameters
ea(C++: ea_t) linear address
n(C++: int) 0..UA_MAXOP-1 operand number, OPND_ALL all operands
id(C++: enum_t) id of enum
serial(C++: uchar) the serial number of the constant in the enumeration, usually 0. the serial numbers are used if the enumeration contains several constants with the same value
Returns
: success

◆ op_flt()

"bool" op_flt ( * args)
Parameters
ea(C++: ea_t)
n(C++: int)

◆ op_hex()

"bool" op_hex ( * args)
Parameters
ea(C++: ea_t)
n(C++: int)

◆ op_num()

"bool" op_num ( * args)
Parameters
ea(C++: ea_t)
n(C++: int)

◆ op_oct()

"bool" op_oct ( * args)
Parameters
ea(C++: ea_t)
n(C++: int)

◆ op_seg()

"bool" op_seg ( * args)

If applied to unexplored bytes, converts them to 16/32bit word data

Parameters
ea(C++: ea_t) linear address
n(C++: int) 0..UA_MAXOP-1 operand number, OPND_ALL all operands
Returns
: success

◆ op_stkvar()

"bool" op_stkvar ( * args)

Should be applied to an instruction within a function. Should be applied after creating a stack var using insn_t::create_stkvar().

Parameters
ea(C++: ea_t) linear address
n(C++: int) 0..UA_MAXOP-1 operand number, OPND_ALL all operands
Returns
: success

◆ op_stroff()

"bool" op_stroff ( * args)
Parameters
insn(C++: const insn_t &) the instruction
n(C++: int) 0..UA_MAXOP-1 operand number, OPND_ALL all operands
path(C++: const tid_t *) structure path (strpath). see nalt.hpp for more info.
path_len(C++: int) length of the structure path
delta(C++: adiff_t) struct offset delta. usually 0. denotes the difference between the structure base and the pointer into the structure.
Returns
: success op_stroff(insn, n, path, delta) -> bool
Parameters
insnan ida_ua.insn_t, or an address (C++: const insn_t &)
nint
pathqvector< tid_t > const &
deltaadiff_t

◆ oword_flag()

"flags64_t" oword_flag ( * args)

◆ packreal_flag()

"flags64_t" packreal_flag ( * args)

◆ parse_binpat_str()

"qstring *" parse_binpat_str ( * args)

The 'in' parameter contains space-separated tokens:

  • numbers (numeric base is determined by 'radix')
  • if value of number fits a byte, it is considered as a byte
  • if value of number fits a word, it is considered as 2 bytes
  • if value of number fits a dword,it is considered as 4 bytes
  • "..." string constants
  • 'x' single-character constants
  • ? variable bytes

Note that string constants are surrounded with double quotes.

Here are a few examples (assuming base 16): CD 21 - bytes 0xCD, 0x21 21CD - bytes 0xCD, 0x21 (little endian ) or 0x21, 0xCD (big-endian) "Hello", 0 - the null terminated string "Hello" L"Hello" - 'H', 0, 'e', 0, 'l', 0, 'l', 0, 'o', 0 B8 ? ? ? ? 90 - byte 0xB8, 4 bytes with any value, byte 0x90

Parameters
out(C++: compiled_binpat_vec_t *) a vector of compiled binary patterns, for use with bin_search2()
ea(C++: ea_t) linear address to convert for (the conversion depends on the address, because the number of bits in a byte depend on the segment type)
in(C++: const char *) input text string
radix(C++: int) numeric base of numbers (8,10,16)
strlits_encoding(C++: int) the target encoding into which the string literals present in 'in', should be encoded. Can be any from [1, get_encoding_qty()), or the special values PBSENC_*
Returns
: false either in case of parsing error, or if at least one requested target encoding couldn't encode the string literals present in "in".

◆ patch_byte()

"bool" patch_byte ( * args)

The original value of the byte is saved and can be obtained by get_original_byte(). This function works for wide byte processors too.

Return values
truethe database has been modified,
falsethe debugger is running and the process' memory has value 'x' at address 'ea', or the debugger is not running, and the IDB has value 'x' at address 'ea already.
Parameters
ea(C++: ea_t)
x(C++: uint64)

◆ patch_bytes()

"void" patch_bytes ( * args)

Original values of bytes are saved and are available with get_original...() functions. See also put_bytes().

Parameters
ea(C++: ea_t) linear address
buf(C++: const void *) buffer with new values of bytes

◆ patch_dword()

"bool" patch_dword ( * args)

The original value of the dword is saved and can be obtained by get_original_dword(). This function DOESN'T work for wide byte processors. This function takes into account order of bytes specified in idainfo::is_be()

Return values
truethe database has been modified,
falsethe debugger is running and the process' memory has value 'x' at address 'ea', or the debugger is not running, and the IDB has value 'x' at address 'ea already.
Parameters
ea(C++: ea_t)
x(C++: uint64)

◆ patch_qword()

"bool" patch_qword ( * args)

The original value of the qword is saved and can be obtained by get_original_qword(). This function DOESN'T work for wide byte processors. This function takes into account order of bytes specified in idainfo::is_be()

Return values
truethe database has been modified,
falsethe debugger is running and the process' memory has value 'x' at address 'ea', or the debugger is not running, and the IDB has value 'x' at address 'ea already.
Parameters
ea(C++: ea_t)
x(C++: uint64)

◆ patch_word()

"bool" patch_word ( * args)

The original value of the word is saved and can be obtained by get_original_word(). This function works for wide byte processors too. This function takes into account order of bytes specified in idainfo::is_be()

Return values
truethe database has been modified,
falsethe debugger is running and the process' memory has value 'x' at address 'ea', or the debugger is not running, and the IDB has value 'x' at address 'ea already.
Parameters
ea(C++: ea_t)
x(C++: uint64)

◆ prev_addr()

"ea_t" prev_addr ( * args)
Parameters
ea(C++: ea_t)
Returns
: BADADDR if no such address exist.

◆ prev_chunk()

"ea_t" prev_chunk ( * args)
Parameters
ea(C++: ea_t)
Returns
: BADADDR if previous chunk doesn't exist.

◆ prev_head()

"ea_t" prev_head ( * args)
Parameters
ea(C++: ea_t) begin search at this address
minea(C++: ea_t) included in the search range
Returns
: BADADDR if none exists.

◆ prev_inited()

"ea_t" prev_inited ( * args)
Parameters
ea(C++: ea_t)
minea(C++: ea_t)

◆ prev_not_tail()

"ea_t" prev_not_tail ( * args)
Parameters
ea(C++: ea_t)
Returns
: BADADDR if none exists.

◆ prev_that()

"ea_t" prev_that ( * args)
Note
: do not pass is_unknown() to this function to find unexplored bytes It will fail under the debugger. To find unexplored bytes, use prev_unknown().
Parameters
ea(C++: ea_t) start searching from this address - 1.
minea(C++: ea_t) included in the search range.
testf(C++: testf_t *) test function to find previous address
Returns
: the found address or BADADDR.

◆ prev_unknown()

"ea_t" prev_unknown ( * args)
Parameters
ea(C++: ea_t)
minea(C++: ea_t)

◆ prev_visea()

"ea_t" prev_visea ( * args)
Parameters
ea(C++: ea_t)
Returns
: BADADDR if none exists.

◆ print_strlit_type()

"PyObject *" print_strlit_type ( * args)
Parameters
strtype(C++: int32) the string type
flags(C++: int) or'ed PSTF_* constants
Returns
: length of generated text

◆ put_byte()

"bool" put_byte ( * args)

This function modifies the database. If the debugger is active then the debugged process memory is patched too.

Note
: The original value of the byte is completely lost and can't be recovered by the get_original_byte() function. See also put_dbg_byte() to write to the process memory directly when the debugger is active. This function can handle wide byte processors.
Parameters
ea(C++: ea_t) linear address
x(C++: uint64) byte value
Returns
: true if the database has been modified

◆ put_bytes()

"void" put_bytes ( * args)

This function does not save the original values of bytes. See also patch_bytes().

Parameters
ea(C++: ea_t) linear address
buf(C++: const void *) buffer with new values of bytes

◆ put_dword()

"void" put_dword ( * args)

This function takes into account order of bytes specified in idainfo::is_be() This function works for wide byte processors too.

Parameters
ea(C++: ea_t) linear address
x(C++: uint64) dword value
Note
: the original value of the dword is completely lost and can't be recovered by the get_original_dword() function.

◆ put_qword()

"void" put_qword ( * args)

This function takes into account order of bytes specified in idainfo::is_be() This function DOESN'T works for wide byte processors.

Parameters
ea(C++: ea_t) linear address
x(C++: uint64) qword value

◆ put_word()

"void" put_word ( * args)

This function takes into account order of bytes specified in idainfo::is_be() This function works for wide byte processors too.

Note
: The original value of the word is completely lost and can't be recovered by the get_original_word() function. ea - linear address x - word value
Parameters
ea(C++: ea_t)
x(C++: uint64)

◆ qword_flag()

"flags64_t" qword_flag ( * args)

◆ register_custom_data_format()

"int" register_custom_data_format ( * args)
Parameters
py_dfan instance of data_format_t
Returns
: < 0 if failed to register > 0 data format id

◆ register_custom_data_type()

"int" register_custom_data_type ( * args)
Parameters
py_dtan instance of the data_type_t class
Returns
: < 0 if failed to register > 0 data type id

◆ register_data_types_and_formats()

register_data_types_and_formats ( formats)

To register one type/format at a time use register_custom_data_type/register_custom_data_format

It employs a special table of types and formats described below:

The 'formats' is a list of tuples. If a tuple has one element then it is the format to be registered with dtid=0 If the tuple has more than one element, then tuple[0] is the data type and tuple[1:] are the data formats. For example: many_formats = [ (pascal_data_type(), pascal_data_format()), (simplevm_data_type(), simplevm_data_format()), (makedword_data_format(),), (simplevm_data_format(),) ] The first two tuples describe data types and their associated formats. The last two tuples describe two data formats to be used with built-in data types. The data format may be attached to several data types. The id of the data format is stored in the first data_format_t object. For example: assert many_formats[1][1] != -1 assert many_formats[2][0] != -1 assert many_formats[3][0] == -1

◆ revert_byte()

"bool" revert_byte ( * args)
Return values
truebyte was patched before and reverted now
Parameters
ea(C++: ea_t)

◆ seg_flag()

"flags64_t" seg_flag ( * args)

◆ set_cmt()

"bool" set_cmt ( * args)
Parameters
ea(C++: ea_t) linear address
comm(C++: const char *) comment string
  • nullptr: do nothing (return 0)
  • "" : delete comment
rptble(C++: bool) is repeatable?
Returns
: success

◆ set_forced_operand()

"bool" set_forced_operand ( * args)
Parameters
ea(C++: ea_t) linear address
n(C++: int) 0..UA_MAXOP-1 operand number
op(C++: const char *) text of operand
  • nullptr: do nothing (return 0)
  • "" : delete forced operand
Returns
: success

◆ set_immd()

"bool" set_immd ( * args)

Returns true if the FF_IMMD bit was not set and now is set

Parameters
ea(C++: ea_t)

◆ set_lzero()

"bool" set_lzero ( * args)

This function changes the display of leading zeroes for the specified operand. If the default is not to display leading zeroes, this function will display them and vice versa.

Parameters
ea(C++: ea_t) the item (insn/data) address
n(C++: int) the operand number (0-first operand, 1-other operands)
Returns
: success

◆ set_manual_insn()

"void" set_manual_insn ( * args)
Parameters
ea(C++: ea_t) linear address of the instruction or data item
manual_insn(C++: const char *) "" - delete manual string. nullptr - do nothing

◆ set_op_type()

"bool" set_op_type ( * args)
Parameters
ea(C++: ea_t) linear address
type(C++: flags64_t) new flag value (should be obtained from char_flag(), num_flag() and similar functions)
n(C++: int) 0..UA_MAXOP-1 operand number, OPND_ALL all operands
Return values
1ok
0failed (applied to a tail byte)

◆ set_opinfo()

"bool" set_opinfo ( * args)

This function is a low level one. Only the kernel should use it.

Parameters
ea(C++: ea_t) linear address of the item
n(C++: int) number of operand, 0 or 1 (see the note below)
flag(C++: flags64_t) flags of the item
ti(C++: const opinfo_t *) additional representation information
suppress_events(C++: bool) do not generate changing_op_type and op_type_changed events
Returns
: success
Note
: for custom formats (if is_custfmt(flag, n) is true) or for offsets (if is_off(flag, n) is true) N can be in range 0..UA_MAXOP-1 or equal to OPND_ALL. In the case of OPND_ALL the additional information about all operands will be set.

◆ stkvar_flag()

"flags64_t" stkvar_flag ( * args)

◆ strlit_flag()

"flags64_t" strlit_flag ( * args)

◆ stroff_flag()

"flags64_t" stroff_flag ( * args)

◆ stru_flag()

"flags64_t" stru_flag ( * args)

◆ tbyte_flag()

"flags64_t" tbyte_flag ( * args)

◆ toggle_bnot()

"bool" toggle_bnot ( * args)

also see is_bnot()

Parameters
ea(C++: ea_t)
n(C++: int)

◆ toggle_lzero()

"bool" toggle_lzero ( * args)
Parameters
ea(C++: ea_t) the item (insn/data) address
n(C++: int) the operand number (0-first operand, 1-other operands)
Returns
: success

◆ toggle_sign()

"bool" toggle_sign ( * args)

allowed values of n: 0-first operand, 1-other operands

Parameters
ea(C++: ea_t)
n(C++: int)

◆ unregister_custom_data_format()

"bool" unregister_custom_data_format ( * args)
Parameters
dfiddata format id
Returns
: Boolean

◆ unregister_custom_data_type()

"bool" unregister_custom_data_type ( * args)
Parameters
dtidthe data type id
Returns
: Boolean

◆ unregister_data_types_and_formats()

unregister_data_types_and_formats ( formats)

◆ update_hidden_range()

"bool" update_hidden_range ( * args)

You cannot use this function to change the range boundaries

Parameters
ha(C++: const hidden_range_t *) range to update
Returns
: success

◆ use_mapping()

"ea_t" use_mapping ( * args)
Parameters
ea(C++: ea_t) address to translate
Returns
: translated address

◆ visit_patched_bytes()

"int" visit_patched_bytes ( * args)
Parameters
ea1start address
ea2end address
py_callablea Python callable with the following prototype: callable(ea, fpos, org_val, patch_val). If the callable returns non-zero then that value will be returned to the caller and the enumeration will be interrupted.
Returns
: Zero if the enumeration was successful or the return value of the callback if enumeration was interrupted.

◆ word_flag()

"flags64_t" word_flag ( * args)

◆ yword_flag()

"flags64_t" yword_flag ( * args)

◆ zword_flag()

"flags64_t" zword_flag ( * args)

Variable Documentation

◆ ALOPT_APPEND

ALOPT_APPEND = _ida_bytes.ALOPT_APPEND

◆ ALOPT_IGNCLT

ALOPT_IGNCLT = _ida_bytes.ALOPT_IGNCLT

◆ ALOPT_IGNHEADS

ALOPT_IGNHEADS = _ida_bytes.ALOPT_IGNHEADS

◆ ALOPT_IGNPRINT

ALOPT_IGNPRINT = _ida_bytes.ALOPT_IGNPRINT

◆ ALOPT_MAX4K

ALOPT_MAX4K = _ida_bytes.ALOPT_MAX4K

◆ ALOPT_ONLYTERM

ALOPT_ONLYTERM = _ida_bytes.ALOPT_ONLYTERM

◆ BIN_SEARCH_BACKWARD

BIN_SEARCH_BACKWARD = _ida_bytes.BIN_SEARCH_BACKWARD

◆ BIN_SEARCH_BITMASK

BIN_SEARCH_BITMASK = _ida_bytes.BIN_SEARCH_BITMASK

◆ BIN_SEARCH_CASE

BIN_SEARCH_CASE = _ida_bytes.BIN_SEARCH_CASE

◆ BIN_SEARCH_FORWARD

BIN_SEARCH_FORWARD = _ida_bytes.BIN_SEARCH_FORWARD

◆ BIN_SEARCH_INITED

BIN_SEARCH_INITED = _ida_bytes.BIN_SEARCH_INITED

◆ BIN_SEARCH_NOBREAK

BIN_SEARCH_NOBREAK = _ida_bytes.BIN_SEARCH_NOBREAK

◆ BIN_SEARCH_NOCASE

BIN_SEARCH_NOCASE = _ida_bytes.BIN_SEARCH_NOCASE

◆ BIN_SEARCH_NOSHOW

BIN_SEARCH_NOSHOW = _ida_bytes.BIN_SEARCH_NOSHOW

◆ DELIT_DELNAMES

DELIT_DELNAMES = _ida_bytes.DELIT_DELNAMES

◆ DELIT_EXPAND

DELIT_EXPAND = _ida_bytes.DELIT_EXPAND

◆ DELIT_KEEPFUNC

DELIT_KEEPFUNC = _ida_bytes.DELIT_KEEPFUNC

◆ DELIT_NOCMT

DELIT_NOCMT = _ida_bytes.DELIT_NOCMT

◆ DELIT_NOTRUNC

DELIT_NOTRUNC = _ida_bytes.DELIT_NOTRUNC

◆ DELIT_NOUNAME

DELIT_NOUNAME = _ida_bytes.DELIT_NOUNAME

◆ DELIT_SIMPLE

DELIT_SIMPLE = _ida_bytes.DELIT_SIMPLE

◆ DT_TYPE

DT_TYPE = _ida_bytes.DT_TYPE

◆ DTP_NODUP

int DTP_NODUP = _ida_bytes.DTP_NODUP

◆ FF_0CHAR

FF_0CHAR = _ida_bytes.FF_0CHAR

◆ FF_0CUST

FF_0CUST = _ida_bytes.FF_0CUST

◆ FF_0ENUM

FF_0ENUM = _ida_bytes.FF_0ENUM

◆ FF_0FLT

FF_0FLT = _ida_bytes.FF_0FLT

◆ FF_0FOP

FF_0FOP = _ida_bytes.FF_0FOP

◆ FF_0NUMB

FF_0NUMB = _ida_bytes.FF_0NUMB

◆ FF_0NUMD

FF_0NUMD = _ida_bytes.FF_0NUMD

◆ FF_0NUMH

FF_0NUMH = _ida_bytes.FF_0NUMH

◆ FF_0NUMO

FF_0NUMO = _ida_bytes.FF_0NUMO

◆ FF_0OFF

FF_0OFF = _ida_bytes.FF_0OFF

◆ FF_0SEG

FF_0SEG = _ida_bytes.FF_0SEG

◆ FF_0STK

FF_0STK = _ida_bytes.FF_0STK

◆ FF_0STRO

FF_0STRO = _ida_bytes.FF_0STRO

◆ FF_0VOID

FF_0VOID = _ida_bytes.FF_0VOID

◆ FF_1CHAR

FF_1CHAR = _ida_bytes.FF_1CHAR

◆ FF_1CUST

FF_1CUST = _ida_bytes.FF_1CUST

◆ FF_1ENUM

FF_1ENUM = _ida_bytes.FF_1ENUM

◆ FF_1FLT

FF_1FLT = _ida_bytes.FF_1FLT

◆ FF_1FOP

FF_1FOP = _ida_bytes.FF_1FOP

◆ FF_1NUMB

FF_1NUMB = _ida_bytes.FF_1NUMB

◆ FF_1NUMD

FF_1NUMD = _ida_bytes.FF_1NUMD

◆ FF_1NUMH

FF_1NUMH = _ida_bytes.FF_1NUMH

◆ FF_1NUMO

FF_1NUMO = _ida_bytes.FF_1NUMO

◆ FF_1OFF

FF_1OFF = _ida_bytes.FF_1OFF

◆ FF_1SEG

FF_1SEG = _ida_bytes.FF_1SEG

◆ FF_1STK

FF_1STK = _ida_bytes.FF_1STK

◆ FF_1STRO

FF_1STRO = _ida_bytes.FF_1STRO

◆ FF_1VOID

FF_1VOID = _ida_bytes.FF_1VOID

◆ FF_ALIGN

FF_ALIGN = _ida_bytes.FF_ALIGN

◆ FF_ANYNAME

FF_ANYNAME = _ida_bytes.FF_ANYNAME

◆ FF_BNOT

FF_BNOT = _ida_bytes.FF_BNOT

◆ FF_BYTE

FF_BYTE = _ida_bytes.FF_BYTE

◆ FF_CODE

FF_CODE = _ida_bytes.FF_CODE

◆ FF_COMM

FF_COMM = _ida_bytes.FF_COMM

◆ FF_CUSTOM

FF_CUSTOM = _ida_bytes.FF_CUSTOM

◆ FF_DATA

FF_DATA = _ida_bytes.FF_DATA

◆ FF_DOUBLE

FF_DOUBLE = _ida_bytes.FF_DOUBLE

◆ FF_DWORD

FF_DWORD = _ida_bytes.FF_DWORD

◆ FF_FLOAT

FF_FLOAT = _ida_bytes.FF_FLOAT

◆ FF_FLOW

FF_FLOW = _ida_bytes.FF_FLOW

◆ FF_FUNC

FF_FUNC = _ida_bytes.FF_FUNC

◆ FF_IMMD

FF_IMMD = _ida_bytes.FF_IMMD

◆ FF_IVL

FF_IVL = _ida_bytes.FF_IVL

◆ FF_JUMP

FF_JUMP = _ida_bytes.FF_JUMP

◆ FF_LABL

FF_LABL = _ida_bytes.FF_LABL

◆ FF_LINE

FF_LINE = _ida_bytes.FF_LINE

◆ FF_N_CHAR

FF_N_CHAR = _ida_bytes.FF_N_CHAR

◆ FF_N_CUST

FF_N_CUST = _ida_bytes.FF_N_CUST

◆ FF_N_ENUM

FF_N_ENUM = _ida_bytes.FF_N_ENUM

◆ FF_N_FLT

FF_N_FLT = _ida_bytes.FF_N_FLT

◆ FF_N_FOP

FF_N_FOP = _ida_bytes.FF_N_FOP

◆ FF_N_NUMB

FF_N_NUMB = _ida_bytes.FF_N_NUMB

◆ FF_N_NUMD

FF_N_NUMD = _ida_bytes.FF_N_NUMD

◆ FF_N_NUMH

FF_N_NUMH = _ida_bytes.FF_N_NUMH

◆ FF_N_NUMO

FF_N_NUMO = _ida_bytes.FF_N_NUMO

◆ FF_N_OFF

FF_N_OFF = _ida_bytes.FF_N_OFF

◆ FF_N_SEG

FF_N_SEG = _ida_bytes.FF_N_SEG

◆ FF_N_STK

FF_N_STK = _ida_bytes.FF_N_STK

◆ FF_N_STRO

FF_N_STRO = _ida_bytes.FF_N_STRO

◆ FF_N_VOID

FF_N_VOID = _ida_bytes.FF_N_VOID

◆ FF_NAME

FF_NAME = _ida_bytes.FF_NAME

◆ FF_OWORD

FF_OWORD = _ida_bytes.FF_OWORD

◆ FF_PACKREAL

FF_PACKREAL = _ida_bytes.FF_PACKREAL

◆ FF_QWORD

FF_QWORD = _ida_bytes.FF_QWORD

◆ FF_REF

FF_REF = _ida_bytes.FF_REF

◆ FF_SIGN

FF_SIGN = _ida_bytes.FF_SIGN

◆ FF_STRLIT

FF_STRLIT = _ida_bytes.FF_STRLIT

◆ FF_STRUCT

FF_STRUCT = _ida_bytes.FF_STRUCT

◆ FF_TAIL

FF_TAIL = _ida_bytes.FF_TAIL

◆ FF_TBYTE

FF_TBYTE = _ida_bytes.FF_TBYTE

◆ FF_UNK

FF_UNK = _ida_bytes.FF_UNK

◆ FF_UNUSED

FF_UNUSED = _ida_bytes.FF_UNUSED

◆ FF_WORD

FF_WORD = _ida_bytes.FF_WORD

◆ FF_YWORD

FF_YWORD = _ida_bytes.FF_YWORD

◆ FF_ZWORD

FF_ZWORD = _ida_bytes.FF_ZWORD

◆ GFE_IDB_VALUE

GFE_IDB_VALUE = _ida_bytes.GFE_IDB_VALUE

◆ GFE_VALUE

GFE_VALUE = _ida_bytes.GFE_VALUE

◆ GMB_READALL

GMB_READALL = _ida_bytes.GMB_READALL

◆ GMB_WAITBOX

GMB_WAITBOX = _ida_bytes.GMB_WAITBOX

◆ ITEM_END_CANCEL

ITEM_END_CANCEL = _ida_bytes.ITEM_END_CANCEL

◆ ITEM_END_FIXUP

ITEM_END_FIXUP = _ida_bytes.ITEM_END_FIXUP

◆ ITEM_END_INITED

ITEM_END_INITED = _ida_bytes.ITEM_END_INITED

◆ ITEM_END_NAME

ITEM_END_NAME = _ida_bytes.ITEM_END_NAME

◆ ITEM_END_XREF

ITEM_END_XREF = _ida_bytes.ITEM_END_XREF

◆ MS_0TYPE

MS_0TYPE = _ida_bytes.MS_0TYPE

◆ MS_1TYPE

MS_1TYPE = _ida_bytes.MS_1TYPE

◆ MS_CLS

MS_CLS = _ida_bytes.MS_CLS

◆ MS_CODE

MS_CODE = _ida_bytes.MS_CODE

◆ MS_COMM

MS_COMM = _ida_bytes.MS_COMM

◆ MS_N_TYPE

MS_N_TYPE = _ida_bytes.MS_N_TYPE

◆ MS_VAL

MS_VAL = _ida_bytes.MS_VAL

◆ OPND_ALL

OPND_ALL = _ida_bytes.OPND_ALL

◆ OPND_MASK

OPND_MASK = _ida_bytes.OPND_MASK

◆ OPND_OUTER

OPND_OUTER = _ida_bytes.OPND_OUTER

◆ PBSENC_ALL

PBSENC_ALL = _ida_bytes.PBSENC_ALL

◆ PBSENC_DEF1BPU

PBSENC_DEF1BPU = _ida_bytes.PBSENC_DEF1BPU

◆ PSTF_ATTRIB

PSTF_ATTRIB = _ida_bytes.PSTF_ATTRIB

◆ PSTF_ENC

PSTF_ENC = _ida_bytes.PSTF_ENC

◆ PSTF_HOTKEY

PSTF_HOTKEY = _ida_bytes.PSTF_HOTKEY

◆ PSTF_ONLY_ENC

PSTF_ONLY_ENC = _ida_bytes.PSTF_ONLY_ENC

◆ PSTF_TBRIEF

PSTF_TBRIEF = _ida_bytes.PSTF_TBRIEF

◆ PSTF_TINLIN

PSTF_TINLIN = _ida_bytes.PSTF_TINLIN

◆ PSTF_TMASK

PSTF_TMASK = _ida_bytes.PSTF_TMASK

◆ PSTF_TNORM

PSTF_TNORM = _ida_bytes.PSTF_TNORM

◆ STRCONV_ESCAPE

STRCONV_ESCAPE = _ida_bytes.STRCONV_ESCAPE

◆ STRCONV_INCLLEN

STRCONV_INCLLEN = _ida_bytes.STRCONV_INCLLEN

◆ STRCONV_REPLCHAR

STRCONV_REPLCHAR = _ida_bytes.STRCONV_REPLCHAR