From f184af8b393b789f29fd7974c7c8766874daa5f4 Mon Sep 17 00:00:00 2001 From: Brian Potchik Date: Wed, 9 Dec 2020 17:17:18 -0500 Subject: Cleanup project creation and add API. --- binaryninjaapi.h | 4 ++++ binaryninjacore.h | 4 ++++ filemetadata.cpp | 18 ++++++++++++++++++ python/filemetadata.py | 9 +++++++++ 4 files changed, 35 insertions(+) diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 75d83ccc..85c9c51b 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -939,6 +939,10 @@ __attribute__ ((format (printf, 1, 2))) std::vector> GetUsers(); std::vector GetUndoEntries(); + bool OpenProject(); + void CloseProject(); + bool IsProjectOpen(); + std::string GetCurrentView(); uint64_t GetCurrentOffset(); bool Navigate(const std::string& view, uint64_t offset); diff --git a/binaryninjacore.h b/binaryninjacore.h index b64427ed..4eab7a44 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -2635,6 +2635,10 @@ __attribute__ ((format (printf, 1, 2))) BINARYNINJACOREAPI char* BNGetUserEmail(BNUser* user); BINARYNINJACOREAPI char* BNGetUserId(BNUser* user); + BINARYNINJACOREAPI bool BNOpenProject(BNFileMetadata* file); + BINARYNINJACOREAPI void BNCloseProject(BNFileMetadata* file); + BINARYNINJACOREAPI bool BNIsProjectOpen(BNFileMetadata* file); + BINARYNINJACOREAPI char* BNGetCurrentView(BNFileMetadata* file); BINARYNINJACOREAPI uint64_t BNGetCurrentOffset(BNFileMetadata* file); BINARYNINJACOREAPI bool BNNavigate(BNFileMetadata* file, const char* view, uint64_t offset); diff --git a/filemetadata.cpp b/filemetadata.cpp index 9559b041..46292095 100644 --- a/filemetadata.cpp +++ b/filemetadata.cpp @@ -320,6 +320,24 @@ vector FileMetadata::GetUndoEntries() } +bool FileMetadata::OpenProject() +{ + return BNOpenProject(m_object); +} + + +void FileMetadata::CloseProject() +{ + BNCloseProject(m_object); +} + + +bool FileMetadata::IsProjectOpen() +{ + return BNIsProjectOpen(m_object); +} + + string FileMetadata::GetCurrentView() { char* view = BNGetCurrentView(m_object); diff --git a/python/filemetadata.py b/python/filemetadata.py index 3f2e88ef..46a399f1 100644 --- a/python/filemetadata.py +++ b/python/filemetadata.py @@ -454,6 +454,15 @@ class FileMetadata(object): return None return binaryninja.binaryview.BinaryView(file_metadata = self, handle = view) + def open_project(self): + return core.BNOpenProject(self.handle) + + def close_project(self): + core.BNCloseProject(self.handle) + + def is_project_open(self): + return core.BNIsProjectOpen(self.handle) + @property def existing_views(self): length = ctypes.c_ulonglong() -- cgit v1.3.1