filemetadata module¶
|
|
|
|
- class FileMetadata(filename: Optional[str] = None, handle: Optional[LP_BNFileMetadata] = None)[source]¶
Bases:
object
class FileMetadata
represents the file being analyzed by Binary Ninja. It is responsible for opening, closing, creating the database (.bndb) files, and is used to keep track of undoable actions.- begin_undo_actions() None [source]¶
begin_undo_actions
start recording actions taken so they can be undone at some point.- Return type:
None
- Example:
>>> bv.get_disassembly(0x100012f1) 'xor eax, eax' >>> bv.begin_undo_actions() >>> bv.convert_to_nop(0x100012f1) True >>> bv.commit_undo_actions() >>> bv.get_disassembly(0x100012f1) 'nop' >>> bv.undo() >>> bv.get_disassembly(0x100012f1) 'xor eax, eax' >>>
- close() None [source]¶
Closes the underlying file handle. It is recommended that this is done in a finally clause to avoid handle leaks.
- Return type:
None
- commit_undo_actions() None [source]¶
commit_undo_actions
commit the actions taken since the last commit to the undo database.- Return type:
None
- Example:
>>> bv.get_disassembly(0x100012f1) 'xor eax, eax' >>> bv.begin_undo_actions() >>> bv.convert_to_nop(0x100012f1) True >>> bv.commit_undo_actions() >>> bv.get_disassembly(0x100012f1) 'nop' >>> bv.undo() >>> bv.get_disassembly(0x100012f1) 'xor eax, eax' >>>
- create_database(filename: str, progress_func: Optional[Callable[[int, int], bool]] = None, settings: Optional[SaveSettings] = None) bool [source]¶
create_database
writes the current database (.bndb) out to the specified file.- Parameters:
filename (str) – path and filename to write the bndb to, this string should have “.bndb” appended to it.
progress_func (callback) – optional function to be called with the current progress and total count.
settings (SaveSettings) – optional argument for special save options.
- Returns:
true on success, false on failure
- Return type:
Note
The progress_func callback must return True to continue the save operation, False will abort the save operation.
Warning
The calling thread must not hold a lock on the BinaryView instance as this action is run on the main thread which requires the lock.
navigate
navigates the UI to the specified virtual addressNote
Despite the confusing name,
view
in this context is not a BinaryView but rather a string describing the different UI Views. Checkview
while in different views to see examples such asLinear:ELF
,Graph:PE
.
- open_database_for_configuration(filename: str) Optional[BinaryView] [source]¶
- Parameters:
filename (str) –
- Return type:
- open_existing_database(filename: str, progress_func: Optional[Callable[[int, int], bool]] = None)[source]¶
- redo() None [source]¶
redo
redo the last committed action in the undo database.- Return type:
None
- Example:
>>> bv.get_disassembly(0x100012f1) 'xor eax, eax' >>> bv.begin_undo_actions() >>> bv.convert_to_nop(0x100012f1) True >>> bv.commit_undo_actions() >>> bv.get_disassembly(0x100012f1) 'nop' >>> bv.undo() >>> bv.get_disassembly(0x100012f1) 'xor eax, eax' >>> bv.redo() >>> bv.get_disassembly(0x100012f1) 'nop' >>>
- save_auto_snapshot(progress_func: Optional[Callable[[int, int], bool]] = None, settings: Optional[SaveSettings] = None) bool [source]¶
- undo() None [source]¶
undo
undo the last committed action in the undo database.- Return type:
None
- Example:
>>> bv.get_disassembly(0x100012f1) 'xor eax, eax' >>> bv.begin_undo_actions() >>> bv.convert_to_nop(0x100012f1) True >>> bv.commit_undo_actions() >>> bv.get_disassembly(0x100012f1) 'nop' >>> bv.undo() >>> bv.get_disassembly(0x100012f1) 'xor eax, eax' >>> bv.redo() >>> bv.get_disassembly(0x100012f1) 'nop' >>>
- property analysis_changed: bool¶
Boolean result of whether the auto-analysis results have changed (read-only)
- property has_database: bool¶
Whether the FileMetadata is backed by a database, or if specified, a specific BinaryViewType (read-only)
- property modified: bool¶
Boolean result of whether the file is modified (Inverse of ‘saved’ property) (read/write)
Navigation handler for this FileMetadata (read/write)
Alias for nav
- property original_filename: str¶
The original name of the binary opened if a bndb, otherwise reads or sets the current filename (read/write)
- property raw: Optional[BinaryView]¶
Gets the “Raw” BinaryView of the file
- property saved: bool¶
Boolean result of whether the file has been saved (Inverse of ‘modified’ property) (read/write)
Bases:
object
- Return type:
- Return type:
- class SaveSettings(handle=None)[source]¶
Bases:
object
class SaveSettings
is used to specify actions and options that apply to saving a database (.bndb).- is_option_set(option: SaveOption) bool [source]¶
- Parameters:
option (SaveOption) –
- Return type:
- set_option(option: SaveOption, state: bool = True)[source]¶
Set a SaveOption in this instance.
- Parameters:
option (SaveOption) – Option to set.
state (bool) – State to assign. Defaults to True.
- Example:
>>> settings = SaveSettings() >>> settings.set_option(SaveOption.TrimSnapshots)