Struct binaryninja::binaryview::BinaryView
source · [−]pub struct BinaryView { /* private fields */ }
Implementations
sourceimpl BinaryView
impl BinaryView
pub fn from_filename<S: BnStrCompatible>(
meta: &mut FileMetadata,
filename: S
) -> Result<Ref<Self>>
pub fn from_accessor(
meta: &FileMetadata,
file: &mut FileAccessor<'_>
) -> Result<Ref<Self>>
pub fn from_data(meta: &FileMetadata, data: &[u8]) -> Result<Ref<Self>>
Trait Implementations
sourceimpl AsRef<BinaryView> for BinaryView
impl AsRef<BinaryView> for BinaryView
sourceimpl 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
fn modification_status(&self, offset: u64) -> ModificationStatus
fn offset_valid(&self, offset: u64) -> bool
fn offset_readable(&self, offset: u64) -> bool
fn offset_writable(&self, offset: u64) -> bool
fn offset_executable(&self, offset: u64) -> bool
fn offset_backed_by_file(&self, offset: u64) -> bool
fn next_valid_offset_after(&self, offset: u64) -> u64
fn default_endianness(&self) -> Endianness
fn relocatable(&self) -> bool
fn address_size(&self) -> usize
fn start(&self) -> u64
fn len(&self) -> usize
fn entry_point(&self) -> u64
fn executable(&self) -> bool
fn save(&self) -> bool
sourceimpl Debug for BinaryView
impl Debug for BinaryView
sourceimpl Hash for BinaryView
impl Hash for BinaryView
sourceimpl PartialEq<BinaryView> for BinaryView
impl PartialEq<BinaryView> for BinaryView
sourcefn eq(&self, other: &BinaryView) -> bool
fn eq(&self, other: &BinaryView) -> bool
sourceimpl RefCountable for BinaryView
impl RefCountable for BinaryView
sourceimpl ToOwned for BinaryView
impl ToOwned for BinaryView
type Owned = Ref<BinaryView>
type Owned = Ref<BinaryView>
The resulting type after obtaining ownership.
sourcefn to_owned(&self) -> Self::Owned
fn to_owned(&self) -> Self::Owned
Creates owned data from borrowed data, usually by cloning. Read more
1.63.0 · sourcefn clone_into(&self, target: &mut Self::Owned)
fn clone_into(&self, target: &mut Self::Owned)
Uses borrowed data to replace owned data, usually by cloning. Read more
impl Eq for BinaryView
impl Send for BinaryView
impl StructuralEq for BinaryView
impl StructuralPartialEq for BinaryView
impl Sync for BinaryView
Auto Trait Implementations
Blanket Implementations
sourceimpl<T> BinaryViewExt for Twhere
T: BinaryViewBase,
impl<T> BinaryViewExt for Twhere
T: BinaryViewBase,
fn file(&self) -> Ref<FileMetadata>
fn type_name(&self) -> BnString
fn parent_view(&self) -> Result<Ref<BinaryView>>
fn raw_view(&self) -> Result<Ref<BinaryView>>
fn view_type(&self) -> BnString
sourcefn read_vec(&self, offset: u64, len: usize) -> Vec<u8>
fn read_vec(&self, offset: u64, len: usize) -> Vec<u8>
Reads up to
len
bytes from address offset
sourcefn 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
Appends up to
len
bytes from address offset
into dest
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)
fn offset_has_code_semantics(&self, offset: u64) -> bool
fn offset_has_writable_semantics(&self, offset: u64) -> bool
fn end(&self) -> u64
fn update_analysis_and_wait(&self)
fn update_analysis(&self)
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 instruction_len<A: Architecture>(&self, arch: &A, addr: u64) -> Option<usize>
fn symbol_by_address(&self, addr: u64) -> Result<Ref<Symbol>>
fn symbol_by_raw_name<S: BnStrCompatible>(
&self,
raw_name: S
) -> Result<Ref<Symbol>>
fn symbols(&self) -> Array<Symbol>
fn symbols_by_name<S: BnStrCompatible>(&self, name: S) -> 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 define_auto_data_var(&self, dv: DataVariable)
sourcefn define_user_data_var(&self, dv: DataVariable)
fn define_user_data_var(&self, dv: DataVariable)
You likely would also like to call
Self::define_user_symbol
to bind this data variable with a namefn undefine_auto_data_var(&self, addr: u64)
fn undefine_user_data_var(&self, addr: u64)
fn define_auto_type<S: BnStrCompatible>(
&self,
name: S,
source: S,
type_obj: &Type
) -> QualifiedName
fn define_user_type<S: BnStrCompatible>(&self, name: S, type_obj: &Type)
fn define_auto_types<S: BnStrCompatible>(
&self,
names_sources_and_types: Vec<(S, S, &Type)>,
progress: Option<Box<dyn Fn(usize, usize) -> Result<()>>>
) -> HashMap<String, QualifiedName>
fn define_user_types<S: BnStrCompatible>(
&self,
names_and_types: Vec<(S, &Type)>,
progress: Option<Box<dyn Fn(usize, usize) -> Result<()>>>
)
fn undefine_auto_type<S: BnStrCompatible>(&self, id: S)
fn undefine_user_type<S: BnStrCompatible>(&self, name: S)
fn types(&self) -> Array<QualifiedNameAndType>
fn dependency_sorted_types(&self) -> Array<QualifiedNameAndType>
fn get_type_by_name<S: BnStrCompatible>(&self, name: S) -> Option<Ref<Type>>
fn get_type_by_ref(&self, ref_: &NamedTypeReference) -> Option<Ref<Type>>
fn get_type_by_id<S: BnStrCompatible>(&self, id: S) -> Option<Ref<Type>>
fn get_type_name_by_id<S: BnStrCompatible>(&self, id: S) -> Option<QualifiedName>
fn get_type_id<S: BnStrCompatible>(&self, name: S) -> Option<BnString>
fn is_type_auto_defined<S: BnStrCompatible>(&self, name: S) -> bool
fn segments(&self) -> Array<Segment>
fn segment_at(&self, addr: u64) -> Option<Segment>
fn add_segment(&self, segment: SegmentBuilder)
fn add_section<S: BnStrCompatible>(&self, section: SectionBuilder<S>)
fn remove_auto_section<S: BnStrCompatible>(&self, name: S)
fn remove_user_section<S: BnStrCompatible>(&self, name: S)
fn section_by_name<S: BnStrCompatible>(&self, name: S) -> Result<Section>
fn sections(&self) -> Array<Section>
fn sections_at(&self, addr: u64) -> Array<Section>
fn add_auto_function(&self, plat: &Platform, addr: u64) -> Option<Ref<Function>>
fn add_function_with_type(
&self,
plat: &Platform,
addr: u64,
auto_discovered: bool,
func_type: Option<&Type>
) -> Option<Ref<Function>>
fn add_entry_point(&self, plat: &Platform, addr: u64)
fn create_user_function(
&self,
plat: &Platform,
addr: u64
) -> Result<Ref<Function>>
fn has_functions(&self) -> bool
fn entry_point_function(&self) -> Result<Ref<Function>>
fn functions(&self) -> Array<Function>
sourcefn functions_at(&self, addr: u64) -> Array<Function>
fn functions_at(&self, addr: u64) -> Array<Function>
List of functions starting at
addr
fn functions_containing(&self, addr: u64) -> Array<Function>
fn function_at(&self, platform: &Platform, addr: u64) -> Result<Ref<Function>>
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 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_graph_report<S: BnStrCompatible>(&self, raw_name: S, graph: FlowGraph)
fn load_settings<S: BnStrCompatible>(
&self,
view_type_name: S
) -> Result<Ref<Settings>>
fn set_load_settings<S: BnStrCompatible>(
&self,
view_type_name: S,
settings: &Settings
)
sourcefn create_tag_type<N: BnStrCompatible, I: BnStrCompatible>(
&self,
name: N,
icon: I
) -> Ref<TagType>
fn create_tag_type<N: BnStrCompatible, I: BnStrCompatible>(
&self,
name: N,
icon: I
) -> Ref<TagType>
sourcefn remove_tag_type(&self, tag_type: &TagType)
fn remove_tag_type(&self, tag_type: &TagType)
Removes a TagType and all tags that use it
sourcefn get_tag_type<S: BnStrCompatible>(&self, name: S) -> Option<Ref<TagType>>
fn get_tag_type<S: BnStrCompatible>(&self, name: S) -> Option<Ref<TagType>>
Get a tag type by its name.
sourcefn get_tag<S: BnStrCompatible>(&self, id: S) -> Option<Ref<Tag>>
fn get_tag<S: BnStrCompatible>(&self, id: S) -> Option<Ref<Tag>>
Get a tag by its id. Read more
sourcefn add_tag<S: BnStrCompatible>(&self, addr: u64, t: &TagType, data: S, user: bool)
fn add_tag<S: BnStrCompatible>(&self, addr: u64, t: &TagType, data: S, user: bool)
Creates and adds a tag to an address Read more
sourcefn remove_auto_data_tag(&self, addr: u64, tag: &Tag)
fn remove_auto_data_tag(&self, addr: u64, tag: &Tag)
removes a Tag object at a data address.
sourcefn remove_user_data_tag(&self, addr: u64, tag: &Tag)
fn remove_user_data_tag(&self, addr: u64, tag: &Tag)
removes a Tag object at a data address.
Since this removes a user tag, it will be added to the current undo buffer. Read more
sourcefn get_next_linear_disassembly_lines(
&self,
pos: &mut LinearViewCursor
) -> Array<LinearDisassemblyLine>
fn get_next_linear_disassembly_lines(
&self,
pos: &mut LinearViewCursor
) -> Array<LinearDisassemblyLine>
Retrieves a list of the next disassembly lines. Read more
sourcefn get_previous_linear_disassembly_lines(
&self,
pos: &mut LinearViewCursor
) -> Array<LinearDisassemblyLine>
fn get_previous_linear_disassembly_lines(
&self,
pos: &mut LinearViewCursor
) -> Array<LinearDisassemblyLine>
Retrieves a list of the previous disassembly lines. Read more
fn query_metadata<S: BnStrCompatible>(&self, key: S) -> Option<Ref<Metadata>>
fn get_metadata<T, S: BnStrCompatible>(&self, key: S) -> Option<Result<T>>where
T: for<'a> TryFrom<&'a Metadata>,
fn store_metadata<V, S: BnStrCompatible>(&self, key: S, value: V, is_auto: bool)where
V: Into<Ref<Metadata>>,
fn remove_metadata<S: BnStrCompatible>(&self, key: S)
sourcefn get_code_refs(&self, addr: u64) -> Array<CodeReference>
fn get_code_refs(&self, addr: u64) -> Array<CodeReference>
Retrieves a list of CodeReferences pointing to a given address.
sourcefn get_code_refs_in_range(&self, range: Range<u64>) -> Array<CodeReference>
fn get_code_refs_in_range(&self, range: Range<u64>) -> Array<CodeReference>
Retrieves a list of CodeReferences pointing into a given Range.
sourcefn get_data_refs(&self, addr: u64) -> Array<DataReference>
fn get_data_refs(&self, addr: u64) -> Array<DataReference>
Retrieves a list of DataReferences pointing to a given address.
sourcefn get_data_refs_from(&self, addr: u64) -> Array<DataReference>
fn get_data_refs_from(&self, addr: u64) -> Array<DataReference>
Retrieves a list of DataReferences originating from a given address.
sourcefn get_data_refs_in_range(&self, range: Range<u64>) -> Array<DataReference>
fn get_data_refs_in_range(&self, range: Range<u64>) -> Array<DataReference>
Retrieves a list of DataReferences pointing into a given Range.
sourcefn get_code_refs_for_type<B: BnStrCompatible>(
&self,
name: B
) -> Array<CodeReference>
fn get_code_refs_for_type<B: BnStrCompatible>(
&self,
name: B
) -> Array<CodeReference>
Retrieves a list of CodeReferences for locations in code that use a given named type. Read more
sourcefn get_data_refs_for_type<B: BnStrCompatible>(
&self,
name: B
) -> Array<DataReference>
fn get_data_refs_for_type<B: BnStrCompatible>(
&self,
name: B
) -> Array<DataReference>
Retrieves a list of DataReferences instances of a given named type in data. Read more
fn get_relocations_at(&self, addr: u64) -> Array<Relocation>
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more