summaryrefslogtreecommitdiff
path: root/python/mediumlevelil.py
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2020-11-21 17:55:26 -0500
committerBrian Potchik <brian@vector35.com>2020-11-21 17:55:26 -0500
commitdf48a9ee65c4fa3b60f3bfebb36aa03d8dd40f2d (patch)
treec4b5686db405729323bc06659bcc74135673fe9a /python/mediumlevelil.py
parent20b03bd36ec247b8c28dc1643f57b21ec94c8294 (diff)
Add improved instruction mapping APIs.
Diffstat (limited to 'python/mediumlevelil.py')
-rw-r--r--python/mediumlevelil.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/python/mediumlevelil.py b/python/mediumlevelil.py
index 68da31f3..acfc7478 100644
--- a/python/mediumlevelil.py
+++ b/python/mediumlevelil.py
@@ -470,6 +470,14 @@ class MediumLevelILInstruction(object):
return self.low_level_il
@property
+ def llils(self):
+ 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))
+ return result
+
+ @property
def high_level_il(self):
"""High level IL form of this expression"""
expr = self._function.get_high_level_il_expr_index(self._expr_index)
@@ -1162,6 +1170,15 @@ class MediumLevelILFunction(object):
return None
return result
+ def get_low_level_il_expr_indexes(self, expr):
+ count = ctypes.c_ulonglong()
+ exprs = core.BNGetLowLevelILExprIndexes(self.handle, expr, count)
+ result = []
+ for i in range(0, count.value):
+ result.append(exprs[i])
+ core.BNFreeILInstructionList(exprs)
+ return result
+
def get_high_level_il_instruction_index(self, instr):
high_il = self.high_level_il
if high_il is None: