IDAPython 8.4
Loading...
Searching...
No Matches
ida_struct.py File Reference

Classes

class  dyn_member_ref_array
 Proxy of C++ dynamic_wrapped_array_t< member_t > class. More...
 
class  member_t
 Proxy of C++ member_t class. More...
 
class  struc_t
 Proxy of C++ struc_t class. More...
 
class  udm_visitor_t
 Proxy of C++ udm_visitor_t class. More...
 
class  struct_field_visitor_t
 Proxy of C++ struct_field_visitor_t class. More...
 

Namespaces

namespace  ida_struct
 

Functions

"size_t" get_struc_qty (*args)
 get_struc_qty() -> size_t Get number of known structures.
 
"uval_t" get_first_struc_idx (*args)
 get_first_struc_idx() -> uval_t Get index of first structure.
 
"uval_t" get_last_struc_idx (*args)
 get_last_struc_idx() -> uval_t Get index of last structure.
 
"uval_t" get_prev_struc_idx (*args)
 get_prev_struc_idx(idx) -> uval_t Get previous struct index.
 
"uval_t" get_next_struc_idx (*args)
 get_next_struc_idx(idx) -> uval_t Get next struct index.
 
"uval_t" get_struc_idx (*args)
 get_struc_idx(id) -> uval_t Get internal number of the structure.
 
"tid_t" get_struc_by_idx (*args)
 get_struc_by_idx(idx) -> tid_t Get struct id by struct number.
 
"struc_t *" get_struc (*args)
 get_struc(id) -> struc_t Get pointer to struct type info.
 
"tid_t" get_struc_id (*args)
 get_struc_id(name) -> tid_t Get struct id by name.
 
"qstring *" get_struc_name (*args)
 get_struc_name(id, flags=0) -> str
 
"qstring *" get_struc_cmt (*args)
 get_struc_cmt(id, repeatable) -> str Get struct comment.
 
"asize_t" get_struc_size (*args)
 get_struc_size(sptr) -> asize_t Get struct size (also see get_struc_size(const struc_t *))
 
"ea_t" get_struc_prev_offset (*args)
 get_struc_prev_offset(sptr, offset) -> ea_t Get offset of member with largest offset less than 'offset'.
 
"ea_t" get_struc_next_offset (*args)
 get_struc_next_offset(sptr, offset) -> ea_t Get offset of member with smallest offset larger than 'offset'.
 
"ea_t" get_struc_last_offset (*args)
 get_struc_last_offset(sptr) -> ea_t Get offset of last member.
 
"ea_t" get_struc_first_offset (*args)
 get_struc_first_offset(sptr) -> ea_t Get offset of first member.
 
"void" unsync_and_delete_struc (*args)
 unsync_and_delete_struc(sptr) Delete the structure but leave synced ltudt unchanged.
 
"ea_t" get_max_offset (*args)
 get_max_offset(sptr) -> ea_t For unions: returns number of members, for structs: returns size of structure.
 
"bool" is_varstr (*args)
 is_varstr(id) -> bool Is variable size structure?
 
"bool" is_union (*args)
 is_union(id) -> bool Is a union?
 
"struc_t *" get_member_struc (*args)
 get_member_struc(fullname) -> struc_t Get containing structure of member by its full name "struct.field".
 
"struc_t *" get_sptr (*args)
 get_sptr(mptr) -> struc_t Get child struct if member is a struct.
 
"member_t *" get_member (*args)
 get_member(sptr, offset) -> member_t Get member at given offset.
 
"tid_t" get_member_id (*args)
 get_member_id(sptr, offset) -> tid_t Get member id at given offset.
 
"member_t *" get_member_by_name (*args)
 get_member_by_name(sptr, membername) -> member_t Get a member by its name, like "field44".
 
"struc_t **" get_member_by_fullname (*args)
 get_member_by_fullname(fullname) -> member_t Get a member by its fully qualified name, "struct.field".
 
"qstring *" get_member_fullname (*args)
 get_member_fullname(mid) -> str Get a member's fully qualified name, "struct.field".
 
"qstring *" get_member_name (*args)
 get_member_name(mid) -> str
 
"qstring *" get_member_cmt (*args)
 get_member_cmt(mid, repeatable) -> str Get comment of structure member.
 
"asize_t" get_member_size (*args)
 get_member_size(NONNULL_mptr) -> asize_t Get size of structure member.
 
"bool" is_varmember (*args)
 is_varmember(mptr) -> bool Is variable size member?
 
"member_t *" get_best_fit_member (*args)
 get_best_fit_member(sptr, offset) -> member_t Get member that is most likely referenced by the specified offset.
 
"ssize_t" get_next_member_idx (*args)
 get_next_member_idx(sptr, off) -> ssize_t Get the next member idx, if it does not exist, return -1.
 
"ssize_t" get_prev_member_idx (*args)
 get_prev_member_idx(sptr, off) -> ssize_t Get the prev member idx, if it does not exist, return -1.
 
"tid_t" add_struc (*args)
 add_struc(idx, name, is_union=False) -> tid_t Create a structure type.
 
"bool" del_struc (*args)
 del_struc(sptr) -> bool Delete a structure type This function deletes as well local type synced with the structure
 
"bool" set_struc_idx (*args)
 set_struc_idx(sptr, idx) -> bool Set internal number of struct.
 
"bool" set_struc_align (*args)
 set_struc_align(sptr, shift) -> bool Set structure alignment (SF_ALIGN)
 
"bool" set_struc_name (*args)
 set_struc_name(id, name) -> bool Set structure name.
 
"bool" set_struc_cmt (*args)
 set_struc_cmt(id, cmt, repeatable) -> bool Set structure comment.
 
"struc_error_t" add_struc_member (*args)
 add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t Add member to existing structure.
 
"bool" del_struc_member (*args)
 del_struc_member(sptr, offset) -> bool Delete member at given offset.
 
"int" del_struc_members (*args)
 del_struc_members(sptr, off1, off2) -> int Delete members which occupy range of offsets (off1..off2).
 
"bool" set_member_name (*args)
 set_member_name(sptr, offset, name) -> bool Set name of member at given offset.
 
"bool" set_member_type (*args)
 set_member_type(sptr, offset, flag, mt, nbytes) -> bool Set type of member at given offset (also see add_struc_member())
 
"bool" set_member_cmt (*args)
 set_member_cmt(mptr, cmt, repeatable) -> bool Set member comment.
 
"bool" expand_struc (*args)
 expand_struc(sptr, offset, delta, recalc=True) -> bool Expand/Shrink structure type.
 
"void" save_struc (*args)
 save_struc(sptr, may_update_ltypes=True) Update struct information in the database (internal function)
 
"void" set_struc_hidden (*args)
 set_struc_hidden(sptr, is_hidden) Hide/unhide a struct type.
 
"void" set_struc_listed (*args)
 set_struc_listed(sptr, is_listed) Add/remove a struct type from the struct list.
 
"bool" get_member_tinfo (*args)
 get_member_tinfo(tif, mptr) -> bool Get tinfo for given member.
 
"bool" del_member_tinfo (*args)
 del_member_tinfo(sptr, mptr) -> bool Delete tinfo for given member.
 
"smt_code_t" set_member_tinfo (*args)
 set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t Set tinfo for given member.
 
"bool" get_or_guess_member_tinfo (*args)
 get_or_guess_member_tinfo(tif, mptr) -> bool Try to get tinfo for given member - if failed, generate a tinfo using information about the member id from the disassembly
 
"opinfo_t *" retrieve_member_info (*args)
 retrieve_member_info(buf, mptr) -> opinfo_t Get operand type info for member.
 
"bool" is_anonymous_member_name (*args)
 is_anonymous_member_name(name) -> bool Is member name prefixed with "anonymous"?
 
"bool" is_dummy_member_name (*args)
 is_dummy_member_name(name) -> bool Is member name an auto-generated name?
 
"qstring *, struc_t **" get_member_by_id (*args)
 get_member_by_id(mid) -> member_t Check if the specified member id points to a struct member.
 
"bool" is_member_id (*args)
 is_member_id(mid) -> bool Is a member id?
 
"bool" is_special_member (*args)
 is_special_member(id) -> bool Is a special member with the name beginning with ' '?
 
"adiff_t *" visit_stroff_udms (*args)
 visit_stroff_udms(sfv, path, disp, appzero) -> int Visit structure fields in a stroff expression or in a reference to a struct data variable.
 
"bool" stroff_as_size (*args)
 stroff_as_size(plen, sptr, value) -> bool
 
"adiff_t *" visit_stroff_fields (*args)
 visit_stroff_fields(sfv, path, disp, appzero) -> flags64_t
 
"PyObject *" get_innermost_member (*args)
 

Variables

 STRUC_SEPARATOR = _ida_struct.STRUC_SEPARATOR
 
 MF_OK = _ida_struct.MF_OK
 
 MF_UNIMEM = _ida_struct.MF_UNIMEM
 
 MF_HASUNI = _ida_struct.MF_HASUNI
 
 MF_BYTIL = _ida_struct.MF_BYTIL
 
 MF_HASTI = _ida_struct.MF_HASTI
 
 MF_BASECLASS = _ida_struct.MF_BASECLASS
 
 MF_DTOR = _ida_struct.MF_DTOR
 
 MF_DUPNAME = _ida_struct.MF_DUPNAME
 
 SF_VAR = _ida_struct.SF_VAR
 
 SF_UNION = _ida_struct.SF_UNION
 
 SF_HASUNI = _ida_struct.SF_HASUNI
 
 SF_NOLIST = _ida_struct.SF_NOLIST
 
 SF_TYPLIB = _ida_struct.SF_TYPLIB
 
 SF_HIDDEN = _ida_struct.SF_HIDDEN
 
 SF_FRAME = _ida_struct.SF_FRAME
 
 SF_ALIGN = _ida_struct.SF_ALIGN
 
 SF_GHOST = _ida_struct.SF_GHOST
 
 SF_ASMTIL = _ida_struct.SF_ASMTIL
 
 STRNFL_REGEX = _ida_struct.STRNFL_REGEX
 
 STRUC_ERROR_MEMBER_OK = _ida_struct.STRUC_ERROR_MEMBER_OK
 
 STRUC_ERROR_MEMBER_NAME = _ida_struct.STRUC_ERROR_MEMBER_NAME
 
 STRUC_ERROR_MEMBER_OFFSET = _ida_struct.STRUC_ERROR_MEMBER_OFFSET
 
 STRUC_ERROR_MEMBER_SIZE = _ida_struct.STRUC_ERROR_MEMBER_SIZE
 
 STRUC_ERROR_MEMBER_TINFO = _ida_struct.STRUC_ERROR_MEMBER_TINFO
 
 STRUC_ERROR_MEMBER_STRUCT = _ida_struct.STRUC_ERROR_MEMBER_STRUCT
 
 STRUC_ERROR_MEMBER_UNIVAR = _ida_struct.STRUC_ERROR_MEMBER_UNIVAR
 
 STRUC_ERROR_MEMBER_VARLAST = _ida_struct.STRUC_ERROR_MEMBER_VARLAST
 
 STRUC_ERROR_MEMBER_NESTED = _ida_struct.STRUC_ERROR_MEMBER_NESTED
 
 STRUC_ERROR_MEMBER_LTUDT = _ida_struct.STRUC_ERROR_MEMBER_LTUDT
 
 SMT_BADARG = _ida_struct.SMT_BADARG
 
 SMT_NOCOMPAT = _ida_struct.SMT_NOCOMPAT
 
 SMT_WORSE = _ida_struct.SMT_WORSE
 
 SMT_SIZE = _ida_struct.SMT_SIZE
 
 SMT_ARRAY = _ida_struct.SMT_ARRAY
 
 SMT_OVERLAP = _ida_struct.SMT_OVERLAP
 
 SMT_FAILED = _ida_struct.SMT_FAILED
 
 SMT_OK = _ida_struct.SMT_OK
 
 SMT_KEEP = _ida_struct.SMT_KEEP
 
 SET_MEMTI_MAY_DESTROY = _ida_struct.SET_MEMTI_MAY_DESTROY
 
 SET_MEMTI_COMPATIBLE = _ida_struct.SET_MEMTI_COMPATIBLE
 
 SET_MEMTI_FUNCARG = _ida_struct.SET_MEMTI_FUNCARG
 
 SET_MEMTI_BYTIL = _ida_struct.SET_MEMTI_BYTIL
 
 SET_MEMTI_USERTI = _ida_struct.SET_MEMTI_USERTI