Struct binaryninja::architecture::CoreArchitecture
source · pub struct CoreArchitecture(/* private fields */);
Implementations§
Trait Implementations§
source§impl Architecture for CoreArchitecture
impl Architecture for CoreArchitecture
type Handle = CoreArchitecture
type RegisterInfo = CoreRegisterInfo
type Register = CoreRegister
type RegisterStackInfo = CoreRegisterStackInfo
type RegisterStack = CoreRegisterStack
type Flag = CoreFlag
type FlagWrite = CoreFlagWrite
type FlagClass = CoreFlagClass
type FlagGroup = CoreFlagGroup
type Intrinsic = CoreIntrinsic
fn endianness(&self) -> Endianness
fn address_size(&self) -> usize
fn default_integer_size(&self) -> usize
fn instruction_alignment(&self) -> usize
fn max_instr_len(&self) -> usize
fn opcode_display_len(&self) -> usize
fn associated_arch_by_addr(&self, addr: &mut u64) -> CoreArchitecture
fn instruction_info(&self, data: &[u8], addr: u64) -> Option<InstructionInfo>
fn instruction_text( &self, data: &[u8], addr: u64 ) -> Option<(usize, Vec<InstructionTextToken>)>
fn instruction_llil( &self, data: &[u8], addr: u64, il: &mut Lifter<Self> ) -> Option<(usize, bool)>
source§fn flag_write_llil<'a>(
&self,
_flag: Self::Flag,
_flag_write: Self::FlagWrite,
_op: FlagWriteOp<Self::Register>,
_il: &'a mut Lifter<Self>
) -> Option<LiftedExpr<'a, Self>>
fn flag_write_llil<'a>( &self, _flag: Self::Flag, _flag_write: Self::FlagWrite, _op: FlagWriteOp<Self::Register>, _il: &'a mut Lifter<Self> ) -> Option<LiftedExpr<'a, Self>>
Fallback flag value calculation path. This method is invoked when the core is unable to
recover flag use semantics, and resorts to emitting instructions that explicitly set each
observed flag to the value of an expression returned by this function. Read more
source§fn flag_cond_llil<'a>(
&self,
_cond: FlagCondition,
_class: Option<Self::FlagClass>,
_il: &'a mut Lifter<Self>
) -> Option<LiftedExpr<'a, Self>>
fn flag_cond_llil<'a>( &self, _cond: FlagCondition, _class: Option<Self::FlagClass>, _il: &'a mut Lifter<Self> ) -> Option<LiftedExpr<'a, Self>>
This function MUST NOT append instructions that have side effects. Read more
source§fn flag_group_llil<'a>(
&self,
_group: Self::FlagGroup,
_il: &'a mut Lifter<Self>
) -> Option<LiftedExpr<'a, Self>>
fn flag_group_llil<'a>( &self, _group: Self::FlagGroup, _il: &'a mut Lifter<Self> ) -> Option<LiftedExpr<'a, Self>>
Performs fallback resolution when the core was unable to recover the semantics of a
LLIL_FLAG_GROUP
expression. This occurs when multiple instructions may have set the flags
at the flag group query, or when the FlagGroup::flag_conditions()
map doesn’t have an entry
for the FlagClass
associated with the FlagWrite
type of the expression that last set
the flags required by the FlagGroup
group
. Read morefn registers_all(&self) -> Vec<CoreRegister>
fn registers_full_width(&self) -> Vec<CoreRegister>
fn registers_global(&self) -> Vec<CoreRegister>
fn registers_system(&self) -> Vec<CoreRegister>
fn register_stacks(&self) -> Vec<CoreRegisterStack>
fn flags(&self) -> Vec<CoreFlag>
fn flag_write_types(&self) -> Vec<CoreFlagWrite>
fn flag_classes(&self) -> Vec<CoreFlagClass>
fn flag_groups(&self) -> Vec<CoreFlagGroup>
source§fn flags_required_for_flag_condition(
&self,
condition: FlagCondition,
class: Option<Self::FlagClass>
) -> Vec<Self::Flag>
fn flags_required_for_flag_condition( &self, condition: FlagCondition, class: Option<Self::FlagClass> ) -> Vec<Self::Flag>
Determines what flags need to be examined in order to attempt automatic recovery of the
semantics of this flag use. Read more
fn stack_pointer_reg(&self) -> Option<CoreRegister>
fn link_reg(&self) -> Option<CoreRegister>
fn register_from_id(&self, id: u32) -> Option<CoreRegister>
fn register_stack_from_id(&self, id: u32) -> Option<CoreRegisterStack>
fn flag_from_id(&self, id: u32) -> Option<CoreFlag>
fn flag_write_from_id(&self, id: u32) -> Option<CoreFlagWrite>
fn flag_class_from_id(&self, id: u32) -> Option<CoreFlagClass>
fn flag_group_from_id(&self, id: u32) -> Option<CoreFlagGroup>
fn intrinsics(&self) -> Vec<CoreIntrinsic>
fn intrinsic_class(&self, id: u32) -> BNIntrinsicClass
fn intrinsic_from_id(&self, id: u32) -> Option<CoreIntrinsic>
fn can_assemble(&self) -> bool
fn assemble(&self, code: &str, addr: u64) -> Result<Vec<u8>, String>
fn is_never_branch_patch_available(&self, data: &[u8], addr: u64) -> bool
fn is_always_branch_patch_available(&self, data: &[u8], addr: u64) -> bool
fn is_invert_branch_patch_available(&self, data: &[u8], addr: u64) -> bool
fn is_skip_and_return_zero_patch_available( &self, data: &[u8], addr: u64 ) -> bool
fn is_skip_and_return_value_patch_available( &self, data: &[u8], addr: u64 ) -> bool
fn convert_to_nop(&self, data: &mut [u8], addr: u64) -> bool
fn always_branch(&self, data: &mut [u8], addr: u64) -> bool
fn invert_branch(&self, data: &mut [u8], addr: u64) -> bool
fn skip_and_return_value(&self, data: &mut [u8], addr: u64, value: u64) -> bool
fn handle(&self) -> CoreArchitecture
source§impl AsRef<CoreArchitecture> for CoreArchitecture
impl AsRef<CoreArchitecture> for CoreArchitecture
source§impl Clone for CoreArchitecture
impl Clone for CoreArchitecture
source§fn clone(&self) -> CoreArchitecture
fn clone(&self) -> CoreArchitecture
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for CoreArchitecture
impl Debug for CoreArchitecture
source§impl Hash for CoreArchitecture
impl Hash for CoreArchitecture
source§impl PartialEq for CoreArchitecture
impl PartialEq for CoreArchitecture
source§fn eq(&self, other: &CoreArchitecture) -> bool
fn eq(&self, other: &CoreArchitecture) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl Copy for CoreArchitecture
impl Eq for CoreArchitecture
impl Send for CoreArchitecture
impl StructuralPartialEq for CoreArchitecture
impl Sync for CoreArchitecture
Auto Trait Implementations§
impl RefUnwindSafe for CoreArchitecture
impl Unpin for CoreArchitecture
impl UnwindSafe for CoreArchitecture
Blanket Implementations§
source§impl<T> ArchitectureExt for Twhere
T: Architecture,
impl<T> ArchitectureExt for Twhere
T: Architecture,
fn register_by_name<S: BnStrCompatible>( &self, name: S ) -> Option<Self::Register>
fn calling_conventions(&self) -> Array<CallingConvention<Self>>
fn get_default_calling_convention(&self) -> Option<Ref<CallingConvention<Self>>>
fn set_default_calling_convention(&self, cc: &CallingConvention<Self>)
fn get_cdecl_calling_convention(&self) -> Option<Ref<CallingConvention<Self>>>
fn set_cdecl_calling_convention(&self, cc: &CallingConvention<Self>)
fn get_stdcall_calling_convention(&self) -> Option<Ref<CallingConvention<Self>>>
fn set_stdcall_calling_convention(&self, cc: &CallingConvention<Self>)
fn get_fastcall_calling_convention( &self ) -> Option<Ref<CallingConvention<Self>>>
fn set_fastcall_calling_convention(&self, cc: &CallingConvention<Self>)
fn standalone_platform(&self) -> Option<Ref<Platform>>
fn relocation_handler( &self, view_name: &str ) -> Option<Ref<CoreRelocationHandler>>
fn register_relocation_handler<S, R, F>(&self, name: S, func: F)where
S: BnStrCompatible,
R: 'static + RelocationHandler<Handle = CustomRelocationHandlerHandle<R>> + Send + Sync + Sized,
F: FnOnce(CustomRelocationHandlerHandle<R>, CoreRelocationHandler) -> R,
fn register_function_recognizer<R>(&self, recognizer: R)
source§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
Mutably borrows from an owned value. Read more