summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorJordan Wiens <jordan@psifertex.com>2019-06-09 01:22:18 -0400
committerJordan Wiens <jordan@psifertex.com>2019-06-09 01:22:18 -0400
commit9ad896abce03fb20f02d34a17ff9babfdad38cab (patch)
treecb00680a53283411774a1f3953c2bd60d53cfdba /python
parent3c7a00172b3b86add668257ca35b873fc85a7017 (diff)
remove two breaking changes
Diffstat (limited to 'python')
-rw-r--r--python/mediumlevelil.py54
-rw-r--r--python/types.py61
2 files changed, 51 insertions, 64 deletions
diff --git a/python/mediumlevelil.py b/python/mediumlevelil.py
index 14481c30..f73609cc 100644
--- a/python/mediumlevelil.py
+++ b/python/mediumlevelil.py
@@ -303,7 +303,8 @@ class MediumLevelILInstruction(object):
src_version = instr.operands[i + 2]
i += 2
self._operands.append(SSAVariable(var, dest_version))
- self._dest = SSAVariable(var, dest_version)
+ #TODO: documentation for dest
+ self.dest = SSAVariable(var, dest_version)
value = SSAVariable(var, src_version)
elif operand_type == "int_list":
count = ctypes.c_ulonglong()
@@ -469,7 +470,7 @@ class MediumLevelILInstruction(object):
MediumLevelILOperation.MLIL_SET_VAR_SSA, MediumLevelILOperation.MLIL_SET_VAR_SSA_FIELD,
MediumLevelILOperation.MLIL_SET_VAR_ALIASED, MediumLevelILOperation.MLIL_SET_VAR_ALIASED_FIELD,
MediumLevelILOperation.MLIL_VAR_PHI]:
- return [self._dest]
+ return [self.dest]
elif self._operation in [MediumLevelILOperation.MLIL_SET_VAR_SPLIT, MediumLevelILOperation.MLIL_SET_VAR_SPLIT_SSA]:
return [self.high, self.low]
elif self._operation in [MediumLevelILOperation.MLIL_CALL, MediumLevelILOperation.MLIL_SYSCALL, MediumLevelILOperation.MLIL_TAILCALL]:
@@ -480,7 +481,7 @@ class MediumLevelILInstruction(object):
MediumLevelILOperation.MLIL_TAILCALL_SSA, MediumLevelILOperation.MLIL_TAILCALL_UNTYPED_SSA]:
return self.output.vars_written
elif self._operation in [MediumLevelILOperation.MLIL_CALL_OUTPUT, MediumLevelILOperation.MLIL_CALL_OUTPUT_SSA]:
- return self._dest
+ return self.dest
return []
@property
@@ -712,15 +713,6 @@ class MediumLevelILInstruction(object):
def operands(self, value):
self._operands = value
- @property
- def dest(self):
- """ """
- return self._dest
-
- @dest.setter
- def dest(self, value):
- self._dest = value
-
class MediumLevelILExpr(object):
"""
@@ -1110,6 +1102,25 @@ class MediumLevelILFunction(object):
settings_obj = None
return binaryninja.flowgraph.CoreFlowGraph(core.BNCreateMediumLevelILFunctionGraph(self.handle, settings_obj))
+ @property
+ def arch(self):
+ """ """
+ return self._arch
+
+ @arch.setter
+ def arch(self, value):
+ self._arch = value
+
+ @property
+ def source_function(self):
+ """ """
+ return self._source_function
+
+ @source_function.setter
+ def source_function(self, value):
+ self._source_function = value
+
+
class MediumLevelILBasicBlock(basicblock.BasicBlock):
def __init__(self, view, handle, owner):
@@ -1137,19 +1148,10 @@ class MediumLevelILBasicBlock(basicblock.BasicBlock):
return hash((self.start, self.end, self.il_function))
@property
- def arch(self):
- """ """
- return self._arch
-
- @arch.setter
- def arch(self, value):
- self._arch = value
-
- @property
- def source_function(self):
+ def il_function(self):
""" """
- return self._source_function
+ return self._il_function
- @source_function.setter
- def source_function(self, value):
- self._source_function = value
+ @il_function.setter
+ def il_function(self, value):
+ self._il_function = value \ No newline at end of file
diff --git a/python/types.py b/python/types.py
index 03f56a7b..018eccd0 100644
--- a/python/types.py
+++ b/python/types.py
@@ -34,25 +34,26 @@ from binaryninja import pyNativeStr
class QualifiedName(object):
+ #TODO: Resolve documentation on name, byte_name
def __init__(self, name = []):
if isinstance(name, str):
- self._name = [name]
- self._byte_name = [name.encode('charmap')]
+ self.name = [name]
+ self.byte_name = [name.encode('charmap')]
elif isinstance(name, QualifiedName):
- self._name = name.name
- self._byte_name = [n.encode('charmap') for n in name.name]
+ self.name = name.name
+ self.byte_name = [n.encode('charmap') for n in name.name]
else:
- self._name = [pyNativeStr(i) for i in name]
- self._byte_name = name
+ self.name = [pyNativeStr(i) for i in name]
+ self.byte_name = name
def __str__(self):
- return "::".join(self._name)
+ return "::".join(self.name)
def __repr__(self):
return repr(str(self))
def __len__(self):
- return len(self._name)
+ return len(self.name)
def __hash__(self):
return hash(str(self))
@@ -61,9 +62,9 @@ class QualifiedName(object):
if isinstance(other, str):
return str(self) == other
elif isinstance(other, list):
- return self._name == other
+ return self.name == other
elif isinstance(other, QualifiedName):
- return self._name == other.name
+ return self.name == other.name
return False
def __ne__(self, other):
@@ -71,22 +72,22 @@ class QualifiedName(object):
def __lt__(self, other):
if isinstance(other, QualifiedName):
- return self._name < other.name
+ return self.name < other.name
return False
def __le__(self, other):
if isinstance(other, QualifiedName):
- return self._name <= other.name
+ return self.name <= other.name
return False
def __gt__(self, other):
if isinstance(other, QualifiedName):
- return self._name > other.name
+ return self.name > other.name
return False
def __ge__(self, other):
if isinstance(other, QualifiedName):
- return self._name >= other.name
+ return self.name >= other.name
return False
def __cmp__(self, other):
@@ -97,18 +98,18 @@ class QualifiedName(object):
return 1
def __getitem__(self, key):
- return self._name[key]
+ return self.name[key]
def __iter__(self):
- return iter(self._name)
+ return iter(self.name)
def _get_core_struct(self):
result = core.BNQualifiedName()
- name_list = (ctypes.c_char_p * len(self._name))()
- for i in range(0, len(self._name)):
- name_list[i] = self._name[i].encode('charmap')
+ name_list = (ctypes.c_char_p * len(self.name))()
+ for i in range(0, len(self.name)):
+ name_list[i] = self.name[i].encode('charmap')
result.name = name_list
- result.nameCount = len(self._name)
+ result.nameCount = len(self.name)
return result
@classmethod
@@ -118,26 +119,9 @@ class QualifiedName(object):
result.append(name.name[i])
return QualifiedName(result)
- @property
- def name(self):
- """ """
- return self._name
-
- @name.setter
- def name(self, value):
- self._name = value
-
- @property
- def byte_name(self):
- """ """
- return self._byte_name
-
- @byte_name.setter
- def byte_name(self, value):
- self._byte_name = value
-
class NameSpace(QualifiedName):
+ #TODO: Resolve documentation on name and inheritence from QualifiedName
def __str__(self):
return ":".join(self.name)
@@ -157,6 +141,7 @@ class NameSpace(QualifiedName):
result.append(name.name[i])
return NameSpace(result)
+
class Symbol(object):
"""
Symbols are defined as one of the following types: