summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--binaryninjaapi.h4
-rw-r--r--filemetadata.cpp15
2 files changed, 19 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 1cd89be1..ecacba34 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -282,6 +282,8 @@ namespace BinaryNinja
BNFileMetadata* GetFileObject() const { return m_file; }
+ void Close();
+
void SetNavigationHandler(NavigationHandler* handler);
std::string GetFilename() const;
@@ -306,6 +308,8 @@ namespace BinaryNinja
std::string GetCurrentView();
uint64_t GetCurrentOffset();
bool Navigate(const std::string& view, uint64_t offset);
+
+ BinaryNinja::Ref<BinaryNinja::BinaryView> GetViewOfType(const std::string& name);
};
class BinaryView;
diff --git a/filemetadata.cpp b/filemetadata.cpp
index bfa7c97a..13a285fe 100644
--- a/filemetadata.cpp
+++ b/filemetadata.cpp
@@ -158,6 +158,12 @@ FileMetadata::~FileMetadata()
}
+void FileMetadata::Close()
+{
+ BNCloseFile(m_file);
+}
+
+
void FileMetadata::SetNavigationHandler(NavigationHandler* handler)
{
BNSetFileMetadataNavigationHandler(m_file, handler->GetCallbacks());
@@ -273,3 +279,12 @@ bool FileMetadata::Navigate(const string& view, uint64_t offset)
{
return BNNavigate(m_file, view.c_str(), offset);
}
+
+
+Ref<BinaryView> FileMetadata::GetViewOfType(const string& name)
+{
+ BNBinaryView* view = BNGetFileViewOfType(m_file, name.c_str());
+ if (!view)
+ return nullptr;
+ return new BinaryView(view);
+}