diff options
| author | Brian Potchik <brian@vector35.com> | 2020-09-27 23:20:17 -0400 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2020-09-27 23:20:17 -0400 |
| commit | 0ff1794278a96d0b5c23a0fc0280d1faf5687a94 (patch) | |
| tree | 3f6004fcf8450a46bd91e44f0636cbc49c70a832 /python/lowlevelil.py | |
| parent | ba41ea9735bd55328a4e2b6c65fdbdb245b9ccad (diff) | |
Add High Level IL Mappings.
Diffstat (limited to 'python/lowlevelil.py')
| -rw-r--r-- | python/lowlevelil.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/python/lowlevelil.py b/python/lowlevelil.py index 9435f07b..64a862d6 100644 --- a/python/lowlevelil.py +++ b/python/lowlevelil.py @@ -1026,6 +1026,15 @@ class LowLevelILInstruction(object): return self.mapped_medium_level_il @property + def high_level_il(self): + """Gets the high level IL expression corresponding to this expression (may be None for eliminated instructions)""" + return self.mlil.hlil + + @property + def hlil(self): + return self.high_level_il + + @property def value(self): """Value of expression if constant or a known value (read-only)""" value = core.BNGetLowLevelILExprValue(self._function.handle, self.expr_index) @@ -2999,6 +3008,24 @@ class LowLevelILFunction(object): return None return result + def get_high_level_il_instruction_index(self, instr): + med_il = self.medium_level_il + if med_il is None: + return None + mlil_instr = self.get_medium_level_il_instruction_index(instr) + if mlil_instr is None: + return None + return med_il.get_high_level_il_instruction_index(mlil_instr) + + def get_high_level_il_expr_index(self, expr): + med_il = self.medium_level_il + if med_il is None: + return None + mlil_expr = self.get_medium_level_il_expr_index(expr) + if mlil_expr is None: + return None + return med_il.get_high_level_il_expr_index(mlil_expr) + def create_graph(self, settings = None): if settings is not None: settings_obj = settings.handle |
