diff options
| author | Brian Potchik <brian@vector35.com> | 2020-11-21 17:55:26 -0500 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2020-11-21 17:55:26 -0500 |
| commit | df48a9ee65c4fa3b60f3bfebb36aa03d8dd40f2d (patch) | |
| tree | c4b5686db405729323bc06659bcc74135673fe9a /python/highlevelil.py | |
| parent | 20b03bd36ec247b8c28dc1643f57b21ec94c8294 (diff) | |
Add improved instruction mapping APIs.
Diffstat (limited to 'python/highlevelil.py')
| -rw-r--r-- | python/highlevelil.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/python/highlevelil.py b/python/highlevelil.py index e1d26f62..164be0e1 100644 --- a/python/highlevelil.py +++ b/python/highlevelil.py @@ -530,6 +530,14 @@ class HighLevelILInstruction(object): return self.medium_level_il @property + def mlils(self): + exprs = self.function.get_medium_level_il_expr_indexes(self._expr_index) + result = [] + for expr in exprs: + result.append(mediumlevelil.MediumLevelILInstruction(self._function.medium_level_il.ssa_form, expr)) + return result + + @property def low_level_il(self): """Low level IL form of this expression""" if self.mlil is None: @@ -924,6 +932,15 @@ class HighLevelILFunction(object): return None return result + def get_medium_level_il_expr_indexes(self, expr): + count = ctypes.c_ulonglong() + exprs = core.BNGetMediumLevelILExprIndexesFromHighLevelIL(self.handle, expr, count) + result = [] + for i in range(0, count.value): + result.append(exprs[i]) + core.BNFreeILInstructionList(exprs) + return result + def get_label(self, label_idx): result = core.BNGetHighLevelILExprIndexForLabel(self.handle, label_idx) if result >= core.BNGetHighLevelILExprCount(self.handle): |
