summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2017-03-13 23:03:41 -0400
committerRusty Wagner <rusty@vector35.com>2017-03-13 23:03:54 -0400
commit42cb99079d4ff0a5aa49e7730bb73500d13f35dd (patch)
tree03c6a4899fc6d8c5eab5dd09742c608c7e3a104c /binaryninjacore.h
parent29be664b3c91d135b54ed34976357bb7d3413e94 (diff)
Branch dependence APIs for path sensitive analysis
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 66d5f010..7cc8b200 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -1379,6 +1379,19 @@ extern "C"
BNType* type;
};
+ enum BNILBranchDependence
+ {
+ NotBranchDependent,
+ TrueBranchDependent,
+ FalseBranchDependent
+ };
+
+ struct BNILBranchInstructionAndDependence
+ {
+ size_t branch;
+ BNILBranchDependence dependence;
+ };
+
BINARYNINJACOREAPI char* BNAllocString(const char* contents);
BINARYNINJACOREAPI void BNFreeString(char* str);
BINARYNINJACOREAPI void BNFreeStringList(char** strs, size_t count);
@@ -2242,6 +2255,12 @@ extern "C"
BINARYNINJACOREAPI size_t BNGetMediumLevelILSSAMemoryIndexAtILInstruction(BNMediumLevelILFunction* func,
size_t instr);
+ BINARYNINJACOREAPI BNILBranchDependence BNGetMediumLevelILBranchDependence(BNMediumLevelILFunction* func,
+ size_t curInstr, size_t branchInstr);
+ BINARYNINJACOREAPI BNILBranchInstructionAndDependence* BNGetAllMediumLevelILBranchDependence(
+ BNMediumLevelILFunction* func, size_t instr, size_t* count);
+ BINARYNINJACOREAPI void BNFreeILBranchDependenceList(BNILBranchInstructionAndDependence* branches);
+
BINARYNINJACOREAPI BNLowLevelILFunction* BNGetLowLevelILForMediumLevelIL(BNMediumLevelILFunction* func);
BINARYNINJACOREAPI size_t BNGetLowLevelILInstructionIndex(BNMediumLevelILFunction* func, size_t instr);
BINARYNINJACOREAPI size_t BNGetLowLevelILExprIndex(BNMediumLevelILFunction* func, size_t expr);