From b9389bc1cbc1fa54d522cf3cfb56a1aedfc01d6b Mon Sep 17 00:00:00 2001 From: Xusheng Date: Mon, 8 Aug 2022 11:39:18 +0800 Subject: Add missing get_basic_block_at() function for IL functions in Python API. Close #3339. --- python/lowlevelil.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'python/lowlevelil.py') 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) + + """ + 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""" -- cgit v1.3.1