IDAPython 9.0
Loading...
Searching...
No Matches
reg_value_info_t Class Reference
Inheritance diagram for reg_value_info_t:

Public Member Functions

 __init__ (self)
 
None clear (self)
 
bool empty (self)
 
None swap (self, 'reg_value_info_t' r)
 
bool is_dead_end (self)
 
bool aborted (self)
 
bool is_special (self)
 
bool is_badinsn (self)
 
bool is_unkinsn (self)
 
bool is_unkfunc (self)
 
bool is_unkloop (self)
 
bool is_unkmult (self)
 
bool is_unkxref (self)
 
bool is_unkvals (self)
 
bool is_unknown (self)
 
bool is_num (self)
 
bool is_spd (self)
 
bool is_known (self)
 
bool get_num (self)
 
bool get_spd (self)
 
ida_idaapi.ea_t get_def_ea (self)
 
'uint16' get_def_itype (self)
 
bool is_value_unique (self)
 
bool have_all_vals_flag (self, 'uint16' val_flags)
 
bool has_any_vals_flag (self, 'uint16' val_flags)
 
bool is_all_vals_pc_based (self)
 
bool is_any_vals_pc_based (self)
 
bool is_all_vals_like_got (self)
 
bool is_any_vals_like_got (self)
 
None set_all_vals_flag (self, 'uint16' val_flags)
 
None set_all_vals_pc_based (self)
 
None set_all_vals_got_based (self)
 
None set_dead_end (self, ida_idaapi.ea_t dead_end_ea)
 
None set_badinsn (self, ida_idaapi.ea_t insn_ea)
 
None set_unkinsn (self, 'insn_t const &' insn)
 
None set_unkfunc (self, ida_idaapi.ea_t func_ea)
 
None set_unkloop (self, ida_idaapi.ea_t bblk_ea)
 
None set_unkmult (self, ida_idaapi.ea_t bblk_ea)
 
None set_unkxref (self, ida_idaapi.ea_t bblk_ea)
 
None set_unkvals (self, ida_idaapi.ea_t bblk_ea)
 
None set_aborted (self, ida_idaapi.ea_t bblk_ea)
 
None set_num (self, *args)
 
'reg_value_info_t::set_compare_res_t' vals_union (self, 'reg_value_info_t' r)
 
None extend (self, 'procmod_t' pm, int width, bool is_signed)
 
None trunc_uval (self, 'procmod_t' pm)
 
None add (self, 'reg_value_info_t' r, 'insn_t const &' insn)
 
None sub (self, 'reg_value_info_t' r, 'insn_t const &' insn)
 
None bor (self, 'reg_value_info_t' r, 'insn_t const &' insn)
 
None band (self, 'reg_value_info_t' r, 'insn_t const &' insn)
 
None bxor (self, 'reg_value_info_t' r, 'insn_t const &' insn)
 
None bandnot (self, 'reg_value_info_t' r, 'insn_t const &' insn)
 
None sll (self, 'reg_value_info_t' r, 'insn_t const &' insn)
 
None slr (self, 'reg_value_info_t' r, 'insn_t const &' insn)
 
None movt (self, 'reg_value_info_t' r, 'insn_t const &' insn)
 
None neg (self, 'insn_t const &' insn)
 
None bnot (self, 'insn_t const &' insn)
 
None add_num (self, *args)
 
None shift_left (self, int r)
 
None shift_right (self, int r)
 
str __str__ (self)
 
'size_t' __len__ (self)
 
'reg_value_def_t const &' __getitem__ (self, 'size_t' i)
 

Static Public Member Functions

'reg_value_info_tmake_dead_end (ida_idaapi.ea_t dead_end_ea)
 
'reg_value_info_tmake_aborted (ida_idaapi.ea_t bblk_ea)
 
'reg_value_info_tmake_badinsn (ida_idaapi.ea_t insn_ea)
 
'reg_value_info_tmake_unkinsn ('insn_t const &' insn)
 
'reg_value_info_tmake_unkfunc (ida_idaapi.ea_t func_ea)
 
'reg_value_info_tmake_unkloop (ida_idaapi.ea_t bblk_ea)
 
'reg_value_info_tmake_unkmult (ida_idaapi.ea_t bblk_ea)
 
'reg_value_info_tmake_unkxref (ida_idaapi.ea_t bblk_ea)
 
'reg_value_info_tmake_unkvals (ida_idaapi.ea_t bblk_ea)
 
'reg_value_info_tmake_num (*args)
 
'reg_value_info_tmake_initial_sp (ida_idaapi.ea_t func_ea)
 

Static Public Attributes

 EQUAL = _ida_regfinder.reg_value_info_t_EQUAL
 
 CONTAINS = _ida_regfinder.reg_value_info_t_CONTAINS
 
 CONTAINED = _ida_regfinder.reg_value_info_t_CONTAINED
 
 NOT_COMPARABLE = _ida_regfinder.reg_value_info_t_NOT_COMPARABLE
 
 ADD = _ida_regfinder.reg_value_info_t_ADD
 
 SUB = _ida_regfinder.reg_value_info_t_SUB
 
 OR = _ida_regfinder.reg_value_info_t_OR
 
 AND = _ida_regfinder.reg_value_info_t_AND
 
 XOR = _ida_regfinder.reg_value_info_t_XOR
 
 AND_NOT = _ida_regfinder.reg_value_info_t_AND_NOT
 
 SLL = _ida_regfinder.reg_value_info_t_SLL
 
 SLR = _ida_regfinder.reg_value_info_t_SLR
 
 MOVT = _ida_regfinder.reg_value_info_t_MOVT
 
 NEG = _ida_regfinder.reg_value_info_t_NEG
 
 NOT = _ida_regfinder.reg_value_info_t_NOT
 

Properties

 thisown
 

Constructor & Destructor Documentation

◆ __init__()

__init__ ( self)

Member Function Documentation

◆ __getitem__()

'reg_value_def_t const &' __getitem__ ( self,
'size_t' i )

◆ __len__()

'size_t' __len__ ( self)

◆ __str__()

str __str__ ( self)

◆ aborted()

bool aborted ( self)
Return 'true' if the tracking process was aborted.

◆ add()

None add ( self,
'reg_value_info_t' r,
'insn_t const &' insn )
Add R to the value, save INSN as a defining instruction. 

◆ add_num()

None add_num ( self,
* args )
This function has the following signatures:

0. add_num(r: int, insn: const insn_t &) -> None
1. add_num(r: int) -> None

# 0: add_num(r: int, insn: const insn_t &) -> None

Add R to the value, save INSN as a defining instruction. 


# 1: add_num(r: int) -> None

Add R to the value, do not change the defining instructions. 

◆ band()

None band ( self,
'reg_value_info_t' r,
'insn_t const &' insn )
Make bitwise AND of R to the value, save INSN as a defining instruction. 

◆ bandnot()

None bandnot ( self,
'reg_value_info_t' r,
'insn_t const &' insn )
Make bitwise AND of the inverse of R to the value, save INSN as a defining instruction. 

◆ bnot()

None bnot ( self,
'insn_t const &' insn )
Make bitwise inverse of the value, save INSN as a defining instruction. 

◆ bor()

None bor ( self,
'reg_value_info_t' r,
'insn_t const &' insn )
Make bitwise OR of R to the value, save INSN as a defining instruction. 

◆ bxor()

None bxor ( self,
'reg_value_info_t' r,
'insn_t const &' insn )
Make bitwise eXclusive OR of R to the value, save INSN as a defining instruction. 

◆ clear()

None clear ( self)
Undefine the value.

◆ empty()

bool empty ( self)
Return 'true' if we know nothing about a value.

◆ extend()

None extend ( self,
'procmod_t' pm,
int width,
bool is_signed )
Sign-, or zero-extend the number or SP delta value to full size. The initial value is considered to be of size WIDTH. 

◆ get_def_ea()

ida_idaapi.ea_t get_def_ea ( self)
Return the defining address.

◆ get_def_itype()

'uint16' get_def_itype ( self)
Return the defining instruction code (processor specific).

◆ get_num()

bool get_num ( self)
Return the number if the value is a constant. 

◆ get_spd()

bool get_spd ( self)
Return the SP delta if the value depends on the stack pointer. 

◆ has_any_vals_flag()

bool has_any_vals_flag ( self,
'uint16' val_flags )

◆ have_all_vals_flag()

bool have_all_vals_flag ( self,
'uint16' val_flags )
Check the given flag for each value.

◆ is_all_vals_like_got()

bool is_all_vals_like_got ( self)

◆ is_all_vals_pc_based()

bool is_all_vals_pc_based ( self)

◆ is_any_vals_like_got()

bool is_any_vals_like_got ( self)

◆ is_any_vals_pc_based()

bool is_any_vals_pc_based ( self)

◆ is_badinsn()

bool is_badinsn ( self)
Return 'true' if the value is unknown because of a bad insn.

◆ is_dead_end()

bool is_dead_end ( self)
Return 'true' if the value is undefined because of a dead end.

◆ is_known()

bool is_known ( self)
Return 'true' if the value is known (i.e. it is a number or SP delta).

◆ is_num()

bool is_num ( self)
Return 'true' if the value is a constant.

◆ is_spd()

bool is_spd ( self)
Return 'true' if the value depends on the stack pointer.

◆ is_special()

bool is_special ( self)
Return 'true' if the value requires special handling.

◆ is_unkfunc()

bool is_unkfunc ( self)
Return 'true' if the value is unknown from the function start.

◆ is_unkinsn()

bool is_unkinsn ( self)
Return 'true' if the value is unknown after executing the insn.

◆ is_unkloop()

bool is_unkloop ( self)
Return 'true' if the value is unknown because it changes in a loop.

◆ is_unkmult()

bool is_unkmult ( self)
Return 'true' if the value is unknown because the register has incompatible values (a number and SP delta). 

◆ is_unknown()

bool is_unknown ( self)
Return 'true' if the value is unknown.

◆ is_unkvals()

bool is_unkvals ( self)
Return 'true' if the value is unknown because the register has too many values. 

◆ is_unkxref()

bool is_unkxref ( self)
Return 'true' if the value is unknown because there are too many xrefs.

◆ is_value_unique()

bool is_value_unique ( self)
Check that the value is unique.

◆ make_aborted()

'reg_value_info_t' make_aborted ( ida_idaapi.ea_t bblk_ea)
static
Return the value after aborting. 

◆ make_badinsn()

'reg_value_info_t' make_badinsn ( ida_idaapi.ea_t insn_ea)
static
Return the unknown value after a bad insn. 

◆ make_dead_end()

'reg_value_info_t' make_dead_end ( ida_idaapi.ea_t dead_end_ea)
static
Return the undefined value because of a dead end. 

◆ make_initial_sp()

'reg_value_info_t' make_initial_sp ( ida_idaapi.ea_t func_ea)
static
Return the value that is the initial stack pointer. 

◆ make_num()

'reg_value_info_t' make_num ( * args)
static
This function has the following signatures:

0. make_num(rval: int, insn: const insn_t &, val_flags: uint16=0) -> reg_value_info_t
1. make_num(rval: int, val_ea: ida_idaapi.ea_t, val_flags: uint16=0) -> reg_value_info_t

# 0: make_num(rval: int, insn: const insn_t &, val_flags: uint16=0) -> reg_value_info_t

Return the value that is the RVAL number. 


# 1: make_num(rval: int, val_ea: ida_idaapi.ea_t, val_flags: uint16=0) -> reg_value_info_t

Return the value that is the RVAL number. 

◆ make_unkfunc()

'reg_value_info_t' make_unkfunc ( ida_idaapi.ea_t func_ea)
static
Return the unknown value from the function start. 

◆ make_unkinsn()

'reg_value_info_t' make_unkinsn ( 'insn_t const &' insn)
static
Return the unknown value after executing the insn. 

◆ make_unkloop()

'reg_value_info_t' make_unkloop ( ida_idaapi.ea_t bblk_ea)
static
Return the unknown value if it changes in a loop. 

◆ make_unkmult()

'reg_value_info_t' make_unkmult ( ida_idaapi.ea_t bblk_ea)
static
Return the unknown value if the register has incompatible values. 

◆ make_unkvals()

'reg_value_info_t' make_unkvals ( ida_idaapi.ea_t bblk_ea)
static
Return the unknown value if the register has too many values. 

◆ make_unkxref()

'reg_value_info_t' make_unkxref ( ida_idaapi.ea_t bblk_ea)
static
Return the unknown value if there are too many xrefs. 

◆ movt()

None movt ( self,
'reg_value_info_t' r,
'insn_t const &' insn )
Replace the top 16 bits with bottom 16 bits of R, leaving the bottom 16 bits untouched, save INSN as a defining instruction. 

◆ neg()

None neg ( self,
'insn_t const &' insn )
Negate the value, save INSN as a defining instruction.

◆ set_aborted()

None set_aborted ( self,
ida_idaapi.ea_t bblk_ea )
Set the value after aborting. 

◆ set_all_vals_flag()

None set_all_vals_flag ( self,
'uint16' val_flags )
Set the given flag for each value.

◆ set_all_vals_got_based()

None set_all_vals_got_based ( self)

◆ set_all_vals_pc_based()

None set_all_vals_pc_based ( self)

◆ set_badinsn()

None set_badinsn ( self,
ida_idaapi.ea_t insn_ea )
Set the value to be unknown after a bad insn. 

◆ set_dead_end()

None set_dead_end ( self,
ida_idaapi.ea_t dead_end_ea )
Set the value to be undefined because of a dead end. 

◆ set_num()

None set_num ( self,
* args )
This function has the following signatures:

0. set_num(rval: int, insn: const insn_t &, val_flags: uint16=0) -> None
1. set_num(rvals: uvalvec_t *, insn: const insn_t &) -> None
2. set_num(rval: int, val_ea: ida_idaapi.ea_t, val_flags: uint16=0) -> None

# 0: set_num(rval: int, insn: const insn_t &, val_flags: uint16=0) -> None

Set the value to be a number after executing an insn. 


# 1: set_num(rvals: uvalvec_t *, insn: const insn_t &) -> None

Set the value to be numbers after executing an insn. 


# 2: set_num(rval: int, val_ea: ida_idaapi.ea_t, val_flags: uint16=0) -> None

Set the value to be a number before an address. 

◆ set_unkfunc()

None set_unkfunc ( self,
ida_idaapi.ea_t func_ea )
Set the value to be unknown from the function start. 

◆ set_unkinsn()

None set_unkinsn ( self,
'insn_t const &' insn )
Set the value to be unknown after executing the insn. 

◆ set_unkloop()

None set_unkloop ( self,
ida_idaapi.ea_t bblk_ea )
Set the value to be unknown because it changes in a loop. 

◆ set_unkmult()

None set_unkmult ( self,
ida_idaapi.ea_t bblk_ea )
Set the value to be unknown because the register has incompatible values. 

◆ set_unkvals()

None set_unkvals ( self,
ida_idaapi.ea_t bblk_ea )
Set the value to be unknown because the register has too many values. 

◆ set_unkxref()

None set_unkxref ( self,
ida_idaapi.ea_t bblk_ea )
Set the value to be unknown because there are too many xrefs. 

◆ shift_left()

None shift_left ( self,
int r )
Shift the value left by R, do not change the defining instructions. 

◆ shift_right()

None shift_right ( self,
int r )
Shift the value right by R, do not change the defining instructions. 

◆ sll()

None sll ( self,
'reg_value_info_t' r,
'insn_t const &' insn )
Shift the value left by R, save INSN as a defining instruction. 

◆ slr()

None slr ( self,
'reg_value_info_t' r,
'insn_t const &' insn )
Shift the value right by R, save INSN as a defining instruction. 

◆ sub()

None sub ( self,
'reg_value_info_t' r,
'insn_t const &' insn )
Subtract R from the value, save INSN as a defining instruction. 

◆ swap()

None swap ( self,
'reg_value_info_t' r )

◆ trunc_uval()

None trunc_uval ( self,
'procmod_t' pm )
Truncate the number to the application bitness. 

◆ vals_union()

'reg_value_info_t.set_compare_res_t' vals_union ( self,
'reg_value_info_t' r )
Add values from R into THIS ignoring duplicates. 

@retval EQUAL: THIS is not changed
@retval CONTAINS: THIS is not changed
@retval CONTAINED: THIS is a copy of R
@retval NOT_COMPARABLE: values from R are added to THIS

Member Data Documentation

◆ ADD

ADD = _ida_regfinder.reg_value_info_t_ADD
static

◆ AND

AND = _ida_regfinder.reg_value_info_t_AND
static

◆ AND_NOT

AND_NOT = _ida_regfinder.reg_value_info_t_AND_NOT
static

◆ CONTAINED

CONTAINED = _ida_regfinder.reg_value_info_t_CONTAINED
static

◆ CONTAINS

CONTAINS = _ida_regfinder.reg_value_info_t_CONTAINS
static

◆ EQUAL

EQUAL = _ida_regfinder.reg_value_info_t_EQUAL
static

◆ MOVT

MOVT = _ida_regfinder.reg_value_info_t_MOVT
static

◆ NEG

NEG = _ida_regfinder.reg_value_info_t_NEG
static

◆ NOT

NOT = _ida_regfinder.reg_value_info_t_NOT
static

◆ NOT_COMPARABLE

NOT_COMPARABLE = _ida_regfinder.reg_value_info_t_NOT_COMPARABLE
static

◆ OR

OR = _ida_regfinder.reg_value_info_t_OR
static

◆ SLL

SLL = _ida_regfinder.reg_value_info_t_SLL
static

◆ SLR

SLR = _ida_regfinder.reg_value_info_t_SLR
static

◆ SUB

SUB = _ida_regfinder.reg_value_info_t_SUB
static

◆ XOR

XOR = _ida_regfinder.reg_value_info_t_XOR
static

Property Documentation

◆ thisown

thisown
static
Initial value:
= property(lambda x: x.this.own(), lambda x, v: x.this.own(v),
doc='The membership flag')

The documentation for this class was generated from the following file: