miasm
Reverse engineering framework
|
Public Member Functions | |
def | call_effects (self, addr, 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.ir.ir.IntermediateRepresentation | |
def | __init__ (self, arch, attrib, loc_db) |
def | get_ir (self, instr) |
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) |
Static Public Attributes | |
ret_reg = None | |
Additional Inherited Members | |
Public Attributes inherited from miasm.ir.ir.IntermediateRepresentation | |
pc | |
sp | |
arch | |
attrib | |
loc_db | |
IRDst | |
IR Analysis This class provides higher level manipulations on IR, such as dead instruction removals. This class can be used as a common parent with `miasm.ir.ir::IntermediateRepresentation` class. For instance: class ira_x86_16(ir_x86_16, ira)
def miasm.ir.analysis.ira.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. If the instruction is a function call, replace the original IR by a model of the sub function Returns a bool: * True if the current assignments list must be split * False in other cases. @instr: native instruction @block: native block source @assignments: current irbloc @ir_blocks_all: list of additional effects @gen_pc_updt: insert PC update effects between instructions
Reimplemented from miasm.ir.ir.IntermediateRepresentation.
Reimplemented in miasm.arch.ppc.ira.ir_a_ppc32b.
def miasm.ir.analysis.ira.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 in miasm.arch.msp430.ira.ir_a_msp430_base, miasm.arch.x86.ira.ir_a_x86_64, miasm.arch.ppc.ira.ir_a_ppc32b, miasm.arch.mips32.ira.ir_a_mips32l, and miasm.arch.arm.ira.ir_a_arml.
def miasm.ir.analysis.ira.sizeof_char | ( | self | ) |
def miasm.ir.analysis.ira.sizeof_int | ( | self | ) |
def miasm.ir.analysis.ira.sizeof_long | ( | self | ) |
def miasm.ir.analysis.ira.sizeof_pointer | ( | self | ) |
def miasm.ir.analysis.ira.sizeof_short | ( | self | ) |
|
static |