Skip to main content

Config

Struct Config 

Source
#[repr(C)]
pub struct Config {
Show 29 fields pub rtl_user_addr: *const c_void, pub rtl_user_thread_size: u64, pub base_thread_addr: *const c_void, pub base_thread_size: u64, pub first_frame_fp: *const c_void, pub second_frame_fp: *const c_void, pub jmp_rbx_gadget: *const c_void, pub add_rsp_gadget: *const c_void, pub first_frame_size: u64, pub second_frame_size: u64, pub jmp_rbx_frame_size: u64, pub add_rsp_frame_size: u64, pub rbp_stack_offset: u64, pub spoof_function: *const c_void, pub return_address: *const c_void, pub is_syscall: u32, pub ssn: u32, pub number_args: u64, pub arg01: *const c_void, pub arg02: *const c_void, pub arg03: *const c_void, pub arg04: *const c_void, pub arg05: *const c_void, pub arg06: *const c_void, pub arg07: *const c_void, pub arg08: *const c_void, pub arg09: *const c_void, pub arg10: *const c_void, pub arg11: *const c_void,
}
Expand description

Config struct read by the asm trampoline. Layout must match src/asm/{msvc,gnu}/synthetic.asm and desync.asm byte-for-byte. Field reordering will corrupt argument passing — do not touch.

Fields§

§rtl_user_addr: *const c_void§rtl_user_thread_size: u64§base_thread_addr: *const c_void§base_thread_size: u64§first_frame_fp: *const c_void§second_frame_fp: *const c_void§jmp_rbx_gadget: *const c_void§add_rsp_gadget: *const c_void§first_frame_size: u64§second_frame_size: u64§jmp_rbx_frame_size: u64§add_rsp_frame_size: u64§rbp_stack_offset: u64§spoof_function: *const c_void§return_address: *const c_void§is_syscall: u32§ssn: u32§number_args: u64§arg01: *const c_void§arg02: *const c_void§arg03: *const c_void§arg04: *const c_void§arg05: *const c_void§arg06: *const c_void§arg07: *const c_void§arg08: *const c_void§arg09: *const c_void§arg10: *const c_void§arg11: *const c_void

Trait Implementations§

Source§

impl Debug for Config

Source§

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

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

impl Default for Config

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

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> AsPointer for T

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

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

Source§

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.