NyxMemExtension

Trait NyxMemExtension 

Source
pub trait NyxMemExtension {
Show 14 methods // Required methods fn resolve_vaddr( &self, cr3: u64, vaddr: u64, ) -> Result<GuestAddress, MemoryError>; fn read_virtual<T: ByteValued + AtomicAccess>( &self, cr3: u64, vaddr: u64, ) -> Result<T, MemoryError>; fn write_virtual<T: ByteValued + AtomicAccess>( &self, cr3: u64, vaddr: u64, val: T, ) -> Result<(), MemoryError>; fn read_phys<T: ByteValued + AtomicAccess>( &self, paddr: u64, ) -> Result<T, MemoryError>; fn write_phys<T: ByteValued + AtomicAccess>( &self, paddr: u64, val: T, ) -> Result<(), MemoryError>; fn set_physical_page_permission( &mut self, phys_addr: u64, perm: PagePermission, ); fn set_virtual_page_permission( &mut self, cr3: u64, vaddr: u64, perm: PagePermission, ); fn read_virtual_u8(&self, cr3: u64, vaddr: u64) -> Result<u8, MemoryError>; fn write_virtual_u8( &self, cr3: u64, vaddr: u64, val: u8, ) -> Result<(), MemoryError>; fn read_virtual_u64(&self, cr3: u64, vaddr: u64) -> Result<u64, MemoryError>; fn write_virtual_u64( &self, cr3: u64, vaddr: u64, val: u64, ) -> Result<(), MemoryError>; fn read_virtual_cstr(&self, cr3: u64, guest_vaddr: u64) -> Vec<u8> ; fn read_virtual_bytes( &self, cr3: u64, vaddr: u64, buffer: &mut [u8], ) -> Result<usize, MemoryError>; fn write_virtual_bytes( &self, cr3: u64, guest_vaddr: u64, buffer: &[u8], ) -> Result<usize, MemoryError>;
}

Required Methods§

Source

fn resolve_vaddr( &self, cr3: u64, vaddr: u64, ) -> Result<GuestAddress, MemoryError>

Source

fn read_virtual<T: ByteValued + AtomicAccess>( &self, cr3: u64, vaddr: u64, ) -> Result<T, MemoryError>

Source

fn write_virtual<T: ByteValued + AtomicAccess>( &self, cr3: u64, vaddr: u64, val: T, ) -> Result<(), MemoryError>

Source

fn read_phys<T: ByteValued + AtomicAccess>( &self, paddr: u64, ) -> Result<T, MemoryError>

Source

fn write_phys<T: ByteValued + AtomicAccess>( &self, paddr: u64, val: T, ) -> Result<(), MemoryError>

Source

fn set_physical_page_permission(&mut self, phys_addr: u64, perm: PagePermission)

Source

fn set_virtual_page_permission( &mut self, cr3: u64, vaddr: u64, perm: PagePermission, )

Source

fn read_virtual_u8(&self, cr3: u64, vaddr: u64) -> Result<u8, MemoryError>

Source

fn write_virtual_u8( &self, cr3: u64, vaddr: u64, val: u8, ) -> Result<(), MemoryError>

Source

fn read_virtual_u64(&self, cr3: u64, vaddr: u64) -> Result<u64, MemoryError>

Source

fn write_virtual_u64( &self, cr3: u64, vaddr: u64, val: u64, ) -> Result<(), MemoryError>

Source

fn read_virtual_cstr(&self, cr3: u64, guest_vaddr: u64) -> Vec<u8>

Source

fn read_virtual_bytes( &self, cr3: u64, vaddr: u64, buffer: &mut [u8], ) -> Result<usize, MemoryError>

Source

fn write_virtual_bytes( &self, cr3: u64, guest_vaddr: u64, buffer: &[u8], ) -> Result<usize, MemoryError>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<GetMemT> NyxMemExtension for GetMemT
where GetMemT: GetMem,