summaryrefslogtreecommitdiff
path: root/python/lowlevelil.py
diff options
context:
space:
mode:
authorXusheng <xusheng@vector35.com>2022-08-08 11:39:18 +0800
committerXusheng <xusheng@vector35.com>2022-08-08 11:39:18 +0800
commitb9389bc1cbc1fa54d522cf3cfb56a1aedfc01d6b (patch)
treeb0ec0bd72758e46026aa13d9a3b6a25a72890c46 /python/lowlevelil.py
parentc94beacb7439e0a8c99d9b4ef71d686e0731f134 (diff)
Add missing get_basic_block_at() function for IL functions in Python API. Close #3339.
Diffstat (limited to 'python/lowlevelil.py')
-rw-r--r--python/lowlevelil.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/python/lowlevelil.py b/python/lowlevelil.py
index 98bf4da6..137a2d77 100644
--- a/python/lowlevelil.py
+++ b/python/lowlevelil.py
@@ -2772,6 +2772,25 @@ class LowLevelILFunction:
def basic_blocks(self) -> 'function.LowLevelILBasicBlockList':
return function.LowLevelILBasicBlockList(self)
+ def get_basic_block_at(self, index: int) -> Optional['basicblock.BasicBlock']:
+ """
+ ``get_basic_block_at`` returns the BasicBlock at the given LLIL instruction ``index``.
+
+ :param int index: Index of the LLIL instruction of the BasicBlock to retrieve.
+ :Example:
+ >>> current_il_function.get_basic_block_at(current_il_index)
+ <llil block: x86@19-26>
+ """
+ block = core.BNGetLowLevelILBasicBlockForInstruction(self.handle, index)
+ if not block:
+ return None
+
+ view = None
+ if self._source_function is not None:
+ view = self._source_function.view
+
+ return LowLevelILBasicBlock(block, self, view)
+
@property
def instructions(self) -> Generator['LowLevelILInstruction', None, None]:
"""A generator of llil instructions of the current llil function"""