miasm
Reverse engineering framework
miasm.arch.ppc.ira.ir_a_ppc32b Class Reference
Inheritance diagram for miasm.arch.ppc.ira.ir_a_ppc32b:
Collaboration diagram for miasm.arch.ppc.ira.ir_a_ppc32b:

Public Member Functions

def __init__ (self, loc_db, *args)
 
def set_dead_regs (self, irblock)
 
def get_out_regs (self, _)
 
def add_unused_regs (self)
 
def call_effects (self, ad, instr)
 
def add_instr_to_current_state (self, instr, block, assignments, ir_blocks_all, gen_pc_updt)
 
def sizeof_char (self)
 
def sizeof_short (self)
 
def sizeof_int (self)
 
def sizeof_long (self)
 
def sizeof_pointer (self)
 
- Public Member Functions inherited from miasm.arch.ppc.sem.ir_ppc32b
def __init__ (self, loc_db)
 
def get_ir (self, instr)
 
def get_next_instr (self, instr)
 
def get_next_break_loc_key (self, instr)
 
- Public Member Functions inherited from miasm.ir.ir.IntermediateRepresentation
def __init__ (self, arch, attrib, loc_db)
 
def new_ircfg (self, *args, **kwargs)
 
def new_ircfg_from_asmcfg (self, asmcfg, *args, **kwargs)
 
def instr2ir (self, instr)
 
def add_instr_to_ircfg (self, instr, ircfg, loc_key=None, gen_pc_updt=False)
 
def gen_pc_update (self, assignments, instr)
 
def add_asmblock_to_ircfg (self, block, ircfg, gen_pc_updt=False)
 
def add_block (self, block, gen_pc_updt=False)
 
def add_bloc (self, block, gen_pc_updt=False)
 
def get_next_loc_key (self, instr)
 
def get_loc_key_for_instr (self, instr)
 
def gen_loc_key_and_expr (self, size)
 
def expr_fix_regs_for_mode (self, expr, *args, **kwargs)
 
def expraff_fix_regs_for_mode (self, expr, *args, **kwargs)
 
def irbloc_fix_regs_for_mode (self, irblock, *args, **kwargs)
 
def is_pc_written (self, block)
 
def set_empty_dst_to_next (self, block, ir_blocks)
 
def post_add_asmblock_to_ircfg (self, block, ircfg, ir_blocks)
 

Public Attributes

 ret_reg
 
- Public Attributes inherited from miasm.arch.ppc.sem.ir_ppc32b
 pc
 
 sp
 
 IRDst
 
 addrsize
 
- Public Attributes inherited from miasm.ir.ir.IntermediateRepresentation
 pc
 
 sp
 
 arch
 
 attrib
 
 loc_db
 
 IRDst
 

Additional Inherited Members

- Static Public Attributes inherited from miasm.ir.analysis.ira
 ret_reg = None
 

Constructor & Destructor Documentation

◆ __init__()

def miasm.arch.ppc.ira.ir_a_ppc32b.__init__ (   self,
  loc_db,
args 
)

Member Function Documentation

◆ add_instr_to_current_state()

def miasm.arch.ppc.ira.ir_a_ppc32b.add_instr_to_current_state (   self,
  instr,
  block,
  assignments,
  ir_blocks_all,
  gen_pc_updt 
)
Add the IR effects of an instruction to the current state.

@instr: native instruction
@block: native block source
@assignments: list of current AssignBlocks
@ir_blocks_all: list of additional effects
@gen_pc_updt: insert PC update effects between instructions

Reimplemented from miasm.ir.analysis.ira.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ add_unused_regs()

def miasm.arch.ppc.ira.ir_a_ppc32b.add_unused_regs (   self)
Here is the call graph for this function:

◆ call_effects()

def miasm.arch.ppc.ira.ir_a_ppc32b.call_effects (   self,
  addr,
  instr 
)
Default modelisation of a function call to @addr. This may be used to:

* insert dependencies to arguments (stack base, registers, ...)
* add some side effects (stack clean, return value, ...)

Return a couple:
* list of assignments to add to the current irblock
* list of additional irblocks

@addr: (Expr) address of the called function
@instr: native instruction which is responsible of the call

Reimplemented from miasm.ir.analysis.ira.

Here is the caller graph for this function:

◆ get_out_regs()

def miasm.arch.ppc.ira.ir_a_ppc32b.get_out_regs (   self,
  _ 
)

◆ set_dead_regs()

def miasm.arch.ppc.ira.ir_a_ppc32b.set_dead_regs (   self,
  irblock 
)
Here is the caller graph for this function:

◆ sizeof_char()

def miasm.arch.ppc.ira.ir_a_ppc32b.sizeof_char (   self)

Reimplemented from miasm.ir.analysis.ira.

◆ sizeof_int()

def miasm.arch.ppc.ira.ir_a_ppc32b.sizeof_int (   self)

Reimplemented from miasm.ir.analysis.ira.

◆ sizeof_long()

def miasm.arch.ppc.ira.ir_a_ppc32b.sizeof_long (   self)

Reimplemented from miasm.ir.analysis.ira.

◆ sizeof_pointer()

def miasm.arch.ppc.ira.ir_a_ppc32b.sizeof_pointer (   self)

Reimplemented from miasm.ir.analysis.ira.

◆ sizeof_short()

def miasm.arch.ppc.ira.ir_a_ppc32b.sizeof_short (   self)

Reimplemented from miasm.ir.analysis.ira.

Member Data Documentation

◆ ret_reg

miasm.arch.ppc.ira.ir_a_ppc32b.ret_reg

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