From da250551336d916ad0058bf200e1f0b29ccb2a8f Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Fri, 4 Feb 2022 22:04:52 -0500 Subject: Add unreachable instruction for switch statements with an unreachable default --- python/highlevelil.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'python/highlevelil.py') diff --git a/python/highlevelil.py b/python/highlevelil.py index 942330bf..395de637 100644 --- a/python/highlevelil.py +++ b/python/highlevelil.py @@ -159,6 +159,7 @@ class HighLevelILInstruction(BaseILInstruction): HighLevelILOperation.HLIL_BREAK: [], HighLevelILOperation.HLIL_CONTINUE: [], HighLevelILOperation.HLIL_JUMP: [ ("dest", "expr") ], HighLevelILOperation.HLIL_RET: [("src", "expr_list")], HighLevelILOperation.HLIL_NORET: [], + HighLevelILOperation.HLIL_UNREACHABLE: [], HighLevelILOperation.HLIL_GOTO: [("target", "label")], HighLevelILOperation.HLIL_LABEL: [ ("target", "label") ], HighLevelILOperation.HLIL_VAR_DECLARE: [("var", "var")], HighLevelILOperation.HLIL_VAR_INIT: [ @@ -1016,6 +1017,11 @@ class HighLevelILNoret(HighLevelILInstruction, Terminal): pass +@dataclass(frozen=True, repr=False, eq=False) +class HighLevelILUnreachable(HighLevelILInstruction, Terminal): + pass + + @dataclass(frozen=True, repr=False, eq=False) class HighLevelILGoto(HighLevelILInstruction, Terminal): @property @@ -1937,6 +1943,7 @@ ILInstruction = { HighLevelILOperation.HLIL_JUMP: HighLevelILJump, # ("dest", "expr"), HighLevelILOperation.HLIL_RET: HighLevelILRet, # ("src", "expr_list"), HighLevelILOperation.HLIL_NORET: HighLevelILNoret, # , + HighLevelILOperation.HLIL_UNREACHABLE: HighLevelILUnreachable, # , HighLevelILOperation.HLIL_GOTO: HighLevelILGoto, # ("target", "label"), HighLevelILOperation.HLIL_LABEL: HighLevelILLabel, # ("target", "label"), HighLevelILOperation.HLIL_VAR_DECLARE: HighLevelILVarDeclare, # ("var", "var"), -- cgit v1.3.1