diff options
| author | Rusty Wagner <rusty@vector35.com> | 2016-07-19 01:28:31 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2016-07-19 01:28:31 -0400 |
| commit | b2faff7bd9112a878b5fca33048fdbab2fb52045 (patch) | |
| tree | 8c5cc32fc90fb48f7b74c1721bf7cdc9084e9817 /binaryninjaapi.h | |
| parent | 9a97191ff5966c1621dc49091263d439a5b50fa8 (diff) | |
Adding APIs for data variables
Diffstat (limited to 'binaryninjaapi.h')
| -rw-r--r-- | binaryninjaapi.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 18a379c3..d1d8eeb5 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -665,6 +665,13 @@ namespace BinaryNinja void Cancel(); }; + struct DataVariable + { + uint64_t address; + Ref<Type> type; + bool autoDiscovered; + }; + /*! BinaryView is the base class for creating views on binary data (e.g. ELF, PE, Mach-O). BinaryView should be subclassed to create a new BinaryView */ @@ -803,6 +810,14 @@ namespace BinaryNinja void UpdateAnalysis(); void AbortAnalysis(); + void DefineDataVariable(uint64_t addr, Type* type); + void DefineUserDataVariable(uint64_t addr, Type* type); + void UndefineDataVariable(uint64_t addr); + void UndefineUserDataVariable(uint64_t addr); + + std::map<uint64_t, DataVariable> GetDataVariables(); + bool GetDataVariableAtAddress(uint64_t addr, DataVariable& var); + std::vector<Ref<Function>> GetAnalysisFunctionList(); bool HasFunctions() const; Ref<Function> GetAnalysisFunction(Platform* platform, uint64_t addr); @@ -832,7 +847,6 @@ namespace BinaryNinja void DefineImportedFunction(Symbol* importAddressSym, Function* func); - bool IsNeverBranchPatchAvailable(Architecture* arch, uint64_t addr); bool IsAlwaysBranchPatchAvailable(Architecture* arch, uint64_t addr); bool IsInvertBranchPatchAvailable(Architecture* arch, uint64_t addr); @@ -854,9 +868,11 @@ namespace BinaryNinja uint64_t GetNextFunctionStartAfterAddress(uint64_t addr); uint64_t GetNextBasicBlockStartAfterAddress(uint64_t addr); uint64_t GetNextDataAfterAddress(uint64_t addr); + uint64_t GetNextDataVariableAfterAddress(uint64_t addr); uint64_t GetPreviousFunctionStartBeforeAddress(uint64_t addr); uint64_t GetPreviousBasicBlockEndBeforeAddress(uint64_t addr); uint64_t GetPreviousDataBeforeAddress(uint64_t addr); + uint64_t GetPreviousDataVariableBeforeAddress(uint64_t addr); LinearDisassemblyPosition GetLinearDisassemblyPositionForAddress(uint64_t addr, DisassemblySettings* settings); std::vector<LinearDisassemblyLine> GetPreviousLinearDisassemblyLines(LinearDisassemblyPosition& pos, |
