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 /binaryninjaapi.h | |
| parent | 05b8dae707da62437abf262fe8d1dd2b74a5f98f (diff) | |
Add APIs for accessing linear disassembly
Diffstat (limited to 'binaryninjaapi.h')
| -rw-r--r-- | binaryninjaapi.h | 61 |
1 files changed, 45 insertions, 16 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 9e8f516c..47490857 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -612,6 +612,41 @@ namespace BinaryNinja Ref<Architecture> arch; uint64_t addr; }; + + struct InstructionTextToken + { + BNInstructionTextTokenType type; + std::string text; + uint64_t value; + + InstructionTextToken(); + InstructionTextToken(BNInstructionTextTokenType type, const std::string& text, uint64_t value = 0); + }; + + struct DisassemblyTextLine + { + uint64_t addr; + std::vector<InstructionTextToken> tokens; + }; + + struct LinearDisassemblyPosition + { + Ref<Function> function; + Ref<BasicBlock> block; + uint64_t address; + }; + + struct LinearDisassemblyLine + { + BNLinearDisassemblyLineType type; + Ref<Function> function; + Ref<BasicBlock> block; + size_t lineOffset; + DisassemblyTextLine contents; + }; + + class DisassemblySettings; + class AnalysisCompletionEvent: public CoreRefCountObject<BNAnalysisCompletionEvent, BNNewAnalysisCompletionEventReference, BNFreeAnalysisCompletionEvent> { @@ -811,6 +846,16 @@ namespace BinaryNinja Ref<AnalysisCompletionEvent> AddAnalysisCompletionEvent(const std::function<void()>& callback); BNAnalysisProgress GetAnalysisProgress(); + + uint64_t GetNextFunctionStartAfterAddress(uint64_t addr); + uint64_t GetNextBasicBlockStartAfterAddress(uint64_t addr); + uint64_t GetNextDataAfterAddress(uint64_t addr); + + LinearDisassemblyPosition GetLinearDisassemblyPositionForAddress(uint64_t addr); + std::vector<LinearDisassemblyLine> GetPreviousLinearDisassemblyLines(LinearDisassemblyPosition& pos, + DisassemblySettings* settings); + std::vector<LinearDisassemblyLine> GetNextLinearDisassemblyLines(LinearDisassemblyPosition& pos, + DisassemblySettings* settings); }; class BinaryData: public BinaryView @@ -1035,16 +1080,6 @@ namespace BinaryNinja void AddBranch(BNBranchType type, uint64_t target = 0, Architecture* arch = nullptr, bool hasDelaySlot = false); }; - struct InstructionTextToken - { - BNInstructionTextTokenType type; - std::string text; - uint64_t value; - - InstructionTextToken(); - InstructionTextToken(BNInstructionTextTokenType type, const std::string& text, uint64_t value = 0); - }; - class LowLevelILFunction; class FunctionRecognizer; class CallingConvention; @@ -1396,12 +1431,6 @@ namespace BinaryNinja void SetMaximumSymbolWidth(size_t width); }; - struct DisassemblyTextLine - { - uint64_t addr; - std::vector<InstructionTextToken> tokens; - }; - class Function; struct BasicBlockEdge |
