Trait binaryninja::binaryview::BinaryViewExt
[−]pub trait BinaryViewExt: BinaryViewBase {
Show 87 methods
fn file(&self) -> Ref<FileMetadata> { ... }
fn type_name(&self) -> BnString { ... }
fn parent_view(&self) -> Result<Ref<BinaryView>> { ... }
fn read_vec(&self, offset: u64, len: usize) -> Vec<u8> { ... }
fn read_into_vec(&self, dest: &mut Vec<u8>, offset: u64, len: usize) -> usize { ... }
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_user_type<S: BnStrCompatible>(&self, name: S, type_obj: &Type) { ... }
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) { ... }
fn add_entry_point(&self, plat: &Platform, addr: u64) { ... }
fn create_user_function(&self, plat: &Platform, addr: u64) { ... }
fn has_functions(&self) -> bool { ... }
fn entry_point_function(&self) -> Result<Ref<Function>> { ... }
fn functions(&self) -> Array<Function> { ... }
fn functions_at(&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
) { ... }
fn create_tag_type<N: BnStrCompatible, I: BnStrCompatible>(
&self,
name: N,
icon: I
) -> Ref<TagType> { ... }
fn remove_tag_type(&self, tag_type: &TagType) { ... }
fn get_tag_type<S: BnStrCompatible>(&self, name: S) -> Option<Ref<TagType>> { ... }
fn get_tag_type_by_name<S: BnStrCompatible>(
&self,
name: S
) -> Option<Ref<TagType>> { ... }
fn get_tag_type_by_id<S: BnStrCompatible>(
&self,
id: S
) -> Option<Ref<TagType>> { ... }
fn create_tag<S: BnStrCompatible>(
&self,
t: &TagType,
data: S,
user: bool
) -> Ref<Tag> { ... }
fn create_user_tag<S: BnStrCompatible>(
&self,
t: &TagType,
data: S
) -> Ref<Tag> { ... }
fn create_auto_tag<S: BnStrCompatible>(
&self,
t: &TagType,
data: S
) -> Ref<Tag> { ... }
fn get_tag<S: BnStrCompatible>(&self, id: S) -> Option<Ref<Tag>> { ... }
fn add_user_data_tag(&self, addr: u64, tag: &Tag) { ... }
fn add_auto_data_tag(&self, addr: u64, tag: &Tag) { ... }
fn remove_auto_data_tag(&self, addr: u64, tag: &Tag) { ... }
fn remove_user_data_tag(&self, addr: u64, tag: &Tag) { ... }
fn get_next_linear_disassembly_lines(
&self,
pos: &mut LinearViewCursor
) -> Array<LinearDisassemblyLine> { ... }
fn get_previous_linear_disassembly_lines(
&self,
pos: &mut LinearViewCursor
) -> Array<LinearDisassemblyLine> { ... }
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) { ... }
}
Provided Methods
fn file(&self) -> Ref<FileMetadata>
fn type_name(&self) -> BnString
fn parent_view(&self) -> Result<Ref<BinaryView>>
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
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_user_type<S: BnStrCompatible>(&self, name: S, type_obj: &Type)
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)
fn add_entry_point(&self, plat: &Platform, addr: u64)
fn create_user_function(&self, plat: &Platform, addr: u64)
fn has_functions(&self) -> bool
fn entry_point_function(&self) -> Result<Ref<Function>>
fn functions(&self) -> Array<Function>
fn functions_at(&self, addr: u64) -> Array<Function>
fn functions_at(&self, addr: u64) -> Array<Function>
List of functions starting at addr
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
)
fn 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>
fn remove_tag_type(&self, tag_type: &TagType)
fn remove_tag_type(&self, tag_type: &TagType)
Removes a TagType and all tags that use it
fn 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.
Shorthand for Self::get_tag_type_by_name.
fn get_tag_type_by_name<S: BnStrCompatible>(
&self,
name: S
) -> Option<Ref<TagType>>
fn get_tag_type_by_name<S: BnStrCompatible>(
&self,
name: S
) -> Option<Ref<TagType>>
Get a tag type by its name
fn get_tag_type_by_id<S: BnStrCompatible>(&self, id: S) -> Option<Ref<TagType>>
fn get_tag_type_by_id<S: BnStrCompatible>(&self, id: S) -> Option<Ref<TagType>>
Get a tag type by its id
fn create_tag<S: BnStrCompatible>(
&self,
t: &TagType,
data: S,
user: bool
) -> Ref<Tag>
fn create_user_tag<S: BnStrCompatible>(&self, t: &TagType, data: S) -> Ref<Tag>
fn create_auto_tag<S: BnStrCompatible>(&self, t: &TagType, data: S) -> Ref<Tag>
fn 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.
Note this does not tell you anything about where it is used.
fn add_user_data_tag(&self, addr: u64, tag: &Tag)
fn add_user_data_tag(&self, addr: u64, tag: &Tag)
adds an already-created Tag object at a data address.
Since this adds a user tag, it will be added to the current undo buffer.
fn add_auto_data_tag(&self, addr: u64, tag: &Tag)
fn add_auto_data_tag(&self, addr: u64, tag: &Tag)
adds an already-created Tag object at a data address.
fn 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.
fn 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.
fn 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.
get_next_linear_disassembly_lines
retrieves an Array over LinearDisassemblyLine objects for the
next disassembly lines, and updates the LinearViewCursor passed in. This function can be called
repeatedly to get more lines of linear disassembly.
Arguments
pos
- Position to retrieve linear disassembly lines from
fn 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.
get_previous_linear_disassembly_lines
retrieves an Array over LinearDisassemblyLine objects for the
previous disassembly lines, and updates the LinearViewCursor passed in. This function can be called
repeatedly to get more lines of linear disassembly.
Arguments
pos
- Position to retrieve linear disassembly lines relative to