From 754fb4d12a85cdf8c791725002c9a1e78894d8c0 Mon Sep 17 00:00:00 2001 From: Brian Potchik Date: Wed, 4 Aug 2021 10:48:57 -0400 Subject: Expose some BasicBlock APIs. --- python/basicblock.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'python/basicblock.py') diff --git a/python/basicblock.py b/python/basicblock.py index 4b1633a1..2394f25f 100644 --- a/python/basicblock.py +++ b/python/basicblock.py @@ -297,9 +297,14 @@ class BasicBlock(object): @property def can_exit(self): - """Whether basic block can return or is tagged as 'No Return' (read-only)""" + """Whether basic block can return or is tagged as 'No Return'""" return core.BNBasicBlockCanExit(self.handle) + @can_exit.setter + def can_exit(self, value): + """Sets whether basic block can return or is tagged as 'No Return'""" + BNBasicBlockSetCanExit(self.handle, value) + @property def has_invalid_instructions(self): """Whether basic block has any invalid instructions (read-only)""" @@ -526,3 +531,11 @@ class BasicBlock(object): start = ctypes.c_uint64() ret = core.BNGetBasicBlockInstructionContainingAddress(self.handle, addr, start) return ret, start.value + + @property + def source_block(self): + """Source of this basic block (read-only)""" + result = core.BNGetBasicBlockSourceBlock(self.handle) + if not result: + return None + return self._create_instance(result, self.view) -- cgit v1.3.1