summaryrefslogtreecommitdiff
path: root/python/mediumlevelil.py
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2021-01-27 16:03:02 -0500
committerBrian Potchik <brian@vector35.com>2021-01-27 16:03:02 -0500
commit51d0f18eb4df16263867ef157b5293bb1b44f77a (patch)
treea7af13bc176f4625dc377a07ed830ea40f6ddcc4 /python/mediumlevelil.py
parentbbdef20ca8c5489dc8aac4f31b0269dba80b4e87 (diff)
Finish HLIL expression mapping APIs.
Diffstat (limited to 'python/mediumlevelil.py')
-rw-r--r--python/mediumlevelil.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/python/mediumlevelil.py b/python/mediumlevelil.py
index ac11db96..65b90177 100644
--- a/python/mediumlevelil.py
+++ b/python/mediumlevelil.py
@@ -471,7 +471,7 @@ class MediumLevelILInstruction(object):
@property
def llils(self):
- exprs = self.function.get_low_level_il_expr_indexes(self.expr_index)
+ exprs = self._function.get_low_level_il_expr_indexes(self.expr_index)
result = []
for expr in exprs:
result.append(lowlevelil.LowLevelILInstruction(self._function.low_level_il.ssa_form, expr))
@@ -491,6 +491,14 @@ class MediumLevelILInstruction(object):
return self.high_level_il
@property
+ def hlils(self):
+ exprs = self._function.get_high_level_il_expr_indexes(self.expr_index)
+ result = []
+ for expr in exprs:
+ result.append(binaryninja.highlevelil.HighLevelILInstruction(self._function.high_level_il, expr))
+ return result
+
+ @property
def ssa_memory_version(self):
"""Version of active memory contents in SSA form for this instruction"""
return core.BNGetMediumLevelILSSAMemoryVersionAtILInstruction(self._function.handle, self._instr_index)
@@ -1197,6 +1205,15 @@ class MediumLevelILFunction(object):
return None
return result
+ def get_high_level_il_expr_indexes(self, expr):
+ count = ctypes.c_ulonglong()
+ exprs = core.BNGetHighLevelILExprIndexes(self.handle, expr, count)
+ result = []
+ for i in range(0, count.value):
+ result.append(exprs[i])
+ core.BNFreeILInstructionList(exprs)
+ return result
+
def create_graph(self, settings = None):
if settings is not None:
settings_obj = settings.handle