diff options
| -rw-r--r-- | example/disasm/dis_binary_lift_model_call.py | 6 | ||||
| -rw-r--r-- | example/disasm/full.py | 18 | ||||
| -rw-r--r-- | test/analysis/unssa.py | 17 |
3 files changed, 12 insertions, 29 deletions
diff --git a/example/disasm/dis_binary_lift_model_call.py b/example/disasm/dis_binary_lift_model_call.py index 3d5c27ba..b2954dd9 100644 --- a/example/disasm/dis_binary_lift_model_call.py +++ b/example/disasm/dis_binary_lift_model_call.py @@ -32,11 +32,11 @@ asmcfg = mdis.dis_multiblock(addr) lifter = machine.lifter_model_call(mdis.loc_db) # Get the IR of the asmcfg -ircfg_analysis = lifter.new_ircfg_from_asmcfg(asmcfg) +ircfg = lifter.new_ircfg_from_asmcfg(asmcfg) # Display each IR basic blocks -for irblock in viewvalues(ircfg_analysis.blocks): +for irblock in viewvalues(ircfg.blocks): print(irblock) # Output ir control flow graph in a dot file -open('bin_lifter_model_call_cfg.dot', 'w').write(ircfg_analysis.dot()) +open('bin_lifter_model_call_cfg.dot', 'w').write(ircfg.dot()) diff --git a/example/disasm/full.py b/example/disasm/full.py index 3408e6d7..444e7327 100644 --- a/example/disasm/full.py +++ b/example/disasm/full.py @@ -237,7 +237,7 @@ if args.gen_ir: lifter_model_call = LifterDelModCallStack(mdis.loc_db) ircfg = lifter.new_ircfg() - ircfg_a = lifter.new_ircfg() + ircfg_model_call = lifter.new_ircfg() head = list(entry_points)[0] @@ -245,7 +245,7 @@ if args.gen_ir: log.info("generating IR... %x" % ad) for block in asmcfg.blocks: lifter.add_asmblock_to_ircfg(block, ircfg) - lifter_model_call.add_asmblock_to_ircfg(block, ircfg_a) + lifter_model_call.add_asmblock_to_ircfg(block, ircfg_model_call) log.info("Print blocks (without analyse)") for label, block in viewitems(ircfg.blocks): @@ -254,30 +254,30 @@ if args.gen_ir: log.info("Gen Graph... %x" % ad) log.info("Print blocks (with analyse)") - for label, block in viewitems(ircfg_a.blocks): + for label, block in viewitems(ircfg_model_call.blocks): print(block) if args.simplify > 0: log.info("Simplify...") ircfg_simplifier = IRCFGSimplifierCommon(lifter_model_call) - ircfg_simplifier.simplify(ircfg_a, head) + ircfg_simplifier.simplify(ircfg_model_call, head) log.info("ok...") if args.defuse: - reachings = ReachingDefinitions(ircfg_a) + reachings = ReachingDefinitions(ircfg_model_call) open('graph_defuse.dot', 'w').write(DiGraphDefUse(reachings).dot()) out = ircfg.dot() open('graph_irflow_raw.dot', 'w').write(out) - out = ircfg_a.dot() + out = ircfg_model_call.dot() open('graph_irflow.dot', 'w').write(out) if args.ssa and not args.propagexpr: if len(entry_points) != 1: raise RuntimeError("Your graph should have only one head") - ssa = SSADiGraph(ircfg_a) + ssa = SSADiGraph(ircfg_model_call) ssa.transform(head) - open("ssa.dot", "w").write(ircfg_a.dot()) + open("ssa.dot", "w").write(ircfg_model_call.dot()) if args.propagexpr: @@ -315,5 +315,5 @@ if args.propagexpr: head = list(entry_points)[0] simplifier = CustomIRCFGSimplifierSSA(lifter_model_call) - ircfg = simplifier.simplify(ircfg_a, head) + ircfg = simplifier.simplify(ircfg_model_call, head) open('final.dot', 'w').write(ircfg.dot()) diff --git a/test/analysis/unssa.py b/test/analysis/unssa.py index 7f03e3f8..a6d2e177 100644 --- a/test/analysis/unssa.py +++ b/test/analysis/unssa.py @@ -574,23 +574,6 @@ class IRAOutRegs(IRATest): return set(viewvalues(out)) - -def add_out_reg_end(lifter_a, ircfg_a): - # Add dummy dependency to uncover out regs affectation - for loc in ircfg_a.leaves(): - irblock = ircfg_a.blocks.get(loc) - if irblock is None: - continue - regs = {} - for reg in lifter.get_out_regs(irblock): - regs[reg] = reg - assignblks = list(irblock) - new_assiblk = AssignBlock(regs, assignblks[-1].instr) - assignblks.append(new_assiblk) - new_irblock = IRBlock(loc_db, irblock.loc_key, assignblks) - ircfg_a.blocks[loc] = new_irblock - - lifter = IRAOutRegs(loc_db) |