use vmi::{
arch::amd64::Amd64,
driver::VmiMemory,
os::windows::WindowsOs,
utils::shellcode::{KernelRecipe, kernel_shellcode_call_recipe, kernel_shellcode_spawn_recipe},
};
use super::parameters::KernelFileParameters;
const KERNEL_FILE_SHELLCODE: &[u8] = include_bytes!(concat!(
env!("CARGO_MANIFEST_DIR"),
"/examples/shellcodes/bin/x64/kernel-file.bin"
));
#[tracing::instrument(name = "kernel_file_call", skip_all)]
pub fn kernel_file_call_recipe<Driver>(
parameters: &KernelFileParameters,
) -> KernelRecipe<WindowsOs<Driver>>
where
Driver: VmiMemory<Architecture = Amd64>,
{
kernel_shellcode_call_recipe(KERNEL_FILE_SHELLCODE, parameters)
}
#[tracing::instrument(name = "kernel_file_spawn", skip_all)]
pub fn kernel_file_spawn_recipe<Driver>(
parameters: &KernelFileParameters,
) -> KernelRecipe<WindowsOs<Driver>>
where
Driver: VmiMemory<Architecture = Amd64>,
{
kernel_shellcode_spawn_recipe(KERNEL_FILE_SHELLCODE, parameters)
}