pub struct CoreArchitecture(/* private fields */);

Implementations§

Trait Implementations§

source§

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

source§

fn endianness(&self) -> Endianness

source§

fn address_size(&self) -> usize

source§

fn default_integer_size(&self) -> usize

source§

fn instruction_alignment(&self) -> usize

source§

fn max_instr_len(&self) -> usize

source§

fn opcode_display_len(&self) -> usize

source§

fn associated_arch_by_addr(&self, addr: &mut u64) -> CoreArchitecture

source§

fn instruction_info(&self, data: &[u8], addr: u64) -> Option<InstructionInfo>

source§

fn instruction_text( &self, data: &[u8], addr: u64 ) -> Option<(usize, Vec<InstructionTextToken>)>

source§

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>>

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>>

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>>

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 more
source§

fn registers_all(&self) -> Vec<CoreRegister>

source§

fn registers_full_width(&self) -> Vec<CoreRegister>

source§

fn registers_global(&self) -> Vec<CoreRegister>

source§

fn registers_system(&self) -> Vec<CoreRegister>

source§

fn register_stacks(&self) -> Vec<CoreRegisterStack>

source§

fn flags(&self) -> Vec<CoreFlag>

source§

fn flag_write_types(&self) -> Vec<CoreFlagWrite>

source§

fn flag_classes(&self) -> Vec<CoreFlagClass>

source§

fn flag_groups(&self) -> Vec<CoreFlagGroup>

source§

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
source§

fn stack_pointer_reg(&self) -> Option<CoreRegister>

source§

fn register_from_id(&self, id: u32) -> Option<CoreRegister>

source§

fn register_stack_from_id(&self, id: u32) -> Option<CoreRegisterStack>

source§

fn flag_from_id(&self, id: u32) -> Option<CoreFlag>

source§

fn flag_write_from_id(&self, id: u32) -> Option<CoreFlagWrite>

source§

fn flag_class_from_id(&self, id: u32) -> Option<CoreFlagClass>

source§

fn flag_group_from_id(&self, id: u32) -> Option<CoreFlagGroup>

source§

fn intrinsics(&self) -> Vec<CoreIntrinsic>

source§

fn intrinsic_class(&self, id: u32) -> BNIntrinsicClass

source§

fn intrinsic_from_id(&self, id: u32) -> Option<CoreIntrinsic>

source§

fn can_assemble(&self) -> bool

source§

fn assemble(&self, code: &str, addr: u64) -> Result<Vec<u8>, String>

source§

fn is_never_branch_patch_available(&self, data: &[u8], addr: u64) -> bool

source§

fn is_always_branch_patch_available(&self, data: &[u8], addr: u64) -> bool

source§

fn is_invert_branch_patch_available(&self, data: &[u8], addr: u64) -> bool

source§

fn is_skip_and_return_zero_patch_available( &self, data: &[u8], addr: u64 ) -> bool

source§

fn is_skip_and_return_value_patch_available( &self, data: &[u8], addr: u64 ) -> bool

source§

fn convert_to_nop(&self, data: &mut [u8], addr: u64) -> bool

source§

fn always_branch(&self, data: &mut [u8], addr: u64) -> bool

source§

fn invert_branch(&self, data: &mut [u8], addr: u64) -> bool

source§

fn skip_and_return_value(&self, data: &mut [u8], addr: u64, value: u64) -> bool

source§

fn handle(&self) -> CoreArchitecture

source§

impl AsRef<CoreArchitecture> for CoreArchitecture

source§

fn as_ref(&self) -> &Self

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for CoreArchitecture

source§

fn clone(&self) -> CoreArchitecture

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for CoreArchitecture

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for CoreArchitecture

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for CoreArchitecture

source§

fn eq(&self, other: &CoreArchitecture) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for CoreArchitecture

source§

impl Eq for CoreArchitecture

source§

impl Send for CoreArchitecture

source§

impl StructuralPartialEq for CoreArchitecture

source§

impl Sync for CoreArchitecture

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> ArchitectureExt for T
where T: Architecture,

source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.