![]() |
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) |