summaryrefslogtreecommitdiff
path: root/python/mediumlevelil.py
diff options
context:
space:
mode:
authorKyleMiles <krm504@nyu.edu>2018-05-30 15:41:10 -0400
committerRyan Snyder <ryan@vector35.com>2018-07-10 18:11:09 -0400
commit5cff3bf3cc5aa11875569a6aeddf88ef867411f1 (patch)
tree95d57658dae88fef66196cf8c8ac52e771d73f3d /python/mediumlevelil.py
parent1c03ac08aa94f5bedf21ec8f48ee1ec998e0e50c (diff)
Various Python 3 support changes
Diffstat (limited to 'python/mediumlevelil.py')
-rw-r--r--python/mediumlevelil.py54
1 files changed, 27 insertions, 27 deletions
diff --git a/python/mediumlevelil.py b/python/mediumlevelil.py
index 707915d7..f7e9951a 100644
--- a/python/mediumlevelil.py
+++ b/python/mediumlevelil.py
@@ -21,10 +21,13 @@
import ctypes
import struct
-# Binary Ninja components -- additional imports belong in the appropriate class
+# Binary Ninja components
from binaryninja import _binaryninjacore as core
from binaryninja.enums import MediumLevelILOperation, InstructionTextTokenType, ILBranchDependence
from binaryninja import basicblock #required for MediumLevelILBasicBlock argument
+from binaryninja import function
+from binaryninja import types
+from binaryninja import lowlevelil
# 2-3 compatibility
from six.moves import range
@@ -208,9 +211,6 @@ class MediumLevelILInstruction(object):
}
def __init__(self, func, expr_index, instr_index=None):
- from binaryninja import function
- from binaryninja import types
- from binaryninja import lowlevelil
instr = core.BNGetMediumLevelILByIndex(func.handle, expr_index)
self.function = func
self.expr_index = expr_index
@@ -241,14 +241,14 @@ class MediumLevelILInstruction(object):
elif operand_type == "intrinsic":
value = lowlevelil.ILIntrinsic(func.arch, instr.operands[i])
elif operand_type == "var":
- value = binaryninja.function.Variable.from_identifier(self.function.source_function, instr.operands[i])
+ value = function.Variable.from_identifier(self.function.source_function, instr.operands[i])
elif operand_type == "var_ssa":
- var = binaryninja.function.Variable.from_identifier(self.function.source_function, instr.operands[i])
+ var = function.Variable.from_identifier(self.function.source_function, instr.operands[i])
version = instr.operands[i + 1]
i += 1
value = SSAVariable(var, version)
elif operand_type == "var_ssa_dest_and_src":
- var = binaryninja.function.Variable.from_identifier(self.function.source_function, instr.operands[i])
+ var = function.Variable.from_identifier(self.function.source_function, instr.operands[i])
dest_version = instr.operands[i + 1]
src_version = instr.operands[i + 2]
i += 2
@@ -349,14 +349,14 @@ class MediumLevelILInstruction(object):
def value(self):
"""Value of expression if constant or a known value (read-only)"""
value = core.BNGetMediumLevelILExprValue(self.function.handle, self.expr_index)
- result = binaryninja.function.RegisterValue(self.function.arch, value)
+ result = function.RegisterValue(self.function.arch, value)
return result
@property
def possible_values(self):
"""Possible values of expression using path-sensitive static data flow analysis (read-only)"""
value = core.BNGetMediumLevelILPossibleExprValues(self.function.handle, self.expr_index)
- result = binaryninja.function.PossibleValueSet(self.function.arch, value)
+ result = function.PossibleValueSet(self.function.arch, value)
core.BNFreePossibleValueSet(value)
return result
@@ -454,7 +454,7 @@ class MediumLevelILInstruction(object):
return []
result = []
for operand in self.operands:
- if (isinstance(operand, binaryninja.function.Variable)) or (isinstance(operand, SSAVariable)):
+ if (isinstance(operand, function.Variable)) or (isinstance(operand, SSAVariable)):
result.append(operand)
elif isinstance(operand, MediumLevelILInstruction):
result += operand.vars_read
@@ -477,7 +477,7 @@ class MediumLevelILInstruction(object):
var_data.index = ssa_var.var.index
var_data.storage = ssa_var.var.storage
value = core.BNGetMediumLevelILPossibleSSAVarValues(self.function.handle, var_data, ssa_var.version, self.instr_index)
- result = binaryninja.function.PossibleValueSet(self.function.arch, value)
+ result = function.PossibleValueSet(self.function.arch, value)
core.BNFreePossibleValueSet(value)
return result
@@ -491,88 +491,88 @@ class MediumLevelILInstruction(object):
def get_var_for_reg(self, reg):
reg = self.function.arch.get_reg_index(reg)
result = core.BNGetMediumLevelILVariableForRegisterAtInstruction(self.function.handle, reg, self.instr_index)
- return binaryninja.function.Variable(self.function.source_function, result.type, result.index, result.storage)
+ return function.Variable(self.function.source_function, result.type, result.index, result.storage)
def get_var_for_flag(self, flag):
flag = self.function.arch.get_flag_index(flag)
result = core.BNGetMediumLevelILVariableForFlagAtInstruction(self.function.handle, flag, self.instr_index)
- return binaryninja.function.Variable(self.function.source_function, result.type, result.index, result.storage)
+ return function.Variable(self.function.source_function, result.type, result.index, result.storage)
def get_var_for_stack_location(self, offset):
result = core.BNGetMediumLevelILVariableForStackLocationAtInstruction(self.function.handle, offset, self.instr_index)
- return binaryninja.function.Variable(self.function.source_function, result.type, result.index, result.storage)
+ return function.Variable(self.function.source_function, result.type, result.index, result.storage)
def get_reg_value(self, reg):
reg = self.function.arch.get_reg_index(reg)
value = core.BNGetMediumLevelILRegisterValueAtInstruction(self.function.handle, reg, self.instr_index)
- result = binaryninja.function.RegisterValue(self.function.arch, value)
+ result = function.RegisterValue(self.function.arch, value)
return result
def get_reg_value_after(self, reg):
reg = self.function.arch.get_reg_index(reg)
value = core.BNGetMediumLevelILRegisterValueAfterInstruction(self.function.handle, reg, self.instr_index)
- result = binaryninja.function.RegisterValue(self.function.arch, value)
+ result = function.RegisterValue(self.function.arch, value)
return result
def get_possible_reg_values(self, reg):
reg = self.function.arch.get_reg_index(reg)
value = core.BNGetMediumLevelILPossibleRegisterValuesAtInstruction(self.function.handle, reg, self.instr_index)
- result = binaryninja.function.PossibleValueSet(self.function.arch, value)
+ result = function.PossibleValueSet(self.function.arch, value)
core.BNFreePossibleValueSet(value)
return result
def get_possible_reg_values_after(self, reg):
reg = self.function.arch.get_reg_index(reg)
value = core.BNGetMediumLevelILPossibleRegisterValuesAfterInstruction(self.function.handle, reg, self.instr_index)
- result = binaryninja.function.PossibleValueSet(self.function.arch, value)
+ result = function.PossibleValueSet(self.function.arch, value)
core.BNFreePossibleValueSet(value)
return result
def get_flag_value(self, flag):
flag = self.function.arch.get_flag_index(flag)
value = core.BNGetMediumLevelILFlagValueAtInstruction(self.function.handle, flag, self.instr_index)
- result = binaryninja.function.RegisterValue(self.function.arch, value)
+ result = function.RegisterValue(self.function.arch, value)
return result
def get_flag_value_after(self, flag):
flag = self.function.arch.get_flag_index(flag)
value = core.BNGetMediumLevelILFlagValueAfterInstruction(self.function.handle, flag, self.instr_index)
- result = binaryninja.function.RegisterValue(self.function.arch, value)
+ result = function.RegisterValue(self.function.arch, value)
return result
def get_possible_flag_values(self, flag):
flag = self.function.arch.get_flag_index(flag)
value = core.BNGetMediumLevelILPossibleFlagValuesAtInstruction(self.function.handle, flag, self.instr_index)
- result = binaryninja.function.PossibleValueSet(self.function.arch, value)
+ result = function.PossibleValueSet(self.function.arch, value)
core.BNFreePossibleValueSet(value)
return result
def get_possible_flag_values_after(self, flag):
flag = self.function.arch.get_flag_index(flag)
value = core.BNGetMediumLevelILPossibleFlagValuesAfterInstruction(self.function.handle, flag, self.instr_index)
- result = binaryninja.function.PossibleValueSet(self.function.arch, value)
+ result = function.PossibleValueSet(self.function.arch, value)
core.BNFreePossibleValueSet(value)
return result
def get_stack_contents(self, offset, size):
value = core.BNGetMediumLevelILStackContentsAtInstruction(self.function.handle, offset, size, self.instr_index)
- result = binaryninja.function.RegisterValue(self.function.arch, value)
+ result = function.RegisterValue(self.function.arch, value)
return result
def get_stack_contents_after(self, offset, size):
value = core.BNGetMediumLevelILStackContentsAfterInstruction(self.function.handle, offset, size, self.instr_index)
- result = binaryninja.function.RegisterValue(self.function.arch, value)
+ result = function.RegisterValue(self.function.arch, value)
return result
def get_possible_stack_contents(self, offset, size):
value = core.BNGetMediumLevelILPossibleStackContentsAtInstruction(self.function.handle, offset, size, self.instr_index)
- result = binaryninja.function.PossibleValueSet(self.function.arch, value)
+ result = function.PossibleValueSet(self.function.arch, value)
core.BNFreePossibleValueSet(value)
return result
def get_possible_stack_contents_after(self, offset, size):
value = core.BNGetMediumLevelILPossibleStackContentsAfterInstruction(self.function.handle, offset, size, self.instr_index)
- result = binaryninja.function.PossibleValueSet(self.function.arch, value)
+ result = function.PossibleValueSet(self.function.arch, value)
core.BNFreePossibleValueSet(value)
return result
@@ -905,7 +905,7 @@ class MediumLevelILFunction(object):
var_data.index = ssa_var.var.index
var_data.storage = ssa_var.var.storage
value = core.BNGetMediumLevelILSSAVarValue(self.handle, var_data, ssa_var.version)
- result = binaryninja.function.RegisterValue(self.arch, value)
+ result = function.RegisterValue(self.arch, value)
return result
def get_low_level_il_instruction_index(self, instr):