summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorbambu <bambu@revengsec.com>2016-07-02 14:34:31 -0400
committerbambu <bambu@revengsec.com>2016-07-02 14:34:31 -0400
commit46fe170c40dd0de44b83ebbce673462b5de8760c (patch)
tree104943992de2f194c7e2c6cf46f3153b98fbb133 /binaryninjacore.h
parent5abb8218e5cd2be9b4cefb16eebdee6caf8108c6 (diff)
parenta7eaa72caa4a5e3e7cd7ea7c32236c93b06d1442 (diff)
Merge remote-tracking branch 'upstream/dev' into dev
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h57
1 files changed, 47 insertions, 10 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index db6f6f27..048255b1 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -95,14 +95,16 @@ extern "C"
struct BNEnumeration;
struct BNCallingConvention;
struct BNPlatform;
+ struct BNAnalysisCompletionEvent;
+ //! Console log levels
enum BNLogLevel
{
- DebugLog = 0,
- InfoLog = 1,
- WarningLog = 2,
- ErrorLog = 3,
- AlertLog = 4
+ DebugLog = 0, //!< Debug logging level, most verbose logging level
+ InfoLog = 1, //!< Information logging level, default logging level
+ WarningLog = 2, //!< Warning logging level, messages show with warning icon in the UI
+ ErrorLog = 3, //!< Error logging level, messages show with error icon in the UI
+ AlertLog = 4 //!< Alert logging level, messages are displayed with popup message box in the UI
};
enum BNEndianness
@@ -245,6 +247,7 @@ extern "C"
LLIL_CMP_SGT,
LLIL_CMP_UGT,
LLIL_TEST_BIT,
+ LLIL_BOOL_TO_INT,
LLIL_SYSCALL,
LLIL_BP,
LLIL_TRAP,
@@ -362,7 +365,8 @@ extern "C"
OffsetFromUndeterminedValue,
SignedRangeValue,
UnsignedRangeValue,
- LookupTableValue
+ LookupTableValue,
+ ComparisonResultValue
};
struct BNLookupTableEntry
@@ -731,6 +735,19 @@ extern "C"
uint64_t address;
};
+ enum BNAnalysisState
+ {
+ IdleState,
+ DisassembleState,
+ AnalyzeState
+ };
+
+ struct BNAnalysisProgress
+ {
+ BNAnalysisState state;
+ size_t count, total;
+ };
+
BINARYNINJACOREAPI char* BNAllocString(const char* contents);
BINARYNINJACOREAPI void BNFreeString(char* str);
@@ -1115,12 +1132,24 @@ extern "C"
BINARYNINJACOREAPI size_t* BNGetLowLevelILExitsForInstruction(BNFunction* func, BNArchitecture* arch, uint64_t addr,
size_t* count);
BINARYNINJACOREAPI void BNFreeLowLevelILInstructionList(size_t* list);
- BINARYNINJACOREAPI BNRegisterValue BNGetRegisterValueAtInstruction(BNFunction* func, BNArchitecture* arch, uint64_t addr,
- uint32_t reg);
- BINARYNINJACOREAPI BNRegisterValue BNGetRegisterValueAfterInstruction(BNFunction* func, BNArchitecture* arch, uint64_t addr,
- uint32_t reg);
+ BINARYNINJACOREAPI BNRegisterValue BNGetRegisterValueAtInstruction(BNFunction* func, BNArchitecture* arch,
+ uint64_t addr, uint32_t reg);
+ BINARYNINJACOREAPI BNRegisterValue BNGetRegisterValueAfterInstruction(BNFunction* func, BNArchitecture* arch,
+ uint64_t addr, uint32_t reg);
BINARYNINJACOREAPI BNRegisterValue BNGetRegisterValueAtLowLevelILInstruction(BNFunction* func, size_t i, uint32_t reg);
BINARYNINJACOREAPI BNRegisterValue BNGetRegisterValueAfterLowLevelILInstruction(BNFunction* func, size_t i, uint32_t reg);
+ BINARYNINJACOREAPI BNRegisterValue BNGetStackContentsAtInstruction(BNFunction* func, BNArchitecture* arch,
+ uint64_t addr, int64_t offset, size_t size);
+ BINARYNINJACOREAPI BNRegisterValue BNGetStackContentsAfterInstruction(BNFunction* func, BNArchitecture* arch,
+ uint64_t addr, int64_t offset, size_t size);
+ BINARYNINJACOREAPI BNRegisterValue BNGetStackContentsAtLowLevelILInstruction(BNFunction* func, size_t i,
+ int64_t offset, size_t size);
+ BINARYNINJACOREAPI BNRegisterValue BNGetStackContentsAfterLowLevelILInstruction(BNFunction* func, size_t i,
+ int64_t offset, size_t size);
+ BINARYNINJACOREAPI BNRegisterValue BNGetParameterValueAtInstruction(BNFunction* func, BNArchitecture* arch,
+ uint64_t addr, BNType* functionType, size_t i);
+ BINARYNINJACOREAPI BNRegisterValue BNGetParameterValueAtLowLevelILInstruction(BNFunction* func, size_t instr,
+ BNType* functionType, size_t i);
BINARYNINJACOREAPI void BNFreeRegisterValue(BNRegisterValue* value);
BINARYNINJACOREAPI uint32_t* BNGetRegistersReadByInstruction(BNFunction* func, BNArchitecture* arch, uint64_t addr,
size_t* count);
@@ -1189,6 +1218,14 @@ extern "C"
uint64_t addr, size_t* count);
BINARYNINJACOREAPI void BNFreeInstructionTextLines(BNInstructionTextLine* lines, size_t count);
+ BINARYNINJACOREAPI BNAnalysisCompletionEvent* BNAddAnalysisCompletionEvent(BNBinaryView* view, void* ctxt,
+ void (*callback)(void* ctxt));
+ BINARYNINJACOREAPI BNAnalysisCompletionEvent* BNNewAnalysisCompletionEventReference(BNAnalysisCompletionEvent* event);
+ BINARYNINJACOREAPI void BNFreeAnalysisCompletionEvent(BNAnalysisCompletionEvent* event);
+ BINARYNINJACOREAPI void BNCancelAnalysisCompletionEvent(BNAnalysisCompletionEvent* event);
+
+ BINARYNINJACOREAPI BNAnalysisProgress BNGetAnalysisProgress(BNBinaryView* view);
+
// Function graph
BINARYNINJACOREAPI BNFunctionGraph* BNCreateFunctionGraph(BNFunction* func);
BINARYNINJACOREAPI BNFunctionGraph* BNNewFunctionGraphReference(BNFunctionGraph* graph);