From 801d92feb44f5bafca08d9a019404a78f12e937a Mon Sep 17 00:00:00 2001 From: rollsafe Date: Mon, 22 Jul 2019 22:09:14 -0400 Subject: Create API for whether a basic block contains any invalid instructions --- binaryninjacore.h | 1 + python/basicblock.py | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/binaryninjacore.h b/binaryninjacore.h index 23e14106..a15ecd3a 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -2657,6 +2657,7 @@ extern "C" BINARYNINJACOREAPI void BNFreeBasicBlockEdgeList(BNBasicBlockEdge* edges, size_t count); BINARYNINJACOREAPI bool BNBasicBlockHasUndeterminedOutgoingEdges(BNBasicBlock* block); BINARYNINJACOREAPI bool BNBasicBlockCanExit(BNBasicBlock* block); + BINARYNINJACOREAPI bool BNBasicBlockHasInvalidInstructions(BNBasicBlock* block); BINARYNINJACOREAPI size_t BNGetBasicBlockIndex(BNBasicBlock* block); BINARYNINJACOREAPI BNBasicBlock** BNGetBasicBlockDominators(BNBasicBlock* block, size_t* count, bool post); BINARYNINJACOREAPI BNBasicBlock** BNGetBasicBlockStrictDominators(BNBasicBlock* block, size_t* count, bool post); diff --git a/python/basicblock.py b/python/basicblock.py index 98a7b212..83df8161 100644 --- a/python/basicblock.py +++ b/python/basicblock.py @@ -293,6 +293,11 @@ class BasicBlock(object): """Whether basic block can return or is tagged as 'No Return' (read-only)""" return core.BNBasicBlockCanExit(self.handle) + @property + def has_invalid_instructions(self): + """Whether basic block has any invalid instructions (read-only)""" + return core.BNBasicBlockHasInvalidInstructions(self.handle) + @property def dominators(self): """List of dominators for this basic block (read-only)""" -- cgit v1.3.1