pub struct BinaryView {
pub handle: *mut BNBinaryView,
}Expand description
§Cleaning up
BinaryView has a cyclic relationship with the associated FileMetadata, each holds a strong
reference to one another, so to properly clean up/free the BinaryView, you must manually close the
file using FileMetadata::close, this is not fixable in the general case, until FileMetadata
has only a weak reference to the BinaryView.
Fields§
§handle: *mut BNBinaryViewImplementations§
Source§impl BinaryView
impl BinaryView
pub unsafe fn from_raw(handle: *mut BNBinaryView) -> Self
pub fn from_path( meta: &mut FileMetadata, file_path: impl AsRef<Path>, ) -> Result<Ref<Self>>
pub fn from_accessor<A: Accessor>( meta: &FileMetadata, file: &mut FileAccessor<A>, ) -> Result<Ref<Self>>
pub fn from_data(meta: &FileMetadata, data: &[u8]) -> Result<Ref<Self>>
Sourcepub fn save_to_path(&self, file_path: impl AsRef<Path>) -> bool
pub fn save_to_path(&self, file_path: impl AsRef<Path>) -> bool
Save the original binary file to the provided file_path along with any modifications.
WARNING: Currently there is a possibility to deadlock if the analysis has queued up a main thread action
that tries to take the FileMetadata lock of the current view, and is executed while we
are executing in this function.
To avoid the above issue use crate::main_thread::execute_on_main_thread_and_wait to verify there
are no queued up main thread actions.
Sourcepub fn save_to_accessor<A: Accessor>(&self, file: &mut FileAccessor<A>) -> bool
pub fn save_to_accessor<A: Accessor>(&self, file: &mut FileAccessor<A>) -> bool
Save the original binary file to the provided FileAccessor along with any modifications.
WARNING: Currently there is a possibility to deadlock if the analysis has queued up a main thread action
that tries to take the FileMetadata lock of the current view, and is executed while we
are executing in this function.
To avoid the above issue use crate::main_thread::execute_on_main_thread_and_wait to verify there
are no queued up main thread actions.
Trait Implementations§
Source§impl AsRef<BinaryView> for BinaryView
impl AsRef<BinaryView> for BinaryView
Source§impl BinaryViewBase for BinaryView
impl BinaryViewBase for BinaryView
Source§fn offset_valid(&self, offset: u64) -> bool
fn offset_valid(&self, offset: u64) -> bool
Check if the offset is valid for the current view.
NOTE: If operating within a Workflow, consider using AnalysisContext::is_offset_valid.
Source§fn offset_readable(&self, offset: u64) -> bool
fn offset_readable(&self, offset: u64) -> bool
Check if the offset is readable for the current view.
NOTE: If operating within a Workflow, consider using AnalysisContext::is_offset_valid.
Source§fn offset_writable(&self, offset: u64) -> bool
fn offset_writable(&self, offset: u64) -> bool
Check if the offset is writable for the current view.
NOTE: If operating within a Workflow, consider using AnalysisContext::is_offset_writable.
Source§fn offset_executable(&self, offset: u64) -> bool
fn offset_executable(&self, offset: u64) -> bool
Check if the offset is executable for the current view.
NOTE: If operating within a Workflow, consider using AnalysisContext::is_offset_executable.
Source§fn offset_backed_by_file(&self, offset: u64) -> bool
fn offset_backed_by_file(&self, offset: u64) -> bool
Check if the offset is backed by the original file and not added after the fact.
NOTE: If operating within a Workflow, consider using AnalysisContext::is_offset_backed_by_file.
Source§fn next_valid_offset_after(&self, offset: u64) -> u64
fn next_valid_offset_after(&self, offset: u64) -> u64
Get the next valid offset after the provided offset, useful if you need to iterate over all
readable offsets in the view.
NOTE: If operating within a Workflow, consider using AnalysisContext::next_valid_offset.
Source§fn start(&self) -> u64
fn start(&self) -> u64
The lowest address in the view.
NOTE: If operating within a Workflow, consider using AnalysisContext::start.
Source§fn len(&self) -> u64
fn len(&self) -> u64
The length of the view, lowest to highest address.
NOTE: If operating within a Workflow, consider using AnalysisContext::length.
fn read(&self, buf: &mut [u8], offset: u64) -> usize
fn write(&self, offset: u64, data: &[u8]) -> usize
fn insert(&self, offset: u64, data: &[u8]) -> usize
fn remove(&self, offset: u64, len: usize) -> usize
fn modification_status(&self, offset: u64) -> ModificationStatus
fn executable(&self) -> bool
fn relocatable(&self) -> bool
fn entry_point(&self) -> u64
fn default_endianness(&self) -> Endianness
fn address_size(&self) -> usize
fn save(&self) -> bool
Source§impl Debug for BinaryView
impl Debug for BinaryView
Source§impl Hash for BinaryView
impl Hash for BinaryView
Source§impl PartialEq for BinaryView
impl PartialEq for BinaryView
Source§impl ToOwned for BinaryView
impl ToOwned for BinaryView
Source§type Owned = Ref<BinaryView>
type Owned = Ref<BinaryView>
Source§fn to_owned(&self) -> Self::Owned
fn to_owned(&self) -> Self::Owned
1.63.0 · Source§fn clone_into(&self, target: &mut Self::Owned)
fn clone_into(&self, target: &mut Self::Owned)
impl Eq for BinaryView
impl Send for BinaryView
impl StructuralPartialEq for BinaryView
impl Sync for BinaryView
Auto Trait Implementations§
impl Freeze for BinaryView
impl RefUnwindSafe for BinaryView
impl Unpin for BinaryView
impl UnwindSafe for BinaryView
Blanket Implementations§
Source§impl<T> BinaryViewExt for Twhere
T: BinaryViewBase,
impl<T> BinaryViewExt for Twhere
T: BinaryViewBase,
fn file(&self) -> Ref<FileMetadata>
fn parent_view(&self) -> Option<Ref<BinaryView>>
fn raw_view(&self) -> Option<Ref<BinaryView>>
fn view_type(&self) -> String
Source§fn read_vec(&self, offset: u64, len: usize) -> Vec<u8> ⓘ
fn read_vec(&self, offset: u64, len: usize) -> Vec<u8> ⓘ
len bytes from address offsetSource§fn read_into_vec(&self, dest: &mut Vec<u8>, offset: u64, len: usize) -> usize
fn read_into_vec(&self, dest: &mut Vec<u8>, offset: u64, len: usize) -> usize
len bytes from address offset into destSource§fn search<C: FnMut(u64, &DataBuffer) -> bool>(
&self,
query: &SearchQuery,
on_match: C,
) -> bool
fn search<C: FnMut(u64, &DataBuffer) -> bool>( &self, query: &SearchQuery, on_match: C, ) -> bool
Source§fn search_with_progress<P: ProgressCallback, C: FnMut(u64, &DataBuffer) -> bool>(
&self,
query: &SearchQuery,
on_match: C,
progress: P,
) -> bool
fn search_with_progress<P: ProgressCallback, C: FnMut(u64, &DataBuffer) -> bool>( &self, query: &SearchQuery, on_match: C, progress: P, ) -> bool
fn find_next_data(&self, start: u64, end: u64, data: &DataBuffer) -> Option<u64>
Source§fn find_next_data_with_opts<P: ProgressCallback>(
&self,
start: u64,
end: u64,
data: &DataBuffer,
flag: FindFlag,
progress: P,
) -> Option<u64>
fn find_next_data_with_opts<P: ProgressCallback>( &self, start: u64, end: u64, data: &DataBuffer, flag: FindFlag, progress: P, ) -> Option<u64>
fn find_next_constant( &self, start: u64, end: u64, constant: u64, view_type: FunctionViewType, ) -> Option<u64>
Source§fn find_next_constant_with_opts<P: ProgressCallback>(
&self,
start: u64,
end: u64,
constant: u64,
disasm_settings: &DisassemblySettings,
view_type: FunctionViewType,
progress: P,
) -> Option<u64>
fn find_next_constant_with_opts<P: ProgressCallback>( &self, start: u64, end: u64, constant: u64, disasm_settings: &DisassemblySettings, view_type: FunctionViewType, progress: P, ) -> Option<u64>
fn find_next_text( &self, start: u64, end: u64, text: &str, view_type: FunctionViewType, ) -> Option<u64>
Source§fn find_next_text_with_opts<P: ProgressCallback>(
&self,
start: u64,
end: u64,
text: &str,
disasm_settings: &DisassemblySettings,
flag: FindFlag,
view_type: FunctionViewType,
progress: P,
) -> Option<u64>
fn find_next_text_with_opts<P: ProgressCallback>( &self, start: u64, end: u64, text: &str, disasm_settings: &DisassemblySettings, flag: FindFlag, view_type: FunctionViewType, progress: P, ) -> Option<u64>
fn notify_data_written(&self, offset: u64, len: usize)
fn notify_data_inserted(&self, offset: u64, len: usize)
fn notify_data_removed(&self, offset: u64, len: usize)
Source§fn offset_has_code_semantics(&self, offset: u64) -> bool
fn offset_has_code_semantics(&self, offset: u64) -> bool
Section’s current crate::section::Semantics to determine if the
offset has code semantics.Source§fn offset_has_extern_semantics(&self, offset: u64) -> bool
fn offset_has_extern_semantics(&self, offset: u64) -> bool
Section with crate::section::Semantics::External.Source§fn offset_has_writable_semantics(&self, offset: u64) -> bool
fn offset_has_writable_semantics(&self, offset: u64) -> bool
Section’s current crate::section::Semantics to determine if the
offset has writable semantics.Source§fn offset_has_read_only_semantics(&self, offset: u64) -> bool
fn offset_has_read_only_semantics(&self, offset: u64) -> bool
Section’s current crate::section::Semantics to determine if the
offset has read only semantics.fn image_base(&self) -> u64
fn original_image_base(&self) -> u64
fn set_original_image_base(&self, image_base: u64)
fn add_analysis_option(&self, name: &str)
fn has_initial_analysis(&self) -> bool
fn set_analysis_hold(&self, enable: bool)
Source§fn update_analysis(&self)
fn update_analysis(&self)
Source§fn update_analysis_and_wait(&self)
fn update_analysis_and_wait(&self)
fn abort_analysis(&self)
fn analysis_is_aborted(&self) -> bool
fn workflow(&self) -> Ref<Workflow>
fn analysis_info(&self) -> Result<AnalysisInfo>
fn analysis_progress(&self) -> AnalysisProgress
fn default_arch(&self) -> Option<CoreArchitecture>
fn set_default_arch<A: Architecture>(&self, arch: &A)
fn default_platform(&self) -> Option<Ref<Platform>>
fn set_default_platform(&self, plat: &Platform)
fn base_address_detection(&self) -> Option<BaseAddressDetection>
fn instruction_len<A: Architecture>(&self, arch: &A, addr: u64) -> Option<usize>
fn symbol_by_address(&self, addr: u64) -> Option<Ref<Symbol>>
fn symbol_by_raw_name(&self, raw_name: impl IntoCStr) -> Option<Ref<Symbol>>
fn symbols(&self) -> Array<Symbol>
fn symbols_by_name(&self, name: impl IntoCStr) -> Array<Symbol>
fn symbols_in_range(&self, range: Range<u64>) -> Array<Symbol>
fn symbols_of_type(&self, ty: SymbolType) -> Array<Symbol>
fn symbols_of_type_in_range( &self, ty: SymbolType, range: Range<u64>, ) -> Array<Symbol>
fn define_auto_symbol(&self, sym: &Symbol)
fn define_auto_symbol_with_type<'a, T: Into<Option<&'a Type>>>( &self, sym: &Symbol, plat: &Platform, ty: T, ) -> Result<Ref<Symbol>>
fn undefine_auto_symbol(&self, sym: &Symbol)
fn define_user_symbol(&self, sym: &Symbol)
fn undefine_user_symbol(&self, sym: &Symbol)
fn data_variables(&self) -> Array<DataVariable>
fn data_variable_at_address(&self, addr: u64) -> Option<DataVariable>
fn define_auto_data_var<'a, T: Into<Conf<&'a Type>>>(&self, addr: u64, ty: T)
Source§fn define_user_data_var<'a, T: Into<Conf<&'a Type>>>(&self, addr: u64, ty: T)
fn define_user_data_var<'a, T: Into<Conf<&'a Type>>>(&self, addr: u64, ty: T)
BinaryViewExt::define_user_symbol to bind this data variable with a namefn undefine_auto_data_var(&self, addr: u64, blacklist: Option<bool>)
fn undefine_user_data_var(&self, addr: u64)
fn define_auto_type<T: Into<QualifiedName>>( &self, name: T, source: &str, type_obj: &Type, ) -> QualifiedName
fn define_auto_type_with_id<T: Into<QualifiedName>>( &self, name: T, id: &str, type_obj: &Type, ) -> QualifiedName
fn define_user_type<T: Into<QualifiedName>>(&self, name: T, type_obj: &Type)
fn define_auto_types<T, I>( &self, names_sources_and_types: T, ) -> HashMap<String, QualifiedName>
fn define_auto_types_with_progress<T, I, P>( &self, names_sources_and_types: T, progress: P, ) -> HashMap<String, QualifiedName>
fn define_user_types<T, I>(&self, names_and_types: T)
fn define_user_types_with_progress<T, I, P>( &self, names_and_types: T, progress: P, )
fn undefine_auto_type(&self, id: &str)
fn undefine_user_type<T: Into<QualifiedName>>(&self, name: T)
fn types(&self) -> Array<QualifiedNameAndType>
fn dependency_sorted_types(&self) -> Array<QualifiedNameAndType>
fn type_by_name<T: Into<QualifiedName>>(&self, name: T) -> Option<Ref<Type>>
fn type_by_ref(&self, ref_: &NamedTypeReference) -> Option<Ref<Type>>
fn type_by_id(&self, id: &str) -> Option<Ref<Type>>
fn type_name_by_id(&self, id: &str) -> Option<QualifiedName>
fn type_id_by_name<T: Into<QualifiedName>>(&self, name: T) -> Option<String>
fn is_type_auto_defined<T: Into<QualifiedName>>(&self, name: T) -> bool
fn segments(&self) -> Array<Segment>
fn segment_at(&self, addr: u64) -> Option<Ref<Segment>>
Source§fn add_segment(&self, segment: SegmentBuilder)
fn add_segment(&self, segment: SegmentBuilder)
Source§fn begin_bulk_add_segments(&self)
fn begin_bulk_add_segments(&self)
Source§fn end_bulk_add_segments(&self)
fn end_bulk_add_segments(&self)
Source§fn cancel_bulk_add_segments(&self)
fn cancel_bulk_add_segments(&self)
fn add_section(&self, section: SectionBuilder)
fn remove_auto_section(&self, name: impl IntoCStr)
fn remove_user_section(&self, name: impl IntoCStr)
fn section_by_name(&self, name: impl IntoCStr) -> Option<Ref<Section>>
fn sections(&self) -> Array<Section>
fn sections_at(&self, addr: u64) -> Array<Section>
fn memory_map(&self) -> MemoryMap
Source§fn add_auto_function(&self, address: u64) -> Option<Ref<Function>>
fn add_auto_function(&self, address: u64) -> Option<Ref<Function>>
address with the views default platform. Read moreSource§fn add_auto_function_with_platform(
&self,
address: u64,
platform: &Platform,
) -> Option<Ref<Function>>
fn add_auto_function_with_platform( &self, address: u64, platform: &Platform, ) -> Option<Ref<Function>>
Source§fn add_auto_function_ext(
&self,
address: u64,
platform: &Platform,
func_type: Option<&Type>,
) -> Option<Ref<Function>>
fn add_auto_function_ext( &self, address: u64, platform: &Platform, func_type: Option<&Type>, ) -> Option<Ref<Function>>
Source§fn remove_auto_function(&self, func: &Function, update_refs: bool)
fn remove_auto_function(&self, func: &Function, update_refs: bool)
Source§fn add_user_function(&self, addr: u64) -> Option<Ref<Function>>
fn add_user_function(&self, addr: u64) -> Option<Ref<Function>>
address with the views default platform. Read moreSource§fn add_user_function_with_platform(
&self,
addr: u64,
platform: &Platform,
) -> Option<Ref<Function>>
fn add_user_function_with_platform( &self, addr: u64, platform: &Platform, ) -> Option<Ref<Function>>
Source§fn remove_user_function(&self, func: &Function)
fn remove_user_function(&self, func: &Function)
fn has_functions(&self) -> bool
Source§fn add_entry_point(&self, addr: u64)
fn add_entry_point(&self, addr: u64)
address with the view’s default platform. Read moreSource§fn add_entry_point_with_platform(&self, addr: u64, platform: &Platform)
fn add_entry_point_with_platform(&self, addr: u64, platform: &Platform)
fn entry_point_function(&self) -> Option<Ref<Function>>
fn entry_point_functions(&self) -> Array<Function>
fn functions(&self) -> Array<Function>
fn functions_containing(&self, addr: u64) -> Array<Function>
Source§fn functions_by_name(
&self,
name: impl IntoCStr,
plat: Option<&Platform>,
) -> Vec<Ref<Function>>
fn functions_by_name( &self, name: impl IntoCStr, plat: Option<&Platform>, ) -> Vec<Ref<Function>>
fn function_at(&self, platform: &Platform, addr: u64) -> Option<Ref<Function>>
fn function_start_before(&self, addr: u64) -> u64
fn function_start_after(&self, addr: u64) -> u64
fn basic_blocks_containing(&self, addr: u64) -> Array<BasicBlock<NativeBlock>>
fn basic_blocks_starting_at(&self, addr: u64) -> Array<BasicBlock<NativeBlock>>
fn is_new_auto_function_analysis_suppressed(&self) -> bool
fn set_new_auto_function_analysis_suppressed(&self, suppress: bool)
fn should_skip_target_analysis( &self, source: &ArchAndAddr, srcfunc: &Function, srcend: u64, target: &ArchAndAddr, ) -> bool
fn read_buffer(&self, offset: u64, len: usize) -> Result<DataBuffer>
fn debug_info(&self) -> Ref<DebugInfo>
fn set_debug_info(&self, debug_info: &DebugInfo)
fn apply_debug_info(&self, debug_info: &DebugInfo)
fn show_plaintext_report(&self, title: &str, plaintext: &str)
fn show_markdown_report(&self, title: &str, contents: &str, plaintext: &str)
fn show_html_report(&self, title: &str, contents: &str, plaintext: &str)
fn show_graph_report(&self, raw_name: &str, graph: &FlowGraph)
fn load_settings(&self, view_type_name: &str) -> Result<Ref<Settings>>
fn set_load_settings(&self, view_type_name: &str, settings: &Settings)
Source§fn remove_tag_type(&self, tag_type: &TagType)
fn remove_tag_type(&self, tag_type: &TagType)
Source§fn add_tag(&self, addr: u64, t: &TagType, data: &str, user: bool)
fn add_tag(&self, addr: u64, t: &TagType, data: &str, user: bool)
Source§fn remove_auto_data_tag(&self, addr: u64, tag: &Tag)
fn remove_auto_data_tag(&self, addr: u64, tag: &Tag)
Source§fn remove_user_data_tag(&self, addr: u64, tag: &Tag)
fn remove_user_data_tag(&self, addr: u64, tag: &Tag)
fn comment_at(&self, addr: u64) -> Option<String>
Source§fn set_comment_at(&self, addr: u64, comment: &str)
fn set_comment_at(&self, addr: u64, comment: &str)
BinaryView at the address specified. Read moreSource§fn get_next_linear_disassembly_lines(
&self,
pos: &mut LinearViewCursor,
) -> Array<LinearDisassemblyLine>
fn get_next_linear_disassembly_lines( &self, pos: &mut LinearViewCursor, ) -> Array<LinearDisassemblyLine>
Source§fn get_previous_linear_disassembly_lines(
&self,
pos: &mut LinearViewCursor,
) -> Array<LinearDisassemblyLine>
fn get_previous_linear_disassembly_lines( &self, pos: &mut LinearViewCursor, ) -> Array<LinearDisassemblyLine>
fn query_metadata(&self, key: &str) -> Option<Ref<Metadata>>
fn get_metadata<T>(&self, key: &str) -> Option<Result<T>>
fn store_metadata<V>(&self, key: &str, value: V, is_auto: bool)
fn remove_metadata(&self, key: &str)
Source§fn code_refs_to_addr(&self, addr: u64) -> Array<CodeReference>
fn code_refs_to_addr(&self, addr: u64) -> Array<CodeReference>
Source§fn code_refs_into_range(&self, range: Range<u64>) -> Array<CodeReference>
fn code_refs_into_range(&self, range: Range<u64>) -> Array<CodeReference>
Source§fn code_refs_from_addr(&self, addr: u64, func: Option<&Function>) -> Vec<u64>
fn code_refs_from_addr(&self, addr: u64, func: Option<&Function>) -> Vec<u64>
Source§fn data_refs_to_addr(&self, addr: u64) -> Array<DataReference>
fn data_refs_to_addr(&self, addr: u64) -> Array<DataReference>
Source§fn data_refs_into_range(&self, range: Range<u64>) -> Array<DataReference>
fn data_refs_into_range(&self, range: Range<u64>) -> Array<DataReference>
Source§fn data_refs_from_addr(&self, addr: u64) -> Array<DataReference>
fn data_refs_from_addr(&self, addr: u64) -> Array<DataReference>
Source§fn code_refs_using_type_name<T: Into<QualifiedName>>(
&self,
name: T,
) -> Array<CodeReference>
fn code_refs_using_type_name<T: Into<QualifiedName>>( &self, name: T, ) -> Array<CodeReference>
Source§fn data_refs_using_type_name<T: Into<QualifiedName>>(
&self,
name: T,
) -> Array<DataReference>
fn data_refs_using_type_name<T: Into<QualifiedName>>( &self, name: T, ) -> Array<DataReference>
fn relocations_at(&self, addr: u64) -> Array<Relocation>
fn relocation_ranges(&self) -> Vec<Range<u64>>
fn component_by_guid(&self, guid: &str) -> Option<Ref<Component>>
fn root_component(&self) -> Option<Ref<Component>>
fn component_by_path(&self, path: &str) -> Option<Ref<Component>>
fn remove_component(&self, component: &Component) -> bool
fn remove_component_by_guid(&self, guid: &str) -> bool
fn data_variable_parent_components( &self, data_variable: &DataVariable, ) -> Array<Component>
fn external_libraries(&self) -> Array<ExternalLibrary>
fn external_library(&self, name: &str) -> Option<Ref<ExternalLibrary>>
fn remove_external_library(&self, name: &str)
fn add_external_library( &self, name: &str, backing_file: Option<&ProjectFile>, auto: bool, ) -> Option<Ref<ExternalLibrary>>
fn external_locations(&self) -> Array<ExternalLocation>
fn external_location_from_symbol( &self, symbol: &Symbol, ) -> Option<Ref<ExternalLocation>>
fn remove_external_location(&self, location: &ExternalLocation)
fn remove_external_location_from_symbol(&self, symbol: &Symbol)
fn add_external_location( &self, symbol: &Symbol, library: &ExternalLibrary, target_symbol_name: &str, target_address: Option<u64>, target_is_auto: bool, ) -> Option<Ref<ExternalLocation>>
Source§fn type_container(&self) -> TypeContainer
fn type_container(&self) -> TypeContainer
Source§fn user_type_container(&self) -> TypeContainer
fn user_type_container(&self) -> TypeContainer
Source§fn auto_type_container(&self) -> TypeContainer
fn auto_type_container(&self) -> TypeContainer
Source§fn add_type_library(&self, library: &TypeLibrary)
fn add_type_library(&self, library: &TypeLibrary)
fn type_library_by_name(&self, name: &str) -> Option<Ref<TypeLibrary>>
Source§fn record_imported_object_library<T: Into<QualifiedName>>(
&self,
lib: &TypeLibrary,
name: T,
addr: u64,
platform: &Platform,
)
fn record_imported_object_library<T: Into<QualifiedName>>( &self, lib: &TypeLibrary, name: T, addr: u64, platform: &Platform, )
BinaryView implementations
when they have successfully imported an object from a type library (eg a symbol’s type).
Values recorded with this function will then be queryable via BinaryViewExt::lookup_imported_object_library. Read moreSource§fn import_type_library<T: Into<QualifiedName>>(
&self,
name: T,
lib: Option<TypeLibrary>,
) -> Option<Ref<Type>>
fn import_type_library<T: Into<QualifiedName>>( &self, name: T, lib: Option<TypeLibrary>, ) -> Option<Ref<Type>>
Source§fn import_type_object<T: Into<QualifiedName>>(
&self,
name: T,
lib: Option<TypeLibrary>,
) -> Option<Ref<Type>>
fn import_type_object<T: Into<QualifiedName>>( &self, name: T, lib: Option<TypeLibrary>, ) -> Option<Ref<Type>>
Source§fn import_type_by_guid(&self, guid: &str) -> Option<Ref<Type>>
fn import_type_by_guid(&self, guid: &str) -> Option<Ref<Type>>
Source§fn export_type_to_library<T: Into<QualifiedName>>(
&self,
lib: &TypeLibrary,
name: T,
type_obj: &Type,
)
fn export_type_to_library<T: Into<QualifiedName>>( &self, lib: &TypeLibrary, name: T, type_obj: &Type, )
Source§fn export_object_to_library<T: Into<QualifiedName>>(
&self,
lib: &TypeLibrary,
name: T,
type_obj: &Type,
)
fn export_object_to_library<T: Into<QualifiedName>>( &self, lib: &TypeLibrary, name: T, type_obj: &Type, )
Source§fn lookup_imported_object_library(
&self,
addr: u64,
platform: &Platform,
) -> Option<(Ref<TypeLibrary>, QualifiedName)>
fn lookup_imported_object_library( &self, addr: u64, platform: &Platform, ) -> Option<(Ref<TypeLibrary>, QualifiedName)>
Source§fn lookup_imported_type_library<T: Into<QualifiedName>>(
&self,
name: T,
) -> Option<(Ref<TypeLibrary>, QualifiedName)>
fn lookup_imported_type_library<T: Into<QualifiedName>>( &self, name: T, ) -> Option<(Ref<TypeLibrary>, QualifiedName)>
Source§fn strings(&self) -> Array<StringReference>
fn strings(&self) -> Array<StringReference>
fn string_at(&self, addr: u64) -> Option<BNStringReference>
Source§fn strings_in_range(&self, range: Range<u64>) -> Array<StringReference>
fn strings_in_range(&self, range: Range<u64>) -> Array<StringReference>
range. Read moreSource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more