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