mirror of
https://github.com/joaoviictorti/shadow-rs.git
synced 2025-12-23 18:24:24 +01:00
Adding DLL injection functionality
This commit is contained in:
29
driver/src/injection/callbacks.rs
Normal file
29
driver/src/injection/callbacks.rs
Normal file
@@ -0,0 +1,29 @@
|
||||
use wdk_sys::{ntddk::{ExFreePool, PsIsThreadTerminating}, PKAPC, PVOID, _MODE::UserMode};
|
||||
|
||||
use crate::includes::{types::PKNORMAL_ROUTINE, KeTestAlertThread, PsGetCurrentThread};
|
||||
|
||||
pub unsafe extern "system" fn kernel_apc_callback(
|
||||
apc: PKAPC,
|
||||
_normal_routine: *mut PKNORMAL_ROUTINE,
|
||||
_normal_context: *mut PVOID,
|
||||
_system_argument1: *mut PVOID,
|
||||
_system_argument2: *mut PVOID
|
||||
) {
|
||||
|
||||
KeTestAlertThread(UserMode as i8);
|
||||
ExFreePool(apc as _)
|
||||
}
|
||||
|
||||
pub unsafe extern "system" fn user_apc_callback(
|
||||
apc: PKAPC,
|
||||
normal_routine: *mut PKNORMAL_ROUTINE,
|
||||
_normal_context: *mut PVOID,
|
||||
_system_argument1: *mut PVOID,
|
||||
_system_argument2: *mut PVOID
|
||||
) {
|
||||
if PsIsThreadTerminating(PsGetCurrentThread()) == 1 {
|
||||
*normal_routine = None;
|
||||
}
|
||||
|
||||
ExFreePool(apc as _)
|
||||
}
|
||||
Reference in New Issue
Block a user