summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2018-08-28 17:19:32 -0400
committerRusty Wagner <rusty@vector35.com>2018-08-28 17:19:32 -0400
commit20e06506a3d96c7327ca5d729ab01e8c2a7cff3c (patch)
tree65880063ccbdcb45cc247a0138915d8560d2ec27 /binaryninjaapi.h
parent5841af2db8e8dcf4e0da0c438ac040c5fa90038b (diff)
parent426bb3d8b47b93658bf969c429a8b98adae13c30 (diff)
Merge branch 'dev' into test_stack_adjust
Diffstat (limited to 'binaryninjaapi.h')
-rw-r--r--binaryninjaapi.h48
1 files changed, 31 insertions, 17 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index e0406592..b5c2867b 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -840,6 +840,9 @@ namespace BinaryNinja
void SetNavigationHandler(NavigationHandler* handler);
+ std::string GetOriginalFilename() const;
+ void SetOriginalFilename(const std::string& name);
+
std::string GetFilename() const;
void SetFilename(const std::string& name);
@@ -1397,6 +1400,8 @@ namespace BinaryNinja
void SetParametersForAnalysis(BNAnalysisParameters params);
uint64_t GetMaxFunctionSizeForAnalysis();
void SetMaxFunctionSizeForAnalysis(uint64_t size);
+ bool GetNewAutoFunctionAnalysisSuppressed();
+ void SetNewAutoFunctionAnalysisSuppressed(bool suppress);
};
class BinaryData: public BinaryView
@@ -3003,6 +3008,7 @@ namespace BinaryNinja
uint32_t GetTemporaryFlagCount();
std::vector<Ref<BasicBlock>> GetBasicBlocks() const;
+ Ref<BasicBlock> GetBasicBlockForInstruction(size_t i) const;
Ref<LowLevelILFunction> GetSSAForm() const;
Ref<LowLevelILFunction> GetNonSSAForm() const;
@@ -3323,6 +3329,7 @@ namespace BinaryNinja
void VisitAllExprs(const std::function<bool(BasicBlock* block, const MediumLevelILInstruction& expr)>& func);
std::vector<Ref<BasicBlock>> GetBasicBlocks() const;
+ Ref<BasicBlock> GetBasicBlockForInstruction(size_t i) const;
Ref<MediumLevelILFunction> GetSSAForm() const;
Ref<MediumLevelILFunction> GetNonSSAForm() const;
@@ -3736,6 +3743,7 @@ namespace BinaryNinja
protected:
DownloadInstance(DownloadProvider* provider);
DownloadInstance(BNDownloadInstance* instance);
+ virtual ~DownloadInstance();
static void DestroyInstanceCallback(void* ctxt);
static int PerformRequestCallback(void* ctxt, const char* url);
@@ -3746,15 +3754,17 @@ namespace BinaryNinja
virtual int PerformRequest(const std::string& url) = 0;
int PerformRequest(const std::string& url, BNDownloadInstanceOutputCallbacks* callbacks);
-
- std::string GetError() const;
+ uint64_t WriteDataCallback(uint8_t* data, uint64_t len);
+ bool NotifyProgressCallback(uint64_t progress, uint64_t total);
void SetError(const std::string& error);
+ std::string GetError() const;
};
class CoreDownloadInstance: public DownloadInstance
{
public:
CoreDownloadInstance(BNDownloadInstance* instance);
+ virtual ~CoreDownloadInstance() {};
virtual int PerformRequest(const std::string& url) override;
};
@@ -3810,6 +3820,7 @@ namespace BinaryNinja
protected:
ScriptingInstance(ScriptingProvider* provider);
ScriptingInstance(BNScriptingInstance* instance);
+ virtual ~ScriptingInstance();
static void DestroyInstanceCallback(void* ctxt);
static BNScriptingProviderExecuteResult ExecuteScriptInputCallback(void* ctxt, const char* input);
@@ -3842,6 +3853,7 @@ namespace BinaryNinja
{
public:
CoreScriptingInstance(BNScriptingInstance* instance);
+ virtual ~CoreScriptingInstance() {};
virtual BNScriptingProviderExecuteResult ExecuteScriptInput(const std::string& input) override;
virtual void SetCurrentBinaryView(BinaryView* view) override;
@@ -3864,6 +3876,8 @@ namespace BinaryNinja
public:
virtual Ref<ScriptingInstance> CreateNewInstance() = 0;
+ std::string GetName();
+
static std::vector<Ref<ScriptingProvider>> GetList();
static Ref<ScriptingProvider> GetByName(const std::string& name);
static void Register(ScriptingProvider* provider);
@@ -4107,21 +4121,21 @@ namespace BinaryNinja
class Metadata: public CoreRefCountObject<BNMetadata, BNNewMetadataReference, BNFreeMetadata>
{
public:
- Metadata(BNMetadata* structuredData);
- Metadata(bool data);
- Metadata(const std::string& data);
- Metadata(uint64_t data);
- Metadata(int64_t data);
- Metadata(double data);
- Metadata(const std::vector<bool>& data);
- Metadata(const std::vector<std::string>& data);
- Metadata(const std::vector<uint64_t>& data);
- Metadata(const std::vector<int64_t>& data);
- Metadata(const std::vector<double>& data);
- Metadata(const std::vector<uint8_t>& data);
- Metadata(const std::vector<Ref<Metadata>>& data);
- Metadata(const std::map<std::string, Ref<Metadata>>& data);
- Metadata(MetadataType type);
+ explicit Metadata(BNMetadata* structuredData);
+ explicit Metadata(bool data);
+ explicit Metadata(const std::string& data);
+ explicit Metadata(uint64_t data);
+ explicit Metadata(int64_t data);
+ explicit Metadata(double data);
+ explicit Metadata(const std::vector<bool>& data);
+ explicit Metadata(const std::vector<std::string>& data);
+ explicit Metadata(const std::vector<uint64_t>& data);
+ explicit Metadata(const std::vector<int64_t>& data);
+ explicit Metadata(const std::vector<double>& data);
+ explicit Metadata(const std::vector<uint8_t>& data);
+ explicit Metadata(const std::vector<Ref<Metadata>>& data);
+ explicit Metadata(const std::map<std::string, Ref<Metadata>>& data);
+ explicit Metadata(MetadataType type);
virtual ~Metadata() {}
bool operator==(const Metadata& rhs);