diff options
Diffstat (limited to 'example/expression')
| -rw-r--r-- | example/expression/access_c.py | 8 | ||||
| -rw-r--r-- | example/expression/asm_to_ir.py | 6 | ||||
| -rw-r--r-- | example/expression/constant_propagation.py | 10 | ||||
| -rw-r--r-- | example/expression/get_read_write.py | 6 | ||||
| -rw-r--r-- | example/expression/graph_dataflow.py | 20 |
5 files changed, 25 insertions, 25 deletions
diff --git a/example/expression/access_c.py b/example/expression/access_c.py index fd50a917..e2f1c6f5 100644 --- a/example/expression/access_c.py +++ b/example/expression/access_c.py @@ -151,21 +151,21 @@ addr_head = 0 asmcfg = mdis.dis_multiblock(addr_head) lbl_head = loc_db.get_offset_location(addr_head) -ir_arch_a = lifter_model_call(loc_db) -ircfg = ir_arch_a.new_ircfg_from_asmcfg(asmcfg) +lifter = lifter_model_call(loc_db) +ircfg = lifter.new_ircfg_from_asmcfg(asmcfg) open('graph_irflow.dot', 'w').write(ircfg.dot()) # Main function's first argument's type is "struct ll_human*" ptr_llhuman = types_mngr.get_objc(CTypePtr(CTypeStruct('ll_human'))) arg0 = ExprId('ptr', 64) -ctx = {ir_arch_a.arch.regs.RDI: arg0} +ctx = {lifter.arch.regs.RDI: arg0} expr_types = {arg0: (ptr_llhuman,), ExprInt(0x8A, 64): (ptr_llhuman,)} mychandler = MyCHandler(types_mngr, expr_types) -for expr in get_funcs_arg0(ctx, ir_arch_a, ircfg, lbl_head): +for expr in get_funcs_arg0(ctx, lifter, ircfg, lbl_head): print("Access:", expr) for c_str, ctype in mychandler.expr_to_c_and_types(expr): print('\taccess:', c_str) diff --git a/example/expression/asm_to_ir.py b/example/expression/asm_to_ir.py index 9be7d1b3..635c12c2 100644 --- a/example/expression/asm_to_ir.py +++ b/example/expression/asm_to_ir.py @@ -43,9 +43,9 @@ print(loc_db) patches = asmblock.asm_resolve_final(mn_x86, asmcfg) # Translate to IR -ir_arch = LifterModelCall_x86_32(loc_db) -ircfg = ir_arch.new_ircfg_from_asmcfg(asmcfg) -deadrm = DeadRemoval(ir_arch) +lifter = LifterModelCall_x86_32(loc_db) +ircfg = lifter.new_ircfg_from_asmcfg(asmcfg) +deadrm = DeadRemoval(lifter) # Display IR diff --git a/example/expression/constant_propagation.py b/example/expression/constant_propagation.py index 0ea8028c..20c2c3cc 100644 --- a/example/expression/constant_propagation.py +++ b/example/expression/constant_propagation.py @@ -30,16 +30,16 @@ machine = Machine("x86_32") loc_db = LocationDB() cont = Container.from_stream(open(args.filename, 'rb'), loc_db) mdis = machine.dis_engine(cont.bin_stream, loc_db=loc_db) -ir_arch = machine.lifter_model_call(mdis.loc_db) +lifter = machine.lifter_model_call(mdis.loc_db) addr = int(args.address, 0) -deadrm = DeadRemoval(ir_arch) +deadrm = DeadRemoval(lifter) asmcfg = mdis.dis_multiblock(addr) -ircfg = ir_arch.new_ircfg_from_asmcfg(asmcfg) +ircfg = lifter.new_ircfg_from_asmcfg(asmcfg) entry_points = set([mdis.loc_db.get_offset_location(addr)]) -init_infos = ir_arch.arch.regs.regs_init -cst_propag_link = propagate_cst_expr(ir_arch, ircfg, addr, init_infos) +init_infos = lifter.arch.regs.regs_init +cst_propag_link = propagate_cst_expr(lifter, ircfg, addr, init_infos) if args.simplify: ircfg.simplify(expr_simp) diff --git a/example/expression/get_read_write.py b/example/expression/get_read_write.py index 752c4272..69bb2aac 100644 --- a/example/expression/get_read_write.py +++ b/example/expression/get_read_write.py @@ -16,11 +16,11 @@ Get read/written registers for a given instruction """) arch = mn_x86 -ir_arch = LifterModelCall_x86_32(loc_db) -ircfg = ir_arch.new_ircfg() +lifter = LifterModelCall_x86_32(loc_db) +ircfg = lifter.new_ircfg() instr = arch.fromstring('LODSB', loc_db, 32) instr.offset, instr.l = 0, 15 -ir_arch.add_instr_to_ircfg(instr, ircfg) +lifter.add_instr_to_ircfg(instr, ircfg) print('*' * 80) for lbl, irblock in viewitems(ircfg.blocks): diff --git a/example/expression/graph_dataflow.py b/example/expression/graph_dataflow.py index 661d0037..f40646bc 100644 --- a/example/expression/graph_dataflow.py +++ b/example/expression/graph_dataflow.py @@ -26,9 +26,9 @@ def get_node_name(label, i, n): return n_name -def intra_block_flow_symb(ir_arch, _, flow_graph, irblock, in_nodes, out_nodes): - symbols_init = ir_arch.arch.regs.regs_init.copy() - sb = SymbolicExecutionEngine(ir_arch, symbols_init) +def intra_block_flow_symb(lifter, _, flow_graph, irblock, in_nodes, out_nodes): + symbols_init = lifter.arch.regs.regs_init.copy() + sb = SymbolicExecutionEngine(lifter, symbols_init) sb.eval_updt_irblock(irblock) print('*' * 40) print(irblock) @@ -85,7 +85,7 @@ def node2str(node): return out -def gen_block_data_flow_graph(ir_arch, ircfg, ad, block_flow_cb): +def gen_block_data_flow_graph(lifter, ircfg, ad, block_flow_cb): for irblock in viewvalues(ircfg.blocks): print(irblock) @@ -111,7 +111,7 @@ def gen_block_data_flow_graph(ir_arch, ircfg, ad, block_flow_cb): irb_out_nodes[label] = {} for label, irblock in viewitems(ircfg.blocks): - block_flow_cb(ir_arch, ircfg, flow_graph, irblock, irb_in_nodes[label], irb_out_nodes[label]) + block_flow_cb(lifter, ircfg, flow_graph, irblock, irb_in_nodes[label], irb_out_nodes[label]) for label in ircfg.blocks: print(label) @@ -119,7 +119,7 @@ def gen_block_data_flow_graph(ir_arch, ircfg, ad, block_flow_cb): print('OUT', [str(x) for x in irb_out_nodes[label]]) print('*' * 20, 'interblock', '*' * 20) - inter_block_flow(ir_arch, ircfg, flow_graph, irblock_0.loc_key, irb_in_nodes, irb_out_nodes) + inter_block_flow(lifter, ircfg, flow_graph, irblock_0.loc_key, irb_in_nodes, irb_out_nodes) # from graph_qt import graph_qt # graph_qt(flow_graph) @@ -139,9 +139,9 @@ print('ok') print('generating dataflow graph for:') -ir_arch_analysis = machine.lifter_model_call(loc_db) -ircfg = ir_arch_analysis.new_ircfg_from_asmcfg(asmcfg) -deadrm = DeadRemoval(ir_arch_analysis) +lifter = machine.lifter_model_call(loc_db) +ircfg = lifter.new_ircfg_from_asmcfg(asmcfg) +deadrm = DeadRemoval(lifter) for irblock in viewvalues(ircfg.blocks): @@ -153,7 +153,7 @@ if args.symb: else: block_flow_cb = intra_block_flow_raw -gen_block_data_flow_graph(ir_arch_analysis, ircfg, ad, block_flow_cb) +gen_block_data_flow_graph(lifter, ircfg, ad, block_flow_cb) print('*' * 40) print(""" |