pub struct BinaryView {
pub handle: *mut BNBinaryView,
}Expand description
Represents the “whole view” of the binary and its analysis.
Analysis information:
Annotation information:
Data representation and binary information:
§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
Sourcepub fn from_metadata(meta: &FileMetadata) -> Result<Ref<Self>>
pub fn from_metadata(meta: &FileMetadata) -> Result<Ref<Self>>
Construct the raw binary view from the given metadata.
Before calling this, make sure you have a valid file path set for the FileMetadata. It is
required that the FileMetadata::file_path exist in the local filesystem.
Sourcepub fn from_path(
meta: &FileMetadata,
file_path: impl AsRef<Path>,
) -> Result<Ref<Self>>
pub fn from_path( meta: &FileMetadata, file_path: impl AsRef<Path>, ) -> Result<Ref<Self>>
Construct the raw binary view from the given file_path and metadata.
This will implicitly set the metadata file path and then construct the view. If the metadata
already has the desired file path, use BinaryView::from_metadata instead.
Sourcepub unsafe fn from_accessor<A: Accessor>(
meta: &FileMetadata,
accessor: &mut FileAccessor<A>,
) -> Result<Ref<Self>>
pub unsafe fn from_accessor<A: Accessor>( meta: &FileMetadata, accessor: &mut FileAccessor<A>, ) -> Result<Ref<Self>>
Construct the raw binary view from the given accessor and metadata.
It is the responsibility of the caller to keep the accessor alive for the lifetime of the view; because of this, we mark the function as unsafe.
Sourcepub fn from_data(meta: &FileMetadata, data: &[u8]) -> Ref<Self>
pub fn from_data(meta: &FileMetadata, data: &[u8]) -> Ref<Self>
Construct the raw binary view from the given data and metadata.
The data will be copied into the view, so the caller does not need to keep the data alive.
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
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
Source§fn offset_valid(&self, offset: u64) -> bool
fn offset_valid(&self, offset: u64) -> bool
Source§fn offset_readable(&self, offset: u64) -> bool
fn offset_readable(&self, offset: u64) -> bool
Source§fn offset_writable(&self, offset: u64) -> bool
fn offset_writable(&self, offset: u64) -> bool
Source§fn offset_executable(&self, offset: u64) -> bool
fn offset_executable(&self, offset: u64) -> bool
Source§fn offset_backed_by_file(&self, offset: u64) -> bool
fn offset_backed_by_file(&self, offset: u64) -> bool
Source§fn next_valid_offset_after(&self, offset: u64) -> u64
fn next_valid_offset_after(&self, offset: u64) -> u64
offset, useful if you need to iterate over all
readable offsets in the view.Source§fn modification_status(&self, offset: u64) -> ModificationStatus
fn modification_status(&self, offset: u64) -> ModificationStatus
offset been modified (patched).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 read_c_string_at(&self, offset: u64, len: usize) -> Option<CString>
fn read_c_string_at(&self, offset: u64, len: usize) -> Option<CString>
len bytes from the address offset returning a CString if available.Source§fn read_utf8_string_at(&self, offset: u64, len: usize) -> Option<String>
fn read_utf8_string_at(&self, offset: u64, len: usize) -> Option<String>
len bytes from the address offset returning a String if available.Source§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) -> 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>>
Source§fn entry_point_functions(&self) -> Array<Function>
fn entry_point_functions(&self) -> Array<Function>
fn functions(&self) -> Array<Function>
Source§fn functions_containing(&self, addr: u64) -> Array<Function>
fn functions_containing(&self, addr: u64) -> Array<Function>
addrSource§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, src_loc: impl Into<Location>, src_func: &Function, src_end: u64, target: impl Into<Location>, ) -> bool
fn read_buffer(&self, offset: u64, len: usize) -> Option<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)
Source§fn comment_references(&self) -> Array<CommentReference>
fn comment_references(&self) -> Array<CommentReference>
BinaryViewExt::comment_at. Read moreSource§fn comments(&self) -> BTreeMap<u64, String>
fn comments(&self) -> BTreeMap<u64, String>
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>>
Source§fn get_metadata<T>(&self, key: &str) -> Option<Result<T>>
fn get_metadata<T>(&self, key: &str) -> Option<Result<T>>
T. Read morefn 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
fn type_libraries(&self) -> Array<TypeLibrary>
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_type<T: Into<QualifiedName>>(
&self,
name: T,
lib: Option<&TypeLibrary>,
) -> Option<Ref<Type>>
fn import_type_library_type<T: Into<QualifiedName>>( &self, name: T, lib: Option<&TypeLibrary>, ) -> Option<Ref<Type>>
BinaryView that
provides the name requested. Read moreSource§fn import_type_library_object<T: Into<QualifiedName>>(
&self,
name: T,
lib: Option<&TypeLibrary>,
) -> Option<Ref<Type>>
fn import_type_library_object<T: Into<QualifiedName>>( &self, name: T, lib: Option<&TypeLibrary>, ) -> Option<Ref<Type>>
BinaryView that
provides the name requested. Read moreSource§fn import_type_by_guid(&self, guid: &str) -> Option<Ref<Type>>
fn import_type_by_guid(&self, guid: &str) -> Option<Ref<Type>>
Type given its GUID from available type libraries.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>
Source§fn string_at(&self, addr: u64) -> Option<StringReference>
fn string_at(&self, addr: u64) -> Option<StringReference>
Source§fn strings_in_range(&self, range: Range<u64>) -> Array<StringReference>
fn strings_in_range(&self, range: Range<u64>) -> Array<StringReference>
range. Read moreSource§fn attached_type_archives(&self) -> Vec<TypeArchiveId>
fn attached_type_archives(&self) -> Vec<TypeArchiveId>
TypeArchiveId. Read moreSource§fn type_archive_by_id(&self, id: &TypeArchiveId) -> Option<Ref<TypeArchive>>
fn type_archive_by_id(&self, id: &TypeArchiveId) -> Option<Ref<TypeArchive>>
Source§fn type_archive_path_by_id(&self, id: &TypeArchiveId) -> Option<PathBuf>
fn type_archive_path_by_id(&self, id: &TypeArchiveId) -> Option<PathBuf>
TypeArchive by its id.