diff options
| author | Rusty Wagner <rusty@vector35.com> | 2017-03-13 23:03:41 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2017-03-13 23:03:54 -0400 |
| commit | 42cb99079d4ff0a5aa49e7730bb73500d13f35dd (patch) | |
| tree | 03c6a4899fc6d8c5eab5dd09742c608c7e3a104c /binaryninjacore.h | |
| parent | 29be664b3c91d135b54ed34976357bb7d3413e94 (diff) | |
Branch dependence APIs for path sensitive analysis
Diffstat (limited to 'binaryninjacore.h')
| -rw-r--r-- | binaryninjacore.h | 19 |
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); |
