diff options
| author | Peter LaFosse <peter@vector35.com> | 2021-06-23 20:20:50 -0400 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2021-09-05 10:09:09 -0400 |
| commit | bc5c0977dc5b4087e8f39cc67089bb5709aac04e (patch) | |
| tree | 2e955215d9a9000a84412f814d011248f6bdbe5d /python/mediumlevelil.py | |
| parent | 421b398453d09e06e7b202229e34b66414683a45 (diff) | |
type hints for highlevelil.py, mediumlevelil.py and lowlevelil.py, workflow.py
Fix linter error in scriptingprovider.py
Update workflow.py using updated paradigms and type hints
Diffstat (limited to 'python/mediumlevelil.py')
| -rw-r--r-- | python/mediumlevelil.py | 309 |
1 files changed, 155 insertions, 154 deletions
diff --git a/python/mediumlevelil.py b/python/mediumlevelil.py index 681902b5..27f165d2 100644 --- a/python/mediumlevelil.py +++ b/python/mediumlevelil.py @@ -26,7 +26,7 @@ from dataclasses import dataclass # Binary Ninja components from . import _binaryninjacore as core from .enums import MediumLevelILOperation, ILBranchDependence, DataFlowQueryOption -from . import basicblock #required for MediumLevelILBasicBlock argument +from . import basicblock from . import function from . import types from . import lowlevelil @@ -672,7 +672,7 @@ class UnaryOperation(MediumLevelILInstruction): operand_names = tuple(["src"]) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(0) @@ -681,11 +681,11 @@ class BinaryOperation(MediumLevelILInstruction): operand_names = tuple(["left", "right"]) @property - def left(self): + def left(self) -> MediumLevelILInstruction: return self.get_expr(0) @property - def right(self): + def right(self) -> MediumLevelILInstruction: return self.get_expr(1) @@ -694,15 +694,15 @@ class Carry(Arithmetic): operand_names = tuple(["left", "right", "carry"]) @property - def left(self): + def left(self) -> MediumLevelILInstruction: return self.get_expr(0) @property - def right(self): + def right(self) -> MediumLevelILInstruction: return self.get_expr(1) @property - def carry(self): + def carry(self) -> MediumLevelILInstruction: return self.get_expr(2) @@ -836,7 +836,7 @@ class MediumLevelILLoad(Load): operand_names = tuple(["src"]) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(0) @@ -845,7 +845,7 @@ class MediumLevelILVar(MediumLevelILInstruction): operand_names = tuple(["src"]) @property - def src(self): + def src(self) -> variable.Variable: return self.get_var(0) @@ -854,7 +854,7 @@ class MediumLevelILAddress_of(MediumLevelILInstruction): operand_names = tuple(["src"]) @property - def src(self): + def src(self) -> variable.Variable: return self.get_var(0) @@ -863,7 +863,7 @@ class MediumLevelILConst(Constant): operand_names = tuple(["constant"]) @property - def constant(self): + def constant(self) -> int: return self.get_int(0) @@ -872,7 +872,7 @@ class MediumLevelILConst_ptr(Constant): operand_names = tuple(["constant"]) @property - def constant(self): + def constant(self) -> int: return self.get_int(0) @@ -881,7 +881,7 @@ class MediumLevelILFloat_const(Constant, FloatingPoint): operand_names = tuple(["constant"]) @property - def constant(self): + def constant(self) -> float: return self.get_float(0) @@ -890,7 +890,7 @@ class MediumLevelILImport(Constant): operand_names = tuple(["constant"]) @property - def constant(self): + def constant(self) -> int: return self.get_int(0) @@ -924,7 +924,7 @@ class MediumLevelILJump(Terminal): operand_names = tuple(["dest"]) @property - def dest(self): + def dest(self) -> MediumLevelILInstruction: return self.get_expr(0) @@ -933,7 +933,7 @@ class MediumLevelILRet_hint(ControlFlow): operand_names = tuple(["dest"]) @property - def dest(self): + def dest(self) -> MediumLevelILInstruction: return self.get_expr(0) @@ -955,7 +955,7 @@ class MediumLevelILCall_param(MediumLevelILInstruction): operand_names = tuple(["src"]) @property - def src(self): + def src(self) -> List[variable.Variable]: return self.get_var_list(0, 1) @@ -964,7 +964,7 @@ class MediumLevelILRet(Return): operand_names = tuple(["src"]) @property - def src(self): + def src(self) -> List[MediumLevelILInstruction]: return self.get_expr_list(0, 1) @@ -973,7 +973,7 @@ class MediumLevelILGoto(Terminal): operand_names = tuple(["dest"]) @property - def dest(self): + def dest(self) -> int: return self.get_int(0) @@ -982,7 +982,7 @@ class MediumLevelILBool_to_int(MediumLevelILInstruction): operand_names = tuple(["src"]) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(0) @@ -991,7 +991,7 @@ class MediumLevelILFree_var_slot(RegisterStack): operand_names = tuple(["dest"]) @property - def dest(self): + def dest(self) -> variable.Variable: return self.get_var(0) @@ -1000,7 +1000,7 @@ class MediumLevelILTrap(Terminal): operand_names = tuple(["vector"]) @property - def vector(self): + def vector(self) -> int: return self.get_int(0) @@ -1009,11 +1009,11 @@ class MediumLevelILFree_var_slot_ssa(RegisterStack): operand_names = tuple(["dest", "prev"]) @property - def dest(self): + def dest(self) -> SSAVariable: return self.get_var_ssa_dest_and_src(0, 1) @property - def prev(self): + def prev(self) -> SSAVariable: return self.get_var_ssa_dest_and_src(0, 2) @@ -1022,7 +1022,7 @@ class MediumLevelILUnimpl_mem(Memory): operand_names = tuple(["src"]) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(0) @@ -1080,7 +1080,7 @@ class MediumLevelILVar_ssa(SSA): operand_names = tuple(["src"]) @property - def src(self): + def src(self) -> SSAVariable: return self.get_var_ssa(0, 1) @@ -1089,7 +1089,7 @@ class MediumLevelILVar_aliased(SSA): operand_names = tuple(["src"]) @property - def src(self): + def src(self) -> SSAVariable: return self.get_var_ssa(0, 1) @@ -1098,11 +1098,11 @@ class MediumLevelILSet_var(SetVar): operand_names = tuple(["dest", "src"]) @property - def dest(self): + def dest(self) -> variable.Variable: return self.get_var(0) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(1) @@ -1111,11 +1111,11 @@ class MediumLevelILLoad_struct(Load): operand_names = tuple(["src", "offset"]) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(0) @property - def offset(self): + def offset(self) -> int: return self.get_int(1) @@ -1124,11 +1124,11 @@ class MediumLevelILStore(Store): operand_names = tuple(["dest", "src"]) @property - def dest(self): + def dest(self) -> MediumLevelILInstruction: return self.get_expr(0) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(1) @@ -1137,11 +1137,11 @@ class MediumLevelILVar_field(MediumLevelILInstruction): operand_names = tuple(["src", "offset"]) @property - def src(self): + def src(self) -> variable.Variable: return self.get_var(0) @property - def offset(self): + def offset(self) -> int: return self.get_int(1) @@ -1150,11 +1150,11 @@ class MediumLevelILVar_split(MediumLevelILInstruction): operand_names = tuple(["high", "low"]) @property - def high(self): + def high(self) -> variable.Variable: return self.get_var(0) @property - def low(self): + def low(self) -> variable.Variable: return self.get_var(1) @@ -1163,11 +1163,11 @@ class MediumLevelILAddress_of_field(MediumLevelILInstruction): operand_names = tuple(["src", "offset"]) @property - def src(self): + def src(self) -> variable.Variable: return self.get_var(0) @property - def offset(self): + def offset(self) -> int: return self.get_int(1) @@ -1176,11 +1176,11 @@ class MediumLevelILExtern_ptr(Constant): operand_names = tuple(["constant", "offset"]) @property - def constant(self): + def constant(self) -> int: return self.get_int(0) @property - def offset(self): + def offset(self) -> int: return self.get_int(1) @@ -1351,11 +1351,11 @@ class MediumLevelILSyscall(Syscall): operand_names = tuple(["output", "params"]) @property - def output(self): + def output(self) -> List[variable.Variable]: return self.get_var_list(0, 1) @property - def params(self): + def params(self) -> List[MediumLevelILInstruction]: return self.get_expr_list(2, 3) @@ -1364,11 +1364,11 @@ class MediumLevelILVar_ssa_field(SSA): operand_names = tuple(["src", "offset"]) @property - def src(self): + def src(self) -> SSAVariable: return self.get_var_ssa(0, 1) @property - def offset(self): + def offset(self) -> int: return self.get_int(2) @@ -1377,11 +1377,11 @@ class MediumLevelILVar_aliased_field(SSA): operand_names = tuple(["src", "offset"]) @property - def src(self): + def src(self) -> SSAVariable: return self.get_var_ssa(0, 1) @property - def offset(self): + def offset(self) -> int: return self.get_int(2) @@ -1390,11 +1390,11 @@ class MediumLevelILVar_split_ssa(SSA): operand_names = tuple(["high", "low"]) @property - def high(self): + def high(self) -> SSAVariable: return self.get_var_ssa(0, 1) @property - def low(self): + def low(self) -> SSAVariable: return self.get_var_ssa(2, 3) @@ -1403,7 +1403,7 @@ class MediumLevelILCall_output_ssa(SSA): operand_names = tuple(["dest_memory", "dest"]) @property - def dest_memory(self): + def dest_memory(self) -> int: return self.get_int(0) @property @@ -1420,11 +1420,11 @@ class MediumLevelILCall_param_ssa(SSA): operand_names = tuple(["src_memory", "src"]) @property - def src_memory(self): + def src_memory(self) -> int: return self.get_int(0) @property - def src(self): + def src(self) -> List[SSAVariable]: return self.get_var_ssa_list(1, 2) @@ -1433,11 +1433,11 @@ class MediumLevelILLoad_ssa(Load, SSA): operand_names = tuple(["src", "src_memory"]) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(0) @property - def src_memory(self): + def src_memory(self) -> int: return self.get_int(1) @@ -1446,11 +1446,11 @@ class MediumLevelILVar_phi(Phi, SetVar, SSA): operand_names = tuple(["dest", "src"]) @property - def dest(self): + def dest(self) -> SSAVariable: return self.get_var_ssa(0, 1) @property - def src(self): + def src(self) -> List[SSAVariable]: return self.get_var_ssa_list(2, 3) @@ -1459,11 +1459,11 @@ class MediumLevelILMem_phi(Memory, Phi): operand_names = tuple(["dest_memory", "src_memory"]) @property - def dest_memory(self): + def dest_memory(self) -> int: return self.get_int(0) @property - def src_memory(self): + def src_memory(self) -> List[int]: return self.get_int_list(1) @@ -1472,11 +1472,11 @@ class MediumLevelILSet_var_ssa(SetVar): operand_names = tuple(["dest", "src"]) @property - def dest(self): + def dest(self) -> SSAVariable: return self.get_var_ssa(0, 1) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(2) @@ -1545,7 +1545,7 @@ class MediumLevelILJump_to(Terminal): operand_names = tuple(["dest", "targets"]) @property - def dest(self): + def dest(self) -> MediumLevelILInstruction: return self.get_expr(0) @property @@ -1558,15 +1558,15 @@ class MediumLevelILSet_var_aliased(SetVar, SSA): operand_names = tuple(["dest", "prev", "src"]) @property - def dest(self): + def dest(self) -> SSAVariable: return self.get_var_ssa_dest_and_src(0, 1) @property - def prev(self): + def prev(self) -> SSAVariable: return self.get_var_ssa_dest_and_src(0, 2) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(3) @@ -1581,7 +1581,7 @@ class MediumLevelILSyscall_untyped(Syscall): return inst.dest @property - def dest(self): + def dest(self) -> MediumLevelILInstruction: return self.get_expr(1) @property @@ -1591,7 +1591,7 @@ class MediumLevelILSyscall_untyped(Syscall): return inst.src @property - def stack(self): + def stack(self) -> MediumLevelILInstruction: return self.get_expr(2) @@ -1600,15 +1600,15 @@ class MediumLevelILIntrinsic(MediumLevelILInstruction): operand_names = tuple(["output", "intrinsic", "params"]) @property - def output(self): + def output(self) -> List[variable.Variable]: return self.get_var_list(0, 1) @property - def intrinsic(self): + def intrinsic(self) -> 'lowlevelil.ILIntrinsic': return self.get_intrinsic(2) @property - def params(self): + def params(self) -> List[MediumLevelILInstruction]: return self.get_expr_list(3, 4) @property @@ -1629,15 +1629,15 @@ class MediumLevelILIntrinsic_ssa(SSA): operand_names = tuple(["output", "intrinsic", "params"]) @property - def output(self): + def output(self) -> List[SSAVariable]: return self.get_var_ssa_list(0, 1) @property - def intrinsic(self): + def intrinsic(self) -> 'lowlevelil.ILIntrinsic': return self.get_intrinsic(2) @property - def params(self): + def params(self) -> List[MediumLevelILInstruction]: return self.get_expr_list(3, 4) @property @@ -1657,19 +1657,19 @@ class MediumLevelILSet_var_ssa_field(SetVar): operand_names = tuple(["dest", "prev", "offset", "src"]) @property - def dest(self): + def dest(self) -> SSAVariable: return self.get_var_ssa_dest_and_src(0, 1) @property - def prev(self): + def prev(self) -> SSAVariable: return self.get_var_ssa_dest_and_src(0, 2) @property - def offset(self): + def offset(self) -> int: return self.get_int(3) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(4) @property @@ -1682,15 +1682,15 @@ class MediumLevelILSet_var_split_ssa(SetVar): operand_names = tuple(["high", "low", "src"]) @property - def high(self): + def high(self) -> SSAVariable: return self.get_var_ssa(0, 1) @property - def low(self): + def low(self) -> SSAVariable: return self.get_var_ssa(2, 3) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(4) @property @@ -1703,19 +1703,19 @@ class MediumLevelILSet_var_aliased_field(SetVar, SSA): operand_names = tuple(["dest", "prev", "offset", "src"]) @property - def dest(self): + def dest(self) -> SSAVariable: return self.get_var_ssa_dest_and_src(0, 1) @property - def prev(self): + def prev(self) -> SSAVariable: return self.get_var_ssa_dest_and_src(0, 2) @property - def offset(self): + def offset(self) -> int: return self.get_int(3) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(4) @property @@ -1728,23 +1728,23 @@ class MediumLevelILSyscall_ssa(Syscall, SSA): operand_names = tuple(["output", "params", "src_memory"]) @property - def output(self): + def output(self) -> List[SSAVariable]: inst = self.get_expr(0) assert isinstance(inst, MediumLevelILCall_output_ssa), "MediumLevelILSyscall_ssa return bad type for output" return inst.dest @property - def output_dest_memory(self): + def output_dest_memory(self) -> int: inst = self.get_expr(0) assert isinstance(inst, MediumLevelILCall_output_ssa), "MediumLevelILSyscall_ssa return bad type for output" return inst.dest_memory @property - def params(self): + def params(self) -> List[MediumLevelILInstruction]: return self.get_expr_list(1, 2) @property - def src_memory(self): + def src_memory(self) -> int: return self.get_int(3) @@ -1753,31 +1753,31 @@ class MediumLevelILSyscall_untyped_ssa(Syscall, SSA): operand_names = tuple(["output", "params", "stack"]) @property - def output(self): + def output(self) -> List[SSAVariable]: inst = self.get_expr(0) assert isinstance(inst, MediumLevelILCall_output_ssa), "MediumLevelILSyscall_untyped_ssa return bad type for 'output'" return inst.dest @property - def output_dest_memory(self): + def output_dest_memory(self) -> int: inst = self.get_expr(0) assert isinstance(inst, MediumLevelILCall_output_ssa), "MediumLevelILSyscall_untyped_ssa return bad type for 'output_dest_memory'" return inst.dest_memory @property - def params(self): + def params(self) -> List[SSAVariable]: inst = self.get_expr(1) assert isinstance(inst, MediumLevelILCall_param_ssa), "MediumLevelILSyscall_untyped_ssa return bad type for 'params'" return inst.src @property - def params_src_memory(self): + def params_src_memory(self) -> int: inst = self.get_expr(1) assert isinstance(inst, MediumLevelILCall_param_ssa), "MediumLevelILSyscall_untyped_ssa return bad type for 'params_src_memory'" return inst.src_memory @property - def stack(self): + def stack(self) -> MediumLevelILInstruction: return self.get_expr(2) @@ -1786,15 +1786,15 @@ class MediumLevelILLoad_struct_ssa(Load, SSA): operand_names = tuple(["src", "offset", "src_memory"]) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(0) @property - def offset(self): + def offset(self) -> int: return self.get_int(1) @property - def src_memory(self): + def src_memory(self) -> int: return self.get_int(2) @@ -1803,15 +1803,15 @@ class MediumLevelILSet_var_field(SetVar): operand_names = tuple(["dest", "offset", "src"]) @property - def dest(self): + def dest(self) -> variable.Variable: return self.get_var(0) @property - def offset(self): + def offset(self) -> int: return self.get_int(1) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(2) @@ -1820,15 +1820,15 @@ class MediumLevelILSet_var_split(SetVar): operand_names = tuple(["high", "low", "src"]) @property - def high(self): + def high(self) -> variable.Variable: return self.get_var(0) @property - def low(self): + def low(self) -> variable.Variable: return self.get_var(1) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(2) @property @@ -1841,15 +1841,15 @@ class MediumLevelILStore_struct(Store): operand_names = tuple(["dest", "offset", "src"]) @property - def dest(self): + def dest(self) -> MediumLevelILInstruction: return self.get_expr(0) @property - def offset(self): + def offset(self) -> int: return self.get_int(1) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(2) @@ -1878,15 +1878,15 @@ class MediumLevelILCall(Call): operand_names = tuple(["output", "dest", "params"]) @property - def output(self): + def output(self) -> List[variable.Variable]: return self.get_var_list(0, 1) @property - def dest(self): + def dest(self) -> MediumLevelILInstruction: return self.get_expr(2) @property - def params(self): + def params(self) -> List[MediumLevelILInstruction]: return self.get_expr_list(3, 4) @@ -1895,15 +1895,15 @@ class MediumLevelILIf(Terminal): operand_names = tuple(["condition", "true", "false"]) @property - def condition(self): + def condition(self) -> MediumLevelILInstruction: return self.get_expr(0) @property - def true(self): + def true(self) -> int: return self.get_int(1) @property - def false(self): + def false(self) -> int: return self.get_int(2) @@ -1912,23 +1912,23 @@ class MediumLevelILTailcall_untyped(Tailcall): operand_names = tuple(["output", "dest", "params", "stack"]) @property - def output(self): + def output(self) -> List[variable.Variable]: inst = self.get_expr(0) assert isinstance(inst, MediumLevelILCall_output), "MediumLevelILTailcall_untyped return bad type for 'output'" return inst.dest @property - def dest(self): + def dest(self) -> MediumLevelILInstruction: return self.get_expr(1) @property - def params(self): + def params(self) -> List[variable.Variable]: inst = self.get_expr(2) assert isinstance(inst, MediumLevelILCall_param), "MediumLevelILTailcall_untyped return bad type for 'params'" return inst.src @property - def stack(self): + def stack(self) -> MediumLevelILInstruction: return self.get_expr(3) @@ -1937,27 +1937,27 @@ class MediumLevelILCall_ssa(Call, SSA): operand_names = tuple(["output", "dest", "params", "src_memory"]) @property - def output(self): + def output(self) -> List[SSAVariable]: inst = self.get_expr(0) assert isinstance(inst, MediumLevelILCall_output_ssa), "MediumLevelILCall_ssa return bad type for output" return inst.dest @property - def output_dest_memory(self): + def output_dest_memory(self) -> int: inst = self.get_expr(0) assert isinstance(inst, MediumLevelILCall_output_ssa), "MediumLevelILCall_ssa return bad type for output" return inst.dest_memory @property - def dest(self): + def dest(self) -> MediumLevelILInstruction: return self.get_expr(1) @property - def params(self): + def params(self) -> List[MediumLevelILInstruction]: return self.get_expr_list(2, 3) @property - def src_memory(self): + def src_memory(self) -> int: return self.get_int(4) @@ -1966,23 +1966,23 @@ class MediumLevelILCall_untyped_ssa(Call, SSA): operand_names = tuple(["output", "dest", "params", "stack"]) @property - def output(self): + def output(self) -> List[SSAVariable]: inst = self.get_expr(0) assert isinstance(inst, MediumLevelILCall_output_ssa), "MediumLevelILCall_untyped_ssa return bad type for output" return inst.dest @property - def output_dest_memory(self): + def output_dest_memory(self) -> int: inst = self.get_expr(0) assert isinstance(inst, MediumLevelILCall_output_ssa), "MediumLevelILCall_untyped_ssa return bad type for output" return inst.dest_memory @property - def dest(self): + def dest(self) -> MediumLevelILInstruction: return self.get_expr(1) @property - def params(self): + def params(self) -> List[SSAVariable]: inst = self.get_expr(2) assert isinstance(inst, MediumLevelILCall_param_ssa), "MediumLevelILCall_untyped_ssa return bad type for 'params'" return inst.src @@ -1994,7 +1994,7 @@ class MediumLevelILCall_untyped_ssa(Call, SSA): return inst.src_memory @property - def stack(self): + def stack(self) -> MediumLevelILInstruction: return self.get_expr(3) @@ -2003,15 +2003,15 @@ class MediumLevelILTailcall(Tailcall): operand_names = tuple(["output", "dest", "params"]) @property - def output(self): + def output(self) -> List[variable.Variable]: return self.get_var_list(0, 1) @property - def dest(self): + def dest(self) -> MediumLevelILInstruction: return self.get_expr(2) @property - def params(self): + def params(self) -> List[MediumLevelILInstruction]: return self.get_expr_list(3, 4) @@ -2020,27 +2020,27 @@ class MediumLevelILTailcall_ssa(Tailcall, SSA): operand_names = tuple(["output", "dest", "params", "src_memory"]) @property - def output(self): + def output(self) -> List[SSAVariable]: inst = self.get_expr(0) assert isinstance(inst, MediumLevelILCall_output_ssa), "MediumLevelILTailcall_ssa return bad type for output" return inst.dest @property - def output_dest_memory(self): + def output_dest_memory(self) -> int: inst = self.get_expr(0) assert isinstance(inst, MediumLevelILCall_output_ssa), "MediumLevelILTailcall_ssa return bad type for output" return inst.dest_memory @property - def dest(self): + def dest(self) -> MediumLevelILInstruction: return self.get_expr(1) @property - def params(self): + def params(self) -> List[MediumLevelILInstruction]: return self.get_expr_list(2, 3) @property - def src_memory(self): + def src_memory(self) -> int: return self.get_int(4) @@ -2049,27 +2049,27 @@ class MediumLevelILTailcall_untyped_ssa(Tailcall, SSA): operand_names = tuple(["output", "dest", "params", "stack"]) @property - def output(self): + def output(self) -> List[SSAVariable]: inst = self.get_expr(0) assert isinstance(inst, MediumLevelILCall_output_ssa), "MediumLevelILTailcall_untyped_ssa return bad type for 'output'" return inst.dest @property - def output_dest_memory(self): + def output_dest_memory(self) -> int: inst = self.get_expr(0) assert isinstance(inst, MediumLevelILCall_output_ssa), "MediumLevelILTailcall_untyped_ssa return bad type for 'output'" return inst.dest_memory @property - def dest(self): + def dest(self) -> MediumLevelILInstruction: return self.get_expr(1) @property - def params(self): + def params(self) -> MediumLevelILInstruction: return self.get_expr(2) @property - def stack(self): + def stack(self) -> MediumLevelILInstruction: return self.get_expr(3) @@ -2078,19 +2078,19 @@ class MediumLevelILStore_ssa(Store, SSA): operand_names = tuple(["dest", "dest_memory", "src_memory", "src"]) @property - def dest(self): + def dest(self) -> MediumLevelILInstruction: return self.get_expr(0) @property - def dest_memory(self): + def dest_memory(self) -> int: return self.get_int(1) @property - def src_memory(self): + def src_memory(self) -> int: return self.get_int(2) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(3) @@ -2099,23 +2099,23 @@ class MediumLevelILCall_untyped(Call): operand_names = tuple(["output", "dest", "params", "stack"]) @property - def output(self): + def output(self) -> List[variable.Variable]: inst = self.get_expr(0) assert isinstance(inst, MediumLevelILCall_output), "MediumLevelILCall_untyped return bad type for 'output'" return inst.dest @property - def dest(self): + def dest(self) -> MediumLevelILInstruction: return self.get_expr(1) @property - def params(self): + def params(self) -> List[variable.Variable]: inst = self.get_expr(2) assert isinstance(inst, MediumLevelILCall_param), "MediumLevelILCall_untyped return bad type for 'params'" return inst.src @property - def stack(self): + def stack(self) -> MediumLevelILInstruction: return self.get_expr(3) @@ -2124,23 +2124,23 @@ class MediumLevelILStore_struct_ssa(Store, SSA): operand_names = tuple(["dest", "offset", "dest_memory", "src_memory", "src"]) @property - def dest(self): + def dest(self) -> MediumLevelILInstruction: return self.get_expr(0) @property - def offset(self): + def offset(self) -> int: return self.get_int(1) @property - def dest_memory(self): + def dest_memory(self) -> int: return self.get_int(2) @property - def src_memory(self): + def src_memory(self) -> int: return self.get_int(3) @property - def src(self): + def src(self) -> MediumLevelILInstruction: return self.get_expr(4) ILInstruction = { @@ -2307,7 +2307,8 @@ class MediumLevelILFunction: _arch = arch _source_function = source_func if handle is not None: - _handle = core.handle_of_type(handle, core.BNMediumLevelILFunction) + MLILHandle = ctypes.POINTER(core.BNMediumLevelILFunction) + _handle = ctypes.cast(handle, MLILHandle) if _source_function is None: _source_function = function.Function(handle = core.BNGetMediumLevelILOwnerFunction(_handle)) if _arch is None: @@ -2782,7 +2783,7 @@ class MediumLevelILFunction: class MediumLevelILBasicBlock(basicblock.BasicBlock): - def __init__(self, handle:core.BNBasicBlock, owner:MediumLevelILFunction, view:Optional['binaryview.BinaryView']=None): + def __init__(self, handle:core.BNBasicBlockHandle, owner:MediumLevelILFunction, view:Optional['binaryview.BinaryView']=None): super(MediumLevelILBasicBlock, self).__init__(handle, view) self._il_function = owner @@ -2797,7 +2798,7 @@ class MediumLevelILBasicBlock(basicblock.BasicBlock): for idx in range(self.start, self.end): yield self._il_function[idx] - def __getitem__(self, idx): + def __getitem__(self, idx) -> 'MediumLevelILInstruction': size = self.end - self.start if isinstance(idx, slice): return [self[index] for index in range(*idx.indices(size))] @@ -2819,7 +2820,7 @@ class MediumLevelILBasicBlock(basicblock.BasicBlock): else: return False - def _create_instance(self, handle:core.BNBasicBlock, view:'binaryview.BinaryView') -> 'MediumLevelILBasicBlock': + def _create_instance(self, handle:core.BNBasicBlockHandle, view:'binaryview.BinaryView') -> 'MediumLevelILBasicBlock': """Internal method by super to instantiate child instances""" return MediumLevelILBasicBlock(handle, self.il_function, view) |
