summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Wiens <jordan@psifertex.com>2018-08-23 00:57:06 -0400
committerJordan Wiens <jordan@psifertex.com>2018-08-23 00:57:06 -0400
commitebed7129ba102453f04f99e2f78278ff8aeef6f9 (patch)
tree74526b041d64c8f6945ef169b617875a7dcc24eb
parent66fe3d6c8b6a09724ef9cb9e1c0c524258a71c85 (diff)
add support for original_filename property
-rw-r--r--binaryninjaapi.h3
-rw-r--r--binaryninjacore.h3
-rw-r--r--filemetadata.cpp15
-rw-r--r--python/filemetadata.py11
4 files changed, 31 insertions, 1 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index b00689e0..a3db346a 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -821,6 +821,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);
diff --git a/binaryninjacore.h b/binaryninjacore.h
index c2d9f9f7..45ffc077 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -1950,6 +1950,9 @@ extern "C"
BINARYNINJACOREAPI bool BNSaveAutoSnapshotWithProgress(BNBinaryView* data, void* ctxt,
void (*progress)(void* ctxt, size_t progress, size_t total));
+ BINARYNINJACOREAPI char* BNGetOriginalFilename(BNFileMetadata* file);
+ BINARYNINJACOREAPI void BNSetOriginalFilename(BNFileMetadata* file, const char* name);
+
BINARYNINJACOREAPI char* BNGetFilename(BNFileMetadata* file);
BINARYNINJACOREAPI void BNSetFilename(BNFileMetadata* file, const char* name);
diff --git a/filemetadata.cpp b/filemetadata.cpp
index dc08fe30..bbde5d72 100644
--- a/filemetadata.cpp
+++ b/filemetadata.cpp
@@ -208,6 +208,21 @@ void FileMetadata::SetNavigationHandler(NavigationHandler* handler)
}
+string FileMetadata::GetOriginalFilename() const
+{
+ char* str = BNGetOriginalFilename(m_object);
+ string result = str;
+ BNFreeString(str);
+ return result;
+}
+
+
+void FileMetadata::SetOriginalFilename(const string& name)
+{
+ BNSetOriginalFilename(m_object, name.c_str());
+}
+
+
string FileMetadata::GetFilename() const
{
char* str = BNGetFilename(m_object);
diff --git a/python/filemetadata.py b/python/filemetadata.py
index cafe1d67..4d51f4d9 100644
--- a/python/filemetadata.py
+++ b/python/filemetadata.py
@@ -114,8 +114,17 @@ class FileMetadata(object):
_FileMetadataAssociatedDataStore.set_default(name, value)
@property
+ def original_filename(self):
+ """The original name of the binary opened if a bndb, otherwise reads or sets the current filename (read/write)"""
+ return core.BNGetOriginalFilename(self.handle)
+
+ @original_filename.setter
+ def original_filename(self, value):
+ core.BNSetOriginalFilename(self.handle, str(value))
+
+ @property
def filename(self):
- """The name of the file (read/write)"""
+ """The name of the open bndb or binary filename (read/write)"""
return core.BNGetFilename(self.handle)
@filename.setter