summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--binaryninjaapi.h2
-rw-r--r--binaryninjacore.h4
-rw-r--r--transformcontext.cpp21
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()];