miasm
Reverse engineering framework
|
Classes | |
class | Arch |
class | CustomIRCFGSimplifierSSA |
class | IRAOutRegs |
class | IRATest |
class | Regs |
Functions | |
def | gen_irblock (label, exprs_list) |
def | add_out_reg_end (ir_arch_a, ircfg_a) |
Variables | |
loc_db = LocationDB() | |
a = ExprId("a", 32) | |
b = ExprId("b", 32) | |
c = ExprId("c", 32) | |
d = ExprId("d", 32) | |
r = ExprId("r", 32) | |
x = ExprId("x", 32) | |
y = ExprId("y", 32) | |
u8 = ExprId("u8", 8) | |
zf = ExprId('zf', 1) | |
a_init = ExprId("a_init", 32) | |
b_init = ExprId("b_init", 32) | |
c_init = ExprId("c_init", 32) | |
d_init = ExprId("d_init", 32) | |
r_init = ExprId("r_init", 32) | |
pc = ExprId("pc", 32) | |
sp = ExprId("sp", 32) | |
CST0 = ExprInt(0x0, 32) | |
CST1 = ExprInt(0x1, 32) | |
CST2 = ExprInt(0x2, 32) | |
CST3 = ExprInt(0x3, 32) | |
CSTX_8 = ExprInt(12, 8) | |
LBL0 = loc_db.add_location("lbl0", 0) | |
LBL1 = loc_db.add_location("lbl1", 1) | |
LBL2 = loc_db.add_location("lbl2", 2) | |
LBL3 = loc_db.add_location("lbl3", 3) | |
LBL4 = loc_db.add_location("lbl4", 4) | |
LBL5 = loc_db.add_location("lbl5", 5) | |
LBL6 = loc_db.add_location("lbl6", 6) | |
LBL7 = loc_db.add_location("lbl7", 7) | |
IRDst = ExprId('IRDst', 32) | |
dummy = ExprId('dummy', 32) | |
IRA = IRATest(loc_db) | |
END = ExprId("END", IRDst.size) | |
G0_IRA = IRA.new_ircfg() | |
def | G0_IRB0 |
def | G0_IRB1 |
def | G0_IRB2 |
G1_IRA = IRA.new_ircfg() | |
def | G1_IRB0 |
def | G1_IRB1 |
def | G1_IRB2 |
def | G1_IRB3 |
G2_IRA = IRA.new_ircfg() | |
def | G2_IRB0 |
def | G2_IRB1 |
def | G2_IRB2 |
G3_IRA = IRA.new_ircfg() | |
def | G3_IRB0 |
def | G3_IRB1 |
def | G3_IRB2 |
def | G3_IRB3 |
def | G3_IRB4 |
def | G3_IRB5 |
G4_IRA = IRA.new_ircfg() | |
def | G4_IRB0 |
def | G4_IRB1 |
def | G4_IRB2 |
def | G4_IRB3 |
def | G4_IRB4 |
def | G4_IRB5 |
G5_IRA = IRA.new_ircfg() | |
def | G5_IRB0 |
def | G5_IRB1 |
def | G5_IRB2 |
G6_IRA = IRA.new_ircfg() | |
def | G6_IRB0 |
def | G6_IRB1 |
def | G6_IRB2 |
def | G6_IRB3 |
def | G6_IRB4 |
def | G6_IRB5 |
G7_IRA = IRA.new_ircfg() | |
def | G7_IRB0 |
def | G7_IRB1 |
def | G7_IRB2 |
def | G7_IRB3 |
def | G7_IRB4 |
def | G7_IRB5 |
G8_IRA = IRA.new_ircfg() | |
def | G8_IRB0 |
def | G8_IRB1 |
def | G8_IRB2 |
def | G8_IRB3 |
def | G8_IRB4 |
def | G8_IRB5 |
def | G8_IRB6 |
def | G8_IRB7 |
G9_IRA = IRA.new_ircfg() | |
def | G9_IRB0 |
def | G9_IRB1 |
def | G9_IRB2 |
G10_IRA = IRA.new_ircfg() | |
def | G10_IRB0 |
def | G10_IRB1 |
def | G10_IRB2 |
ir_arch_a = IRAOutRegs(loc_db) | |
ircfg_orig = IRCFG(IRDst, loc_db) | |
head = LBL0 | |
simplifier = CustomIRCFGSimplifierSSA(ir_arch_a) | |
ircfg = simplifier(ircfg, head) | |
Test cases for dead code elimination
def unssa.add_out_reg_end | ( | ir_arch_a, | |
ircfg_a | |||
) |
def unssa.gen_irblock | ( | label, | |
exprs_list | |||
) |
unssa.a = ExprId("a", 32) |
unssa.a_init = ExprId("a_init", 32) |
unssa.b = ExprId("b", 32) |
unssa.b_init = ExprId("b_init", 32) |
unssa.c = ExprId("c", 32) |
unssa.c_init = ExprId("c_init", 32) |
unssa.CST0 = ExprInt(0x0, 32) |
unssa.CST1 = ExprInt(0x1, 32) |
unssa.CST2 = ExprInt(0x2, 32) |
unssa.CST3 = ExprInt(0x3, 32) |
unssa.CSTX_8 = ExprInt(12, 8) |
unssa.d = ExprId("d", 32) |
unssa.d_init = ExprId("d_init", 32) |
unssa.dummy = ExprId('dummy', 32) |
unssa.END = ExprId("END", IRDst.size) |
unssa.G0_IRA = IRA.new_ircfg() |
def unssa.G0_IRB0 |
def unssa.G0_IRB1 |
def unssa.G0_IRB2 |
unssa.G10_IRA = IRA.new_ircfg() |
def unssa.G10_IRB0 |
def unssa.G10_IRB1 |
def unssa.G10_IRB2 |
unssa.G1_IRA = IRA.new_ircfg() |
def unssa.G1_IRB0 |
def unssa.G1_IRB1 |
def unssa.G1_IRB2 |
def unssa.G1_IRB3 |
unssa.G2_IRA = IRA.new_ircfg() |
def unssa.G2_IRB0 |
def unssa.G2_IRB1 |
def unssa.G2_IRB2 |
unssa.G3_IRA = IRA.new_ircfg() |
def unssa.G3_IRB0 |
def unssa.G3_IRB1 |
def unssa.G3_IRB2 |
def unssa.G3_IRB3 |
def unssa.G3_IRB4 |
def unssa.G3_IRB5 |
unssa.G4_IRA = IRA.new_ircfg() |
def unssa.G4_IRB0 |
def unssa.G4_IRB1 |
def unssa.G4_IRB2 |
def unssa.G4_IRB3 |
def unssa.G4_IRB4 |
def unssa.G4_IRB5 |
unssa.G5_IRA = IRA.new_ircfg() |
def unssa.G5_IRB0 |
def unssa.G5_IRB1 |
def unssa.G5_IRB2 |
unssa.G6_IRA = IRA.new_ircfg() |
def unssa.G6_IRB0 |
def unssa.G6_IRB1 |
def unssa.G6_IRB2 |
def unssa.G6_IRB3 |
def unssa.G6_IRB4 |
def unssa.G6_IRB5 |
unssa.G7_IRA = IRA.new_ircfg() |
def unssa.G7_IRB0 |
def unssa.G7_IRB1 |
def unssa.G7_IRB2 |
def unssa.G7_IRB3 |
def unssa.G7_IRB4 |
def unssa.G7_IRB5 |
unssa.G8_IRA = IRA.new_ircfg() |
def unssa.G8_IRB0 |
def unssa.G8_IRB1 |
def unssa.G8_IRB2 |
def unssa.G8_IRB3 |
def unssa.G8_IRB4 |
def unssa.G8_IRB5 |
def unssa.G8_IRB6 |
def unssa.G8_IRB7 |
unssa.G9_IRA = IRA.new_ircfg() |
def unssa.G9_IRB0 |
def unssa.G9_IRB1 |
def unssa.G9_IRB2 |
unssa.head = LBL0 |
unssa.ir_arch_a = IRAOutRegs(loc_db) |
unssa.ircfg = simplifier(ircfg, head) |
unssa.IRDst = ExprId('IRDst', 32) |
unssa.LBL0 = loc_db.add_location("lbl0", 0) |
unssa.LBL1 = loc_db.add_location("lbl1", 1) |
unssa.LBL2 = loc_db.add_location("lbl2", 2) |
unssa.LBL3 = loc_db.add_location("lbl3", 3) |
unssa.LBL4 = loc_db.add_location("lbl4", 4) |
unssa.LBL5 = loc_db.add_location("lbl5", 5) |
unssa.LBL6 = loc_db.add_location("lbl6", 6) |
unssa.LBL7 = loc_db.add_location("lbl7", 7) |
unssa.loc_db = LocationDB() |
unssa.pc = ExprId("pc", 32) |
unssa.r = ExprId("r", 32) |
unssa.r_init = ExprId("r_init", 32) |
unssa.simplifier = CustomIRCFGSimplifierSSA(ir_arch_a) |
unssa.sp = ExprId("sp", 32) |
unssa.u8 = ExprId("u8", 8) |
unssa.x = ExprId("x", 32) |
unssa.y = ExprId("y", 32) |
unssa.zf = ExprId('zf', 1) |