IDAPython 9.0
Loading...
Searching...
No Matches
ida_frame.py File Reference

Classes

class  xreflist_t
 Proxy of C++ qvector< xreflist_entry_t > class. More...
 
class  stkpnt_t
 Proxy of C++ stkpnt_t class. More...
 
class  stkpnts_t
 Proxy of C++ stkpnts_t class. More...
 
class  regvar_t
 Proxy of C++ regvar_t class. More...
 
class  xreflist_entry_t
 Proxy of C++ xreflist_entry_t class. More...
 

Namespaces

namespace  ida_frame
 Routines to manipulate function stack frames, stack variables, register variables and local labels.
 

Functions

"bool" is_funcarg_off ("func_t const *" pfn, "uval_t" frameoff)
 is_funcarg_off(pfn, frameoff) -> bool
 
"sval_t" lvar_off ("func_t const *" pfn, "uval_t" frameoff)
 lvar_off(pfn, frameoff) -> sval_t
 
"bool" add_frame ("func_t *" pfn, "sval_t" frsize, "ushort" frregs, "asize_t" argsize)
 add_frame(pfn, frsize, frregs, argsize) -> bool Add function frame.
 
"bool" del_frame ("func_t *" pfn)
 del_frame(pfn) -> bool Delete a function frame.
 
"bool" set_frame_size ("func_t *" pfn, "asize_t" frsize, "ushort" frregs, "asize_t" argsize)
 set_frame_size(pfn, frsize, frregs, argsize) -> bool Set size of function frame.
 
"asize_t" get_frame_size ("func_t const *" pfn)
 get_frame_size(pfn) -> asize_t Get full size of a function frame.
 
"int" get_frame_retsize ("func_t const *" pfn)
 get_frame_retsize(pfn) -> int Get size of function return address.
 
"void" get_frame_part ("range_t" range, "func_t const *" pfn, "frame_part_t" part)
 get_frame_part(range, pfn, part) Get offsets of the frame part in the frame.
 
"ea_t" frame_off_args ("func_t const *" pfn)
 frame_off_args(pfn) -> ea_t Get starting address of arguments section.
 
"ea_t" frame_off_retaddr ("func_t const *" pfn)
 frame_off_retaddr(pfn) -> ea_t Get starting address of return address section.
 
"ea_t" frame_off_savregs ("func_t const *" pfn)
 frame_off_savregs(pfn) -> ea_t Get starting address of saved registers section.
 
"ea_t" frame_off_lvars ("func_t const *" pfn)
 frame_off_lvars(pfn) -> ea_t Get start address of local variables section.
 
"bool" get_func_frame ("tinfo_t" out, "func_t const *" pfn)
 get_func_frame(out, pfn) -> bool
 
"sval_t" soff_to_fpoff ("func_t *" pfn, "uval_t" soff)
 soff_to_fpoff(pfn, soff) -> sval_t Convert struct offsets into fp-relative offsets.
 
"bool" update_fpd ("func_t *" pfn, "asize_t" fpd)
 update_fpd(pfn, fpd) -> bool Update frame pointer delta.
 
"bool" set_purged ("ea_t" ea, "int" nbytes, "bool" override_old_value)
 set_purged(ea, nbytes, override_old_value) -> bool Set the number of purged bytes for a function or data item (funcptr).
 
"bool" define_stkvar ("func_t *" pfn, "char const *" name, "sval_t" off, "tinfo_t" tif, "value_repr_t" repr=None)
 define_stkvar(pfn, name, off, tif, repr=None) -> bool Define/redefine a stack variable.
 
"bool" add_frame_member ("func_t const *" pfn, "char const *" name, "uval_t" offset, "tinfo_t" tif, "value_repr_t" repr=None, "uint" etf_flags=0)
 add_frame_member(pfn, name, offset, tif, repr=None, etf_flags=0) -> bool Add member to the frame type
 
"bool" is_anonymous_member_name ("char const *" name)
 is_anonymous_member_name(name) -> bool Is member name prefixed with "anonymous"?
 
"bool" is_dummy_member_name ("char const *" name)
 is_dummy_member_name(name) -> bool Is member name an auto-generated name?
 
"bool" is_special_frame_member ("tid_t" tid)
 is_special_frame_member(tid) -> bool Is stkvar with TID the return address slot or the saved registers slot ?
 
"bool" set_frame_member_type ("func_t const *" pfn, "uval_t" offset, "tinfo_t" tif, "value_repr_t" repr=None, "uint" etf_flags=0)
 set_frame_member_type(pfn, offset, tif, repr=None, etf_flags=0) -> bool Change type of the frame member
 
"bool" delete_frame_members ("func_t const *" pfn, "uval_t" start_offset, "uval_t" end_offset)
 delete_frame_members(pfn, start_offset, end_offset) -> bool Delete frame members
 
"qstring *" build_stkvar_name ("func_t const *" pfn, "sval_t" v)
 build_stkvar_name(pfn, v) -> str Build automatic stack variable name.
 
"ea_t" calc_stkvar_struc_offset ("func_t *" pfn, "insn_t const &" insn, "int" n)
 calc_stkvar_struc_offset(pfn, insn, n) -> ea_t Calculate offset of stack variable in the frame structure.
 
"sval_t" calc_frame_offset ("func_t *" pfn, "sval_t" off, "insn_t const *" insn=None, "op_t const *" op=None)
 calc_frame_offset(pfn, off, insn=None, op=None) -> sval_t Calculate the offset of stack variable in the frame.
 
"void" free_regvar ("regvar_t" v)
 free_regvar(v)
 
"int" add_regvar ("func_t *" pfn, "ea_t" ea1, "ea_t" ea2, "char const *" canon, "char const *" user, "char const *" cmt)
 add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int Define a register variable.
 
"regvar_t *" find_regvar (*args)
 find_regvar(pfn, ea1, ea2, canon, user) -> regvar_t Find a register variable definition.
 
"bool" has_regvar ("func_t *" pfn, "ea_t" ea)
 has_regvar(pfn, ea) -> bool Is there a register variable definition?
 
"int" rename_regvar ("func_t *" pfn, "regvar_t" v, "char const *" user)
 rename_regvar(pfn, v, user) -> int Rename a register variable.
 
"int" set_regvar_cmt ("func_t *" pfn, "regvar_t" v, "char const *" cmt)
 set_regvar_cmt(pfn, v, cmt) -> int Set comment for a register variable.
 
"int" del_regvar ("func_t *" pfn, "ea_t" ea1, "ea_t" ea2, "char const *" canon)
 del_regvar(pfn, ea1, ea2, canon) -> int Delete a register variable definition.
 
"bool" add_auto_stkpnt ("func_t *" pfn, "ea_t" ea, "sval_t" delta)
 add_auto_stkpnt(pfn, ea, delta) -> bool Add automatic SP register change point.
 
"bool" add_user_stkpnt ("ea_t" ea, "sval_t" delta)
 add_user_stkpnt(ea, delta) -> bool Add user-defined SP register change point.
 
"bool" del_stkpnt ("func_t *" pfn, "ea_t" ea)
 del_stkpnt(pfn, ea) -> bool Delete SP register change point.
 
"sval_t" get_spd ("func_t *" pfn, "ea_t" ea)
 get_spd(pfn, ea) -> sval_t Get difference between the initial and current values of ESP.
 
"sval_t" get_effective_spd ("func_t *" pfn, "ea_t" ea)
 get_effective_spd(pfn, ea) -> sval_t Get effective difference between the initial and current values of ESP.
 
"sval_t" get_sp_delta ("func_t *" pfn, "ea_t" ea)
 get_sp_delta(pfn, ea) -> sval_t Get modification of SP made at the specified location
 
"bool" set_auto_spd ("func_t *" pfn, "ea_t" ea, "sval_t" new_spd)
 set_auto_spd(pfn, ea, new_spd) -> bool Add such an automatic SP register change point so that at EA the new cumulative SP delta (that is, the difference between the initial and current values of SP) would be equal to NEW_SPD.
 
"bool" recalc_spd ("ea_t" cur_ea)
 recalc_spd(cur_ea) -> bool Recalculate SP delta for an instruction that stops execution.
 
"bool" recalc_spd_for_basic_block ("func_t *" pfn, "ea_t" cur_ea)
 
"void" build_stkvar_xrefs ("xreflist_t" out, "func_t *" pfn, "uval_t" start_offset, "uval_t" end_offset)
 build_stkvar_xrefs(out, pfn, start_offset, end_offset) Fill 'out' with a list of all the xrefs made from function 'pfn' to specified range of the pfn's stack frame.
 

Variables

 FRAME_UDM_NAME_R = _ida_frame.FRAME_UDM_NAME_R
 
 FRAME_UDM_NAME_S = _ida_frame.FRAME_UDM_NAME_S
 
 FPC_ARGS = _ida_frame.FPC_ARGS
 
 FPC_RETADDR = _ida_frame.FPC_RETADDR
 
 FPC_SAVREGS = _ida_frame.FPC_SAVREGS
 
 FPC_LVARS = _ida_frame.FPC_LVARS
 
 STKVAR_VALID_SIZE = _ida_frame.STKVAR_VALID_SIZE
 
 REGVAR_ERROR_OK = _ida_frame.REGVAR_ERROR_OK
 
 REGVAR_ERROR_ARG = _ida_frame.REGVAR_ERROR_ARG
 
 REGVAR_ERROR_RANGE = _ida_frame.REGVAR_ERROR_RANGE
 
 REGVAR_ERROR_NAME = _ida_frame.REGVAR_ERROR_NAME