#[non_exhaustive]pub struct KernelRootkit {
pub name: String,
pub unexpected_code_modification: bool,
pub unexpected_read_only_data_modification: bool,
pub unexpected_ftrace_handler: bool,
pub unexpected_kprobe_handler: bool,
pub unexpected_kernel_code_pages: bool,
pub unexpected_system_call_handler: bool,
pub unexpected_interrupt_handler: bool,
pub unexpected_processes_in_runqueue: bool,
/* private fields */
}Expand description
Kernel mode rootkit signatures.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.name: StringRootkit name, when available.
unexpected_code_modification: boolTrue if unexpected modifications of kernel code memory are present.
unexpected_read_only_data_modification: boolTrue if unexpected modifications of kernel read-only data memory are present.
unexpected_ftrace_handler: boolTrue if ftrace points are present with callbacks pointing to regions
that are not in the expected kernel or module code range.
unexpected_kprobe_handler: boolTrue if kprobe points are present with callbacks pointing to regions
that are not in the expected kernel or module code range.
unexpected_kernel_code_pages: boolTrue if kernel code pages that are not in the expected kernel or module code regions are present.
unexpected_system_call_handler: boolTrue if system call handlers that are are not in the expected kernel or module code regions are present.
unexpected_interrupt_handler: boolTrue if interrupt handlers that are are not in the expected kernel or module code regions are present.
unexpected_processes_in_runqueue: boolTrue if unexpected processes in the scheduler run queue are present. Such processes are in the run queue, but not in the process task list.
Implementations§
Source§impl KernelRootkit
impl KernelRootkit
pub fn new() -> Self
Sourcepub fn set_unexpected_code_modification<T: Into<bool>>(self, v: T) -> Self
pub fn set_unexpected_code_modification<T: Into<bool>>(self, v: T) -> Self
Sets the value of unexpected_code_modification.
§Example
let x = KernelRootkit::new().set_unexpected_code_modification(true);Sourcepub fn set_unexpected_read_only_data_modification<T: Into<bool>>(
self,
v: T,
) -> Self
pub fn set_unexpected_read_only_data_modification<T: Into<bool>>( self, v: T, ) -> Self
Sets the value of unexpected_read_only_data_modification.
§Example
let x = KernelRootkit::new().set_unexpected_read_only_data_modification(true);Sourcepub fn set_unexpected_ftrace_handler<T: Into<bool>>(self, v: T) -> Self
pub fn set_unexpected_ftrace_handler<T: Into<bool>>(self, v: T) -> Self
Sets the value of unexpected_ftrace_handler.
§Example
let x = KernelRootkit::new().set_unexpected_ftrace_handler(true);Sourcepub fn set_unexpected_kprobe_handler<T: Into<bool>>(self, v: T) -> Self
pub fn set_unexpected_kprobe_handler<T: Into<bool>>(self, v: T) -> Self
Sets the value of unexpected_kprobe_handler.
§Example
let x = KernelRootkit::new().set_unexpected_kprobe_handler(true);Sourcepub fn set_unexpected_kernel_code_pages<T: Into<bool>>(self, v: T) -> Self
pub fn set_unexpected_kernel_code_pages<T: Into<bool>>(self, v: T) -> Self
Sets the value of unexpected_kernel_code_pages.
§Example
let x = KernelRootkit::new().set_unexpected_kernel_code_pages(true);Sourcepub fn set_unexpected_system_call_handler<T: Into<bool>>(self, v: T) -> Self
pub fn set_unexpected_system_call_handler<T: Into<bool>>(self, v: T) -> Self
Sets the value of unexpected_system_call_handler.
§Example
let x = KernelRootkit::new().set_unexpected_system_call_handler(true);Sourcepub fn set_unexpected_interrupt_handler<T: Into<bool>>(self, v: T) -> Self
pub fn set_unexpected_interrupt_handler<T: Into<bool>>(self, v: T) -> Self
Sets the value of unexpected_interrupt_handler.
§Example
let x = KernelRootkit::new().set_unexpected_interrupt_handler(true);Sourcepub fn set_unexpected_processes_in_runqueue<T: Into<bool>>(self, v: T) -> Self
pub fn set_unexpected_processes_in_runqueue<T: Into<bool>>(self, v: T) -> Self
Sets the value of unexpected_processes_in_runqueue.
§Example
let x = KernelRootkit::new().set_unexpected_processes_in_runqueue(true);Trait Implementations§
Source§impl Clone for KernelRootkit
impl Clone for KernelRootkit
Source§fn clone(&self) -> KernelRootkit
fn clone(&self) -> KernelRootkit
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more