diff options
| author | Rusty Wagner <rusty@vector35.com> | 2019-02-22 15:36:40 -0500 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2019-02-22 15:41:02 -0500 |
| commit | 2f84b5c600f08101a6a7ee08738a3e3a32686f46 (patch) | |
| tree | 909537511998daa9796737e4cd287b89488761f7 /binaryninjacore.h | |
| parent | e7228de8fe2640f126a01064a8485c1270846bd1 (diff) | |
Add API for constructing disassembly text
Diffstat (limited to 'binaryninjacore.h')
| -rw-r--r-- | binaryninjacore.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h index 9f735f76..2e8b6a9a 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -159,6 +159,7 @@ extern "C" struct BNDataBuffer; struct BNDataRenderer; struct BNDataRendererContainer; + struct BNDisassemblyTextRenderer; typedef bool (*BNLoadPluginCallback)(const char* repoPath, const char* pluginPath, void* ctx); @@ -2609,6 +2610,43 @@ extern "C" BNDisassemblySettings* settings, size_t* count); BINARYNINJACOREAPI void BNFreeDisassemblyTextLines(BNDisassemblyTextLine* lines, size_t count); + BINARYNINJACOREAPI BNDisassemblyTextRenderer* BNCreateDisassemblyTextRenderer(BNFunction* func, + BNDisassemblySettings* settings); + BINARYNINJACOREAPI BNDisassemblyTextRenderer* BNCreateLowLevelILDisassemblyTextRenderer(BNLowLevelILFunction* func, + BNDisassemblySettings* settings); + BINARYNINJACOREAPI BNDisassemblyTextRenderer* BNCreateMediumLevelILDisassemblyTextRenderer(BNMediumLevelILFunction* func, + BNDisassemblySettings* settings); + BINARYNINJACOREAPI BNDisassemblyTextRenderer* BNNewDisassemblyTextRendererReference(BNDisassemblyTextRenderer* renderer); + BINARYNINJACOREAPI void BNFreeDisassemblyTextRenderer(BNDisassemblyTextRenderer* renderer); + BINARYNINJACOREAPI BNFunction* BNGetDisassemblyTextRendererFunction(BNDisassemblyTextRenderer* renderer); + BINARYNINJACOREAPI BNLowLevelILFunction* BNGetDisassemblyTextRendererLowLevelILFunction(BNDisassemblyTextRenderer* renderer); + BINARYNINJACOREAPI BNMediumLevelILFunction* BNGetDisassemblyTextRendererMediumLevelILFunction(BNDisassemblyTextRenderer* renderer); + BINARYNINJACOREAPI BNBasicBlock* BNGetDisassemblyTextRendererBasicBlock(BNDisassemblyTextRenderer* renderer); + BINARYNINJACOREAPI BNArchitecture* BNGetDisassemblyTextRendererArchitecture(BNDisassemblyTextRenderer* renderer); + BINARYNINJACOREAPI BNDisassemblySettings* BNGetDisassemblyTextRendererSettings(BNDisassemblyTextRenderer* renderer); + BINARYNINJACOREAPI void BNSetDisassemblyTextRendererBasicBlock(BNDisassemblyTextRenderer* renderer, BNBasicBlock* block); + BINARYNINJACOREAPI void BNSetDisassemblyTextRendererArchitecture(BNDisassemblyTextRenderer* renderer, BNArchitecture* arch); + BINARYNINJACOREAPI void BNSetDisassemblyTextRendererSettings(BNDisassemblyTextRenderer* renderer, BNDisassemblySettings* settings); + BINARYNINJACOREAPI bool BNIsILDisassemblyTextRenderer(BNDisassemblyTextRenderer* renderer); + BINARYNINJACOREAPI bool BNDisassmblyTextRendererHasDataFlow(BNDisassemblyTextRenderer* renderer); + BINARYNINJACOREAPI BNInstructionTextToken* BNGetDisassemblyTextRendererInstructionAnnotations( + BNDisassemblyTextRenderer* renderer, uint64_t addr, size_t* count); + BINARYNINJACOREAPI bool BNGetDisassemblyTextRendererInstructionText(BNDisassemblyTextRenderer* renderer, + uint64_t addr, size_t* len, BNInstructionTextToken** result, size_t* count, uint64_t* displayAddr); + BINARYNINJACOREAPI bool BNGetDisassemblyTextRendererLines(BNDisassemblyTextRenderer* renderer, + uint64_t addr, size_t* len, BNDisassemblyTextLine** result, size_t* count); + BINARYNINJACOREAPI void BNResetDisassemblyTextRendererDeduplicatedComments(BNDisassemblyTextRenderer* renderer); + BINARYNINJACOREAPI bool BNGetDisassemblyTextRendererSymbolTokens(BNDisassemblyTextRenderer* renderer, uint64_t addr, + size_t size, size_t operand, BNInstructionTextToken** result, size_t* count); + BINARYNINJACOREAPI BNInstructionTextToken* BNGetDisassemblyTextRendererStackVariableReferenceTokens( + BNDisassemblyTextRenderer* renderer, BNStackVariableReference* ref, size_t* count); + BINARYNINJACOREAPI bool BNIsIntegerToken(BNInstructionTextTokenType type); + BINARYNINJACOREAPI BNInstructionTextToken* BNGetDisassemblyTextRendererIntegerTokens(BNDisassemblyTextRenderer* renderer, + BNInstructionTextToken* token, BNArchitecture* arch, uint64_t addr, size_t* count); + BINARYNINJACOREAPI BNDisassemblyTextLine* BNDisassemblyTextRendererWrapComment(BNDisassemblyTextRenderer* renderer, + const BNDisassemblyTextLine* inLine, size_t* outLineCount, const char* comment, bool hasAutoAnnotations, + const char* leadingSpaces); + BINARYNINJACOREAPI void BNMarkFunctionAsRecentlyUsed(BNFunction* func); BINARYNINJACOREAPI void BNMarkBasicBlockAsRecentlyUsed(BNBasicBlock* block); |
