summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2015-05-13 18:39:44 -0400
committerRusty Wagner <rusty@vector35.com>2015-05-13 18:39:44 -0400
commita80b3f69ac88e7621e0c658ce17b226d7171eeb6 (patch)
treedb82f286412c75f3db8a34a53121000acb214154
parentcd1ac400a80898b1f6394ce518b0ba92f69fa3e1 (diff)
zlib compression transform
-rw-r--r--binaryninjaapi.h3
-rw-r--r--databuffer.cpp20
2 files changed, 23 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 50a67b3f..10ceda55 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -194,6 +194,9 @@ namespace BinaryNinja
static DataBuffer FromEscapedString(const std::string& src);
std::string ToBase64() const;
static DataBuffer FromBase64(const std::string& src);
+
+ bool ZlibCompress(DataBuffer& output) const;
+ bool ZlibDecompress(DataBuffer& output) const;
};
class TemporaryFile: public RefCountObject
diff --git a/databuffer.cpp b/databuffer.cpp
index 7814b14e..fff2a74f 100644
--- a/databuffer.cpp
+++ b/databuffer.cpp
@@ -151,6 +151,26 @@ DataBuffer DataBuffer::FromBase64(const string& src)
}
+bool DataBuffer::ZlibCompress(DataBuffer& output) const
+{
+ BNDataBuffer* result = BNZlibCompress(output.m_buffer);
+ if (!result)
+ return false;
+ output = DataBuffer(result);
+ return true;
+}
+
+
+bool DataBuffer::ZlibDecompress(DataBuffer& output) const
+{
+ BNDataBuffer* result = BNZlibDecompress(output.m_buffer);
+ if (!result)
+ return false;
+ output = DataBuffer(result);
+ return true;
+}
+
+
string BinaryNinja::EscapeString(const string& s)
{
DataBuffer buffer(s.c_str(), s.size());