diff options
| author | Rusty Wagner <rusty@vector35.com> | 2016-07-10 02:41:25 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2016-07-10 02:41:25 -0400 |
| commit | 7853b6eea8c80b537e2fa199a19dde0f68845449 (patch) | |
| tree | a2f9dfaad82faf2ba77df029493041fbf7707c66 /binaryninjacore.h | |
| parent | 05b8dae707da62437abf262fe8d1dd2b74a5f98f (diff) | |
Add APIs for accessing linear disassembly
Diffstat (limited to 'binaryninjacore.h')
| -rw-r--r-- | binaryninjacore.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h index 805ff090..9784b4ab 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -169,6 +169,16 @@ extern "C" AddressDisplayToken = 68 }; + enum BNLinearDisassemblyLineType + { + CodeDisassemblyLineType, + DataVariableLineType, + HexDumpLineType, + FunctionHeaderLineType, + FunctionContinuationLineType, + StackVariableLineType + }; + enum BNSymbolType { FunctionSymbol = 0, @@ -299,6 +309,9 @@ extern "C" { ShowAddress = 0, + // Linear disassembly options + GroupLinearDisassemblyFunctions = 64, + // Debugging options ShowBasicBlockRegisterState = 128, ShowFlagUsage = 129 @@ -580,6 +593,22 @@ extern "C" size_t count; }; + struct BNLinearDisassemblyLine + { + BNLinearDisassemblyLineType type; + BNFunction* function; + BNBasicBlock* block; + size_t lineOffset; + BNDisassemblyTextLine contents; + }; + + struct BNLinearDisassemblyPosition + { + BNFunction* function; + BNBasicBlock* block; + uint64_t address; + }; + struct BNReferenceSource { BNFunction* func; @@ -1231,6 +1260,19 @@ extern "C" BINARYNINJACOREAPI BNAnalysisProgress BNGetAnalysisProgress(BNBinaryView* view); + BINARYNINJACOREAPI uint64_t BNGetNextFunctionStartAfterAddress(BNBinaryView* view, uint64_t addr); + BINARYNINJACOREAPI uint64_t BNGetNextBasicBlockStartAfterAddress(BNBinaryView* view, uint64_t addr); + BINARYNINJACOREAPI uint64_t BNGetNextDataAfterAddress(BNBinaryView* view, uint64_t addr); + + BINARYNINJACOREAPI BNLinearDisassemblyPosition BNGetLinearDisassemblyPositionForAddress(BNBinaryView* view, + uint64_t addr); + BINARYNINJACOREAPI void BNFreeLinearDisassemblyPosition(BNLinearDisassemblyPosition* pos); + BINARYNINJACOREAPI BNLinearDisassemblyLine* BNGetPreviousLinearDisassemblyLines(BNBinaryView* view, + BNLinearDisassemblyPosition* pos, BNDisassemblySettings* settings, size_t* count); + BINARYNINJACOREAPI BNLinearDisassemblyLine* BNGetNextLinearDisassemblyLines(BNBinaryView* view, + BNLinearDisassemblyPosition* pos, BNDisassemblySettings* settings, size_t* count); + BINARYNINJACOREAPI void BNFreeLinearDisassemblyLines(BNLinearDisassemblyLine* lines, size_t count); + // Disassembly settings BINARYNINJACOREAPI BNDisassemblySettings* BNCreateDisassemblySettings(void); BINARYNINJACOREAPI BNDisassemblySettings* BNNewDisassemblySettingsReference(BNDisassemblySettings* settings); |
