IDAPython 8.4
Loading...
Searching...
No Matches
reg_value_info_t Class Reference

Proxy of C++ reg_value_info_t class.

Inheritance diagram for reg_value_info_t:

Public Member Functions

 __init__ (self, *args)
 init(self) -> reg_value_info_t
 
"void" clear (self, *args)
 clear(self) Undefine the value.
 
"bool" empty (self, *args)
 empty(self) -> bool Return 'true' if we know nothing about a value.
 
"bool" is_dead_end (self, *args)
 is_dead_end(self) -> bool Return 'true' if the value is undefined because of a dead end.
 
"bool" aborted (self, *args)
 aborted(self) -> bool Return 'true' if the tracking process was aborted.
 
"bool" is_special (self, *args)
 is_special(self) -> bool Return 'true' if the value requires special handling.
 
"bool" is_badinsn (self, *args)
 is_badinsn(self) -> bool Return 'true' if the value is unknown because of a bad insn.
 
"bool" is_unkinsn (self, *args)
 is_unkinsn(self) -> bool Return 'true' if the value is unknown after executing the insn.
 
"bool" is_unkfunc (self, *args)
 is_unkfunc(self) -> bool Return 'true' if the value is unknown from the function start.
 
"bool" is_unkloop (self, *args)
 is_unkloop(self) -> bool Return 'true' if the value is unknown because it changes in a loop.
 
"bool" is_unkmult (self, *args)
 is_unkmult(self) -> bool Return 'true' if the value is unknown because the register has incompatible values (a number and SP delta).
 
"bool" is_unknown (self, *args)
 is_unknown(self) -> bool Return 'true' if the value is unknown.
 
"bool" is_num (self, *args)
 is_num(self) -> bool Return 'true' if the value is a constant.
 
"bool" is_spd (self, *args)
 is_spd(self) -> bool Return 'true' if the value depends on the stack pointer.
 
"bool" is_known (self, *args)
 is_known(self) -> bool Return 'true' if the value is known (i.e.
 
"bool" get_num (self, *args)
 get_num(self) -> bool Return the number if the value is a constant.
 
"bool" get_spd (self, *args)
 get_spd(self) -> bool Return the SP delta if the value depends on the stack pointer.
 
"ea_t" get_def_ea (self, *args)
 get_def_ea(self) -> ea_t Return the defining address.
 
"uint16" get_def_itype (self, *args)
 get_def_itype(self) -> uint16 Return the defining instruction code (processor specific).
 
"bool" is_value_unique (self, *args)
 is_value_unique(self) -> bool Check that the value is unique.
 
"bool" have_all_vals_flag (self, *args)
 have_all_vals_flag(self, val_flags) -> bool Check the given flag for each value.
 
"bool" is_all_vals_pc_based (self, *args)
 is_all_vals_pc_based(self) -> bool
 
"bool" is_all_vals_like_got (self, *args)
 is_all_vals_like_got(self) -> bool
 
"void" set_dead_end (self, *args)
 set_dead_end(self, dead_end_ea) Set the value to be undefined because of a dead end.
 
"void" set_badinsn (self, *args)
 set_badinsn(self, insn_ea) Set the value to be unknown after a bad insn.
 
"void" set_unkinsn (self, *args)
 set_unkinsn(self, insn) Set the value to be unknown after executing the insn.
 
"void" set_unkfunc (self, *args)
 set_unkfunc(self, func_ea) Set the value to be unknown from the function start.
 
"void" set_unkloop (self, *args)
 set_unkloop(self, bblk_ea) Set the value to be unknown because it changes in a loop.
 
"void" set_unkmult (self, *args)
 set_unkmult(self, bblk_ea) Set the value to be unknown because the register has incompatible values.
 
"void" set_aborted (self, *args)
 set_aborted(self, bblk_ea) Set the value after aborting.
 
"void" set_num (self, *args)
 set_num(self, rval, insn, val_flags=0) Set the value to be a number before an address.
 
"reg_value_info_t::set_compare_res_t" vals_union (self, *args)
 vals_union(self, r) -> reg_value_info_t::set_compare_res_t Add values from R into THIS ignoring duplicates.
 
"void" extend (self, *args)
 extend(self, pm, width, is_signed) Sign-, or zero-extend the number or SP delta value to full size.
 
"void" trunc_uval (self, *args)
 trunc_uval(self, pm) Truncate the number to the application bitness.
 
"void" add (self, *args)
 add(self, r, insn) Add R to the value, save INSN as a defining instruction.
 
"void" sub (self, *args)
 sub(self, r, insn) Subtract R from the value, save INSN as a defining instruction.
 
"void" bor (self, *args)
 bor(self, r, insn) Make bitwise OR of R to the value, save INSN as a defining instruction.
 
"void" band (self, *args)
 band(self, r, insn) Make bitwise AND of R to the value, save INSN as a defining instruction.
 
"void" bxor (self, *args)
 bxor(self, r, insn) Make bitwise eXclusive OR of R to the value, save INSN as a defining instruction.
 
"void" bandnot (self, *args)
 bandnot(self, r, insn) Make bitwise AND of the inverse of R to the value, save INSN as a defining instruction.
 
"void" sll (self, *args)
 sll(self, r, insn) Shift the value left by R, save INSN as a defining instruction.
 
"void" slr (self, *args)
 slr(self, r, insn) Shift the value right by R, save INSN as a defining instruction.
 
"void" neg (self, *args)
 neg(self, insn) Negate the value, save INSN as a defining instruction.
 
"void" bnot (self, *args)
 bnot(self, insn) Make bitwise inverse of the value, save INSN as a defining instruction.
 
"void" add_num (self, *args)
 add_num(self, r, insn) Add R to the value, do not change the defining instructions.
 
"void" shift_left (self, *args)
 shift_left(self, r) Shift the value left by R, do not change the defining instructions.
 
"void" shift_right (self, *args)
 shift_right(self, r) Shift the value right by R, do not change the defining instructions.
 
"qstring" __str__ (self, *args)
 str(self) -> qstring
 
"size_t" __len__ (self, *args)
 len(self) -> size_t
 
"reg_value_def_t const &" __getitem__ (self, *args)
 getitem(self, i) -> reg_value_def_t
 

Static Public Member Functions

"reg_value_info_t" make_dead_end (*args)
 make_dead_end(dead_end_ea) -> reg_value_info_t Return the undefined value because of a dead end.
 
"reg_value_info_t" make_aborted (*args)
 make_aborted(bblk_ea) -> reg_value_info_t Return the value after aborting.
 
"reg_value_info_t" make_badinsn (*args)
 make_badinsn(insn_ea) -> reg_value_info_t Return the unknown value after a bad insn.
 
"reg_value_info_t" make_unkinsn (*args)
 make_unkinsn(insn) -> reg_value_info_t Return the unknown value after executing the insn.
 
"reg_value_info_t" make_unkfunc (*args)
 make_unkfunc(func_ea) -> reg_value_info_t Return the unknown value from the function start.
 
"reg_value_info_t" make_unkloop (*args)
 make_unkloop(bblk_ea) -> reg_value_info_t Return the unknown value if it changes in a loop.
 
"reg_value_info_t" make_unkmult (*args)
 make_unkmult(bblk_ea) -> reg_value_info_t Return the unknown value if the register has incompatible values.
 
"reg_value_info_t" make_num (*args)
 make_num(rval, insn, val_flags=0) -> reg_value_info_t Return the value that is the RVAL number.
 
"reg_value_info_t" make_initial_sp (*args)
 make_initial_sp(func_ea) -> reg_value_info_t Return the value that is the initial stack pointer.
 

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
 
 NEG = _ida_regfinder.reg_value_info_t_NEG
 
 NOT = _ida_regfinder.reg_value_info_t_NOT
 

Properties

 thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
 

Constructor & Destructor Documentation

◆ __init__()

__init__ ( self,
* args )

Member Function Documentation

◆ __getitem__()

"reg_value_def_t const &" __getitem__ ( self,
* args )
Parameters
isize_t

◆ __len__()

"size_t" __len__ ( self,
* args )

◆ __str__()

"qstring" __str__ ( self,
* args )

◆ aborted()

"bool" aborted ( self,
* args )

◆ add()

"void" add ( self,
* args )
Note
: Either THIS or R must have a single value.
Parameters
r(C++: const reg_value_info_t &) reg_value_info_t const &
insn(C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &)

◆ add_num()

"void" add_num ( self,
* args )
Note
: This method do nothing for unknown values.
Parameters
r(C++: uval_t)
insnan ida_ua.insn_t, or an address (C++: const insn_t &)

add_num(self, r)

Parameters
ruval_t

◆ band()

"void" band ( self,
* args )
Note
: Either THIS or R must have a single value.
Parameters
r(C++: const reg_value_info_t &) reg_value_info_t const &
insn(C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &)

◆ bandnot()

"void" bandnot ( self,
* args )
Note
: Either THIS or R must have a single value.
Parameters
r(C++: const reg_value_info_t &) reg_value_info_t const &
insn(C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &)

◆ bnot()

"void" bnot ( self,
* args )
Parameters
insn(C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &)

◆ bor()

"void" bor ( self,
* args )
Note
: Either THIS or R must have a single value.
Parameters
r(C++: const reg_value_info_t &) reg_value_info_t const &
insn(C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &)

◆ bxor()

"void" bxor ( self,
* args )
Note
: Either THIS or R must have a single value.
Parameters
r(C++: const reg_value_info_t &) reg_value_info_t const &
insn(C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &)

◆ clear()

"void" clear ( self,
* args )

◆ empty()

"bool" empty ( self,
* args )

◆ extend()

"void" extend ( self,
* args )

The initial value is considered to be of size WIDTH.

Note
: This method do nothing for unknown values.
Parameters
pm(C++: const procmod_t &) procmod_t const &
width(C++: int)
is_signed(C++: bool)

◆ get_def_ea()

"ea_t" get_def_ea ( self,
* args )

◆ get_def_itype()

"uint16" get_def_itype ( self,
* args )

◆ get_num()

"bool" get_num ( self,
* args )
See also
: is_num()

◆ get_spd()

"bool" get_spd ( self,
* args )
See also
: is_spd()

◆ have_all_vals_flag()

"bool" have_all_vals_flag ( self,
* args )
Parameters
val_flags(C++: uint16)

◆ is_all_vals_like_got()

"bool" is_all_vals_like_got ( self,
* args )

◆ is_all_vals_pc_based()

"bool" is_all_vals_pc_based ( self,
* args )

◆ is_badinsn()

"bool" is_badinsn ( self,
* args )

◆ is_dead_end()

"bool" is_dead_end ( self,
* args )

◆ is_known()

"bool" is_known ( self,
* args )

it is a number or SP delta).

◆ is_num()

"bool" is_num ( self,
* args )

◆ is_spd()

"bool" is_spd ( self,
* args )

◆ is_special()

"bool" is_special ( self,
* args )

◆ is_unkfunc()

"bool" is_unkfunc ( self,
* args )

◆ is_unkinsn()

"bool" is_unkinsn ( self,
* args )

◆ is_unkloop()

"bool" is_unkloop ( self,
* args )

◆ is_unkmult()

"bool" is_unkmult ( self,
* args )

◆ is_unknown()

"bool" is_unknown ( self,
* args )

◆ is_value_unique()

"bool" is_value_unique ( self,
* args )

◆ make_aborted()

"reg_value_info_t" make_aborted ( * args)
static
See also
: aborted()
Parameters
bblk_ea(C++: ea_t)

◆ make_badinsn()

"reg_value_info_t" make_badinsn ( * args)
static
See also
: is_badinsn()
Parameters
insn_ea(C++: ea_t)

◆ make_dead_end()

"reg_value_info_t" make_dead_end ( * args)
static
See also
: is_dead_end()
Parameters
dead_end_ea(C++: ea_t)

◆ make_initial_sp()

"reg_value_info_t" make_initial_sp ( * args)
static
See also
: is_spd()
Parameters
func_ea(C++: ea_t)

◆ make_num()

"reg_value_info_t" make_num ( * args)
static
See also
: is_num()
Parameters
rval(C++: uval_t)
insnan ida_ua.insn_t, or an address (C++: const insn_t &)
val_flags(C++: uint16)

make_num(rval, val_ea, val_flags=0) -> reg_value_info_t

Parameters
rvaluval_t
val_eaea_t
val_flagsuint16

◆ make_unkfunc()

"reg_value_info_t" make_unkfunc ( * args)
static
See also
: is_unkfunc()
Parameters
func_ea(C++: ea_t)

◆ make_unkinsn()

"reg_value_info_t" make_unkinsn ( * args)
static
See also
: is_unkinsn()
Parameters
insn(C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &)

◆ make_unkloop()

"reg_value_info_t" make_unkloop ( * args)
static
See also
: is_unkloop()
Parameters
bblk_ea(C++: ea_t)

◆ make_unkmult()

"reg_value_info_t" make_unkmult ( * args)
static
See also
: is_unkmult()
Parameters
bblk_ea(C++: ea_t)

◆ neg()

"void" neg ( self,
* args )
Parameters
insn(C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &)

◆ set_aborted()

"void" set_aborted ( self,
* args )
See also
: aborted()
Parameters
bblk_ea(C++: ea_t)

◆ set_badinsn()

"void" set_badinsn ( self,
* args )
See also
: is_badinsn()
Parameters
insn_ea(C++: ea_t)

◆ set_dead_end()

"void" set_dead_end ( self,
* args )
See also
: is_dead_end()
Parameters
dead_end_ea(C++: ea_t)

◆ set_num()

"void" set_num ( self,
* args )
See also
: is_num()
Parameters
rval(C++: uval_t)
insnan ida_ua.insn_t, or an address (C++: const insn_t &)
val_flags(C++: uint16)

set_num(self, rvals, insn)

Parameters
rvalsuvalvec_t *
insnan ida_ua.insn_t, or an address (C++: const insn_t &)

set_num(self, rval, val_ea, val_flags=0)

Parameters
rvaluval_t
val_eaea_t
val_flagsuint16

◆ set_unkfunc()

"void" set_unkfunc ( self,
* args )
See also
: is_unkfunc()
Parameters
func_ea(C++: ea_t)

◆ set_unkinsn()

"void" set_unkinsn ( self,
* args )
See also
: is_unkinsn()
Parameters
insn(C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &)

◆ set_unkloop()

"void" set_unkloop ( self,
* args )
See also
: is_unkloop()
Parameters
bblk_ea(C++: ea_t)

◆ set_unkmult()

"void" set_unkmult ( self,
* args )
See also
: is_unkmult()
Parameters
bblk_ea(C++: ea_t)

◆ shift_left()

"void" shift_left ( self,
* args )
Note
: This method do nothing for unknown values.
Parameters
r(C++: uval_t)

◆ shift_right()

"void" shift_right ( self,
* args )
Note
: This method do nothing for unknown values.
Parameters
r(C++: uval_t)

◆ sll()

"void" sll ( self,
* args )
Note
: Either THIS or R must have a single value.
Parameters
r(C++: const reg_value_info_t &) reg_value_info_t const &
insn(C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &)

◆ slr()

"void" slr ( self,
* args )
Note
: Either THIS or R must have a single value.
Parameters
r(C++: const reg_value_info_t &) reg_value_info_t const &
insn(C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &)

◆ sub()

"void" sub ( self,
* args )
Note
: Either THIS or R must have a single value.
Parameters
r(C++: const reg_value_info_t &) reg_value_info_t const &
insn(C++: const insn_t &) an ida_ua.insn_t, or an address (C++: const insn_t &)

◆ trunc_uval()

"void" trunc_uval ( self,
* args )
Note
: This method do nothing for non-number values.
Parameters
pm(C++: const procmod_t &) procmod_t const &

◆ vals_union()

"reg_value_info_t.set_compare_res_t" vals_union ( self,
* args )
Note
: This method is the only way to get multiple values.
Return values
EQUALTHIS is not changed
CONTAINSTHIS is not changed
CONTAINEDTHIS is a copy of R
NOT_COMPARABLEvalues from R are added to THIS
Parameters
r(C++: const reg_value_info_t &) reg_value_info_t const &

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

◆ 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 = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
static

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