diff options
| -rw-r--r-- | binaryninjaapi.h | 2 | ||||
| -rw-r--r-- | binaryninjacore.h | 4 | ||||
| -rw-r--r-- | transformcontext.cpp | 21 |
3 files changed, 26 insertions, 1 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 375fb227..ad557146 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -9160,7 +9160,9 @@ namespace BinaryNinja { Ref<BinaryView> GetInput() const; std::string GetFileName() const; + std::vector<std::string> GetAvailableTransforms() const; std::string GetTransformName() const; + void SetTransformName(const std::string& transformName); void SetTransformParameters(const std::map<std::string, DataBuffer>& params); void SetTransformParameter(const std::string& name, const DataBuffer& data); bool HasTransformParameter(const std::string& name) const; diff --git a/binaryninjacore.h b/binaryninjacore.h index 3e6f60fd..74389263 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -37,7 +37,7 @@ // Current ABI version for linking to the core. This is incremented any time // there are changes to the API that affect linking, including new functions, // new types, or modifications to existing functions or types. -#define BN_CURRENT_CORE_ABI_VERSION 142 +#define BN_CURRENT_CORE_ABI_VERSION 143 // Minimum ABI version that is supported for loading of plugins. Plugins that // are linked to an ABI version less than this will not be able to load and @@ -4741,7 +4741,9 @@ extern "C" BINARYNINJACOREAPI void BNFreeTransformContext(BNTransformContext* context); BINARYNINJACOREAPI BNBinaryView* BNTransformContextGetInput(BNTransformContext* context); BINARYNINJACOREAPI char* BNTransformContextGetFileName(BNTransformContext* context); + BINARYNINJACOREAPI char** BNTransformContextGetAvailableTransforms(BNTransformContext* context, size_t* count); BINARYNINJACOREAPI char* BNTransformContextGetTransformName(BNTransformContext* context); + BINARYNINJACOREAPI void BNTransformContextSetTransformName(BNTransformContext* context, const char* transformName); BINARYNINJACOREAPI void BNTransformContextSetTransformParameters(BNTransformContext* context, BNTransformParameter* params, size_t paramCount); BINARYNINJACOREAPI void BNTransformContextSetTransformParameter(BNTransformContext* context, const char* name, BNDataBuffer* data); BINARYNINJACOREAPI bool BNTransformContextHasTransformParameter(BNTransformContext* context, const char* name); diff --git a/transformcontext.cpp b/transformcontext.cpp index 181d3c79..0ebb4d8a 100644 --- a/transformcontext.cpp +++ b/transformcontext.cpp @@ -30,6 +30,21 @@ string TransformContext::GetFileName() const } +vector<string> TransformContext::GetAvailableTransforms() const +{ + size_t count; + char** transforms = BNTransformContextGetAvailableTransforms(m_object, &count); + + vector<string> result; + result.reserve(count); + + for (size_t i = 0; i < count; i++) + result.push_back(transforms[i]); + BNFreeStringList(transforms, count); + return result; +} + + string TransformContext::GetTransformName() const { char* name = BNTransformContextGetTransformName(m_object); @@ -39,6 +54,12 @@ string TransformContext::GetTransformName() const } +void TransformContext::SetTransformName(const string& transformName) +{ + BNTransformContextSetTransformName(m_object, transformName.c_str()); +} + + void TransformContext::SetTransformParameters(const map<string, DataBuffer>& params) { BNTransformParameter* list = new BNTransformParameter[params.size()]; |
