summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2019-04-22 16:40:59 -0400
committerBrian Potchik <brian@vector35.com>2019-04-22 16:40:59 -0400
commit88043ec27091e58ed88f3a3d09ef726425c7dd8e (patch)
treeff53d7967e7c2b8cadd540355925aa14bf56cbbd
parent9969e70ed879fbfa2bf9fdecf2d9012795bed1a3 (diff)
Updates to support get_ssa function returning Instructions instead of indices.
-rw-r--r--python/examples/triage/imports.py6
-rw-r--r--suite/testcommon.py10
2 files changed, 8 insertions, 8 deletions
diff --git a/python/examples/triage/imports.py b/python/examples/triage/imports.py
index 008d22e3..3e09b93d 100644
--- a/python/examples/triage/imports.py
+++ b/python/examples/triage/imports.py
@@ -47,7 +47,7 @@ def get_platform_info(bv):
return result
def propagate_var_name(func, mlil_ssa_func, ssa_var, name, ty):
- instructions = mlil_ssa_func.get_ssa_var_uses(ssa_var)
+ instructions = list(map(lambda instr: instr.instr_index, mlil_ssa_func.get_ssa_var_uses(ssa_var)))
seen_instructions = set()
handled_vars = set([ssa_var])
@@ -67,7 +67,7 @@ def propagate_var_name(func, mlil_ssa_func, ssa_var, name, ty):
handled_vars.add(instruction.dest)
- for use in mlil_ssa_func.get_ssa_var_uses(instruction.dest):
+ for use in list(map(lambda instr: instr.instr_index, mlil_ssa_func.get_ssa_var_uses(instruction.dest))):
if use not in seen_instructions:
instructions.append(use)
@@ -87,7 +87,7 @@ def propagate_var_name(func, mlil_ssa_func, ssa_var, name, ty):
continue
handled_vars.add(instruction.dest)
- for use in mlil_ssa_func.get_ssa_var_uses(instruction.dest):
+ for use in list(map(lambda instr: instr.instr_index, mlil_ssa_func.get_ssa_var_uses(instruction.dest))):
if use not in seen_instructions:
instructions.append(use)
diff --git a/suite/testcommon.py b/suite/testcommon.py
index f221bbef..70f815a0 100644
--- a/suite/testcommon.py
+++ b/suite/testcommon.py
@@ -196,12 +196,12 @@ class BinaryViewTestBuilder(Builder):
func = func.low_level_il
for reg_name in self.bv.arch.regs:
reg = binja.SSARegister(reg_name, 1)
- retinfo.append("Reg {} SSA definition: ".format(reg_name) + str(func.get_ssa_reg_definition(reg)))
- retinfo.append("Reg {} SSA uses: ".format(reg_name) + str(func.get_ssa_reg_uses(reg)))
+ retinfo.append("Reg {} SSA definition: ".format(reg_name) + str(getattr(func.get_ssa_reg_definition(reg), 'instr_index', None)))
+ retinfo.append("Reg {} SSA uses: ".format(reg_name) + str(list(map(lambda instr: instr.instr_index, func.get_ssa_reg_uses(reg)))))
retinfo.append("Reg {} SSA value: ".format(reg_name) + str(func.get_ssa_reg_value(reg)))
for flag_name in self.bv.arch.flags:
flag = binja.SSAFlag(flag_name, 1)
- retinfo.append("Flag {} SSA uses: ".format(flag_name) + str(func.get_ssa_flag_uses(flag)))
+ retinfo.append("Flag {} SSA uses: ".format(flag_name) + str(list(map(lambda instr: instr.instr_index, func.get_ssa_flag_uses(flag)))))
retinfo.append("Flag {} SSA value: ".format(flag_name) + str(func.get_ssa_flag_value(flag)))
for bb in func.basic_blocks:
for ins in bb:
@@ -257,8 +257,8 @@ class BinaryViewTestBuilder(Builder):
instruction = instruction.ssa_form
for var in (instruction.vars_read + instruction.vars_written):
if hasattr(var, "var"):
- varlist.append("SSA var definition: " + str(func.get_ssa_var_definition(var)))
- varlist.append("SSA var uses: " + str(func.get_ssa_var_uses(var)))
+ varlist.append("SSA var definition: " + str(getattr(func.get_ssa_var_definition(var), 'instr_index', None)))
+ varlist.append("SSA var uses: " + str(list(map(lambda instr: instr.instr_index, func.get_ssa_var_uses(var)))))
varlist.append("SSA var value: " + str(func.get_ssa_var_value(var)))
varlist.append("SSA var possible values: " + fixSet(str(instruction.get_ssa_var_possible_values(var))))
varlist.append("SSA var version: " + str(instruction.get_ssa_var_version))