Struct NoOS

Source
pub struct NoOS;
Expand description

Marker type for a missing OS implementation.

Trait Implementations§

Source§

impl<Driver> VmiOs<Driver> for NoOS
where Driver: VmiDriver,

Source§

type Process<'a> = NoOS

The process type.
Source§

type Thread<'a> = NoOS

The thread type.
Source§

type Image<'a> = NoOS

The image type.
Source§

type Module<'a> = NoOS

The kernel module type.
Source§

type Region<'a> = NoOS

The memory region type.
Source§

type Mapped<'a> = NoOS

The memory mapped region type.
Source§

fn kernel_image_base(_vmi: VmiState<'_, Driver, Self>) -> Result<Va, VmiError>

Retrieves the base address of the kernel image. Read more
Source§

fn kernel_information_string( _vmi: VmiState<'_, Driver, Self>, ) -> Result<String, VmiError>

Retrieves an implementation-specific string containing kernel information. Read more
Source§

fn kpti_enabled(_vmi: VmiState<'_, Driver, Self>) -> Result<bool, VmiError>

Checks if Kernel Page Table Isolation (KPTI) is enabled. Read more
Source§

fn modules( _vmi: VmiState<'_, Driver, Self>, ) -> Result<impl Iterator<Item = Result<Self::Module<'_>, VmiError>> + '_, VmiError>

Returns an iterator over the loaded kernel modules. Read more
Source§

fn processes( _vmi: VmiState<'_, Driver, Self>, ) -> Result<impl Iterator<Item = Result<Self::Process<'_>, VmiError>> + '_, VmiError>

Returns an iterator over the processes. Read more
Source§

fn process<'a>( _vmi: VmiState<'_, Driver, Self>, _process: ProcessObject, ) -> Result<Self::Process<'_>, VmiError>

Returns the process corresponding to the given process object.
Source§

fn current_process<'a>( _vmi: VmiState<'_, Driver, Self>, ) -> Result<Self::Process<'_>, VmiError>

Returns the currently executing process.
Source§

fn system_process<'a>( _vmi: VmiState<'_, Driver, Self>, ) -> Result<Self::Process<'_>, VmiError>

Returns the system process object. Read more
Source§

fn thread<'a>( _vmi: VmiState<'_, Driver, Self>, _thread: ThreadObject, ) -> Result<Self::Thread<'_>, VmiError>

Returns the thread corresponding to the given thread object.
Source§

fn current_thread( _vmi: VmiState<'_, Driver, Self>, ) -> Result<Self::Thread<'_>, VmiError>

Returns the currently executing thread.
Source§

fn image<'a>( _vmi: VmiState<'_, Driver, Self>, _image_base: Va, ) -> Result<Self::Image<'_>, VmiError>

Returns the image corresponding to the given base address.
Source§

fn module<'a>( _vmi: VmiState<'_, Driver, Self>, _module: Va, ) -> Result<Self::Module<'_>, VmiError>

Returns the kernel module corresponding to the given base address.
Source§

fn region<'a>( _vmi: VmiState<'_, Driver, Self>, _region: Va, ) -> Result<Self::Region<'_>, VmiError>

Returns the memory region corresponding to the given address. Read more
Source§

fn syscall_argument( _vmi: VmiState<'_, Driver, Self>, _index: u64, ) -> Result<u64, VmiError>

Retrieves a specific syscall argument according to the system call ABI. Read more
Source§

fn function_argument( _vmi: VmiState<'_, Driver, Self>, _index: u64, ) -> Result<u64, VmiError>

Retrieves a specific function argument according to the calling convention of the operating system. Read more
Source§

fn function_return_value( _vmi: VmiState<'_, Driver, Self>, ) -> Result<u64, VmiError>

Retrieves the return value of a function. Read more
Source§

fn last_error(_vmi: VmiState<'_, Driver, Self>) -> Result<Option<u32>, VmiError>

Retrieves the last error value. Read more
Source§

impl<Driver> VmiOsImage<'_, Driver> for NoOS
where Driver: VmiDriver,

Source§

type Os = NoOS

The VMI OS type.
Source§

fn base_address(&self) -> Va

Returns the base address of the image.
Source§

fn architecture(&self) -> Result<Option<VmiOsImageArchitecture>, VmiError>

Returns the target architecture for which the image was compiled.
Source§

fn exports(&self) -> Result<Vec<VmiOsImageSymbol>, VmiError>

Returns the exported symbols.
Source§

impl<Driver> VmiOsMapped<'_, Driver> for NoOS
where Driver: VmiDriver,

Source§

type Os = NoOS

The VMI OS type.
Source§

fn path(&self) -> Result<Option<String>, VmiError>

Returns the path to the file backing the region. Read more
Source§

impl<Driver> VmiOsModule<'_, Driver> for NoOS
where Driver: VmiDriver,

Source§

type Os = NoOS

The VMI OS type.
Source§

fn base_address(&self) -> Result<Va, VmiError>

Returns the base address of the module. Read more
Source§

fn size(&self) -> Result<u64, VmiError>

Returns the size of the module. Read more
Source§

fn name(&self) -> Result<String, VmiError>

Returns the name of the module. Read more
Source§

impl<'a, Driver> VmiOsProcess<'a, Driver> for NoOS
where Driver: VmiDriver,

Source§

type Os = NoOS

The VMI OS type.
Source§

fn id(&self) -> Result<ProcessId, VmiError>

Returns the process ID.
Source§

fn object(&self) -> Result<ProcessObject, VmiError>

Returns the process object.
Source§

fn name(&self) -> Result<String, VmiError>

Returns the name of the process. Read more
Source§

fn parent_id(&self) -> Result<ProcessId, VmiError>

Returns the parent process ID.
Source§

fn architecture(&self) -> Result<VmiOsImageArchitecture, VmiError>

Returns the architecture of the process.
Source§

fn translation_root(&self) -> Result<Pa, VmiError>

Returns the process’s page table translation root.
Source§

fn user_translation_root(&self) -> Result<Pa, VmiError>

Returns the user-mode page table translation root. Read more
Source§

fn image_base(&self) -> Result<Va, VmiError>

Returns the base address of the process image.
Source§

fn regions( &self, ) -> Result<impl Iterator<Item = Result<<Self::Os as VmiOs<Driver>>::Region<'_>, VmiError>>, VmiError>

Returns an iterator over the process’s memory regions.
Source§

fn find_region( &self, _address: Va, ) -> Result<Option<<Self::Os as VmiOs<Driver>>::Region<'a>>, VmiError>

Finds the memory region containing the given address.
Source§

fn threads( &self, ) -> Result<impl Iterator<Item = Result<<Self::Os as VmiOs<Driver>>::Thread<'a>, VmiError>>, VmiError>

Returns an iterator over the threads in the process. Read more
Source§

fn is_valid_address(&self, _address: Va) -> Result<Option<bool>, VmiError>

Checks whether the given virtual address is valid in the process. Read more
Source§

impl<'a, Driver> VmiOsRegion<'a, Driver> for NoOS
where Driver: VmiDriver,

Source§

type Os = NoOS

The VMI OS type.
Source§

fn start(&self) -> Result<Va, VmiError>

Returns the starting virtual address of the memory region.
Source§

fn end(&self) -> Result<Va, VmiError>

Returns the ending virtual address of the memory region.
Source§

fn protection(&self) -> Result<MemoryAccess, VmiError>

Returns the memory protection of the memory region.
Source§

fn kind(&self) -> Result<VmiOsRegionKind<'a, Driver, Self::Os>, VmiError>

Returns the memory region’s kind.
Source§

impl<Driver> VmiOsThread<'_, Driver> for NoOS
where Driver: VmiDriver,

Source§

type Os = NoOS

The VMI OS type.
Source§

fn id(&self) -> Result<ThreadId, VmiError>

Returns the thread ID.
Source§

fn object(&self) -> Result<ThreadObject, VmiError>

Returns the thread object.
Source§

impl VmiVa for NoOS

Source§

fn va(&self) -> Va

Returns the virtual address.

Auto Trait Implementations§

§

impl Freeze for NoOS

§

impl RefUnwindSafe for NoOS

§

impl Send for NoOS

§

impl Sync for NoOS

§

impl Unpin for NoOS

§

impl UnwindSafe for NoOS

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

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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 = 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>,

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

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more