diff options
| author | Josh Ferrell <josh@vector35.com> | 2020-07-10 14:07:48 -0400 |
|---|---|---|
| committer | Josh Ferrell <josh@vector35.com> | 2020-07-10 14:07:48 -0400 |
| commit | de77d8ad64a3ed39e362f4fa979132d47d5a056c (patch) | |
| tree | 0966d00826570f9c51ead0ad5eab278c09d2301b /python/filemetadata.py | |
| parent | 045c1a93d032e96ef5647db51803efcd08b6551b (diff) | |
Add save settings
Diffstat (limited to 'python/filemetadata.py')
| -rw-r--r-- | python/filemetadata.py | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/python/filemetadata.py b/python/filemetadata.py index 937686b7..2b50f23b 100644 --- a/python/filemetadata.py +++ b/python/filemetadata.py @@ -27,6 +27,7 @@ import binaryninja from binaryninja import _binaryninjacore as core from binaryninja import associateddatastore #required for _FileMetadataAssociatedDataStore from binaryninja import log +from binaryninja.enums import SaveOption class NavigationHandler(object): def _register(self, handle): @@ -60,6 +61,27 @@ class NavigationHandler(object): return False +class SaveSettings(object): + def __init__(self, handle = None): + if handle is None: + self.handle = core.BNCreateSaveSettings() + else: + self.handle = handle + + def __del__(self): + core.BNFreeSaveSettings(self.handle) + + def is_option_set(self, option): + if isinstance(option, str): + option = SaveOption[option] + return core.BNIsSaveSettingsOptionSet(self.handle, option) + + def set_option(self, option, state = True): + if isinstance(option, str): + option = SaveOption[option] + core.BNSetSaveSettingsOption(self.handle, option, state) + + class _FileMetadataAssociatedDataStore(associateddatastore._AssociatedDataStore): _defaults = {} @@ -331,13 +353,13 @@ class FileMetadata(object): def navigate(self, view, offset): return core.BNNavigate(self.handle, str(view), offset) - def create_database(self, filename, progress_func = None, clean = False): + def create_database(self, filename, progress_func = None, settings = None): if progress_func is None: - return core.BNCreateDatabase(self.raw.handle, str(filename), clean) + return core.BNCreateDatabase(self.raw.handle, str(filename), settings) else: return core.BNCreateDatabaseWithProgress(self.raw.handle, str(filename), None, ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_ulonglong, ctypes.c_ulonglong)( - lambda ctxt, cur, total: progress_func(cur, total)), clean) + lambda ctxt, cur, total: progress_func(cur, total)), settings) def open_existing_database(self, filename, progress_func = None): if progress_func is None: @@ -356,13 +378,13 @@ class FileMetadata(object): return None return binaryninja.binaryview.BinaryView(file_metadata = self, handle = view) - def save_auto_snapshot(self, progress_func = None, clean = False): + def save_auto_snapshot(self, progress_func = None, settings = None): if progress_func is None: - return core.BNSaveAutoSnapshot(self.raw.handle, clean) + return core.BNSaveAutoSnapshot(self.raw.handle, settings) else: return core.BNSaveAutoSnapshotWithProgress(self.raw.handle, None, ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_ulonglong, ctypes.c_ulonglong)( - lambda ctxt, cur, total: progress_func(cur, total)), clean) + lambda ctxt, cur, total: progress_func(cur, total)), settings) def merge_user_analysis(self, path, progress_func = None): return core.BNMergeUserAnalysis(self.handle, str(path), None, |
