diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/basicblock.py | 12 | ||||
| -rw-r--r-- | python/function.py | 6 | ||||
| -rw-r--r-- | python/lineardisassembly.py | 4 |
3 files changed, 16 insertions, 6 deletions
diff --git a/python/basicblock.py b/python/basicblock.py index b7182c7a..b5000a2f 100644 --- a/python/basicblock.py +++ b/python/basicblock.py @@ -252,19 +252,23 @@ class BasicBlock: elif il_type == _function.FunctionGraphType.LiftedILFunctionGraph: return func.lifted_il elif il_type == _function.FunctionGraphType.LowLevelILSSAFormFunctionGraph: - return func.low_level_il.ssa_form + func_llil = func.low_level_il + return func_llil.ssa_form if func_llil is not None else None elif il_type == _function.FunctionGraphType.MediumLevelILFunctionGraph: return func.medium_level_il elif il_type == _function.FunctionGraphType.MediumLevelILSSAFormFunctionGraph: - return func.medium_level_il.ssa_form + func_mlil = func.medium_level_il + return func_mlil.ssa_form if func_mlil is not None else None elif il_type == _function.FunctionGraphType.MappedMediumLevelILFunctionGraph: return func.mapped_medium_level_il elif il_type == _function.FunctionGraphType.MappedMediumLevelILSSAFormFunctionGraph: - return func.mapped_medium_level_il.ssa_form + func_mmlil = func.mapped_medium_level_il + return func_mmlil.ssa_form if func_mmlil is not None else None elif il_type == _function.FunctionGraphType.HighLevelILFunctionGraph: return func.high_level_il elif il_type == _function.FunctionGraphType.HighLevelILSSAFormFunctionGraph: - return func.high_level_il.ssa_form + func_hlil = func.high_level_il + return func_hlil.ssa_form if func_hlil is not None else None elif il_type == _function.FunctionGraphType.HighLevelLanguageRepresentationFunctionGraph: return func.high_level_il else: diff --git a/python/function.py b/python/function.py index 8fa8a0e4..7d14c2bb 100644 --- a/python/function.py +++ b/python/function.py @@ -2959,7 +2959,11 @@ class Function: # Special case: function parameters have index 0 and are defined at the start of the function def_addr = self.start else: - var_defs = self.mlil.get_var_definitions(var) + func_mlil = self.mlil + if func_mlil is None: + raise ValueError("Could not get definition for Variable") + + var_defs = func_mlil.get_var_definitions(var) if var_defs is None: raise ValueError("Could not get definition for Variable") diff --git a/python/lineardisassembly.py b/python/lineardisassembly.py index e6b684d3..fb981ba1 100644 --- a/python/lineardisassembly.py +++ b/python/lineardisassembly.py @@ -59,7 +59,9 @@ class LinearDisassemblyLine: if obj.identifier.name == "HLIL Function Body": il_func = function.hlil elif obj.identifier.name == "HLIL SSA Function Body": - il_func = function.hlil.ssa_form + func_hlil = function.hlil + if func_hlil is not None: + il_func = func_hlil.ssa_form elif obj.identifier.name == "Language Representation Function Body": il_func = function.hlil |
