diff --git a/Anti-Cheat_Driver/comm_dispatch.cpp b/Anti-Cheat_Driver/comm_dispatch.cpp index 38f9674..bb4d0db 100644 --- a/Anti-Cheat_Driver/comm_dispatch.cpp +++ b/Anti-Cheat_Driver/comm_dispatch.cpp @@ -1,10 +1,11 @@ #include "comm_dispatch.h" #include "protect_filter.h" - +#include "anit_screen_grap.h" namespace comm_dispatch { auto dispatch(CMD_COMM* data) -> NTSTATUS { + auto status = STATUS_UNSUCCESSFUL; switch (data->CommID) { @@ -15,7 +16,17 @@ namespace comm_dispatch } case CMD::DRIVER_PROTECT_PROCESS: { - status = protect_filter::add_list((ULONG)data->Pid, NULL); + auto process_data = (IOCTL_PROCESS*)data->Buf; + status = protect_filter::add_list((ULONG)process_data->Pid, NULL); + break; + } + case CMD::WINDOW_ANIT_SCREEN: + { + auto window_data = (IOCTL_WINDOW*)data->Buf; + + status = anit_screen_grap::GreProtectSpriteContent( + (HWND)window_data->HWND, (UINT)window_data->Flags); + break; } default: diff --git a/Anti-Cheat_Driver/comm_dispatch.h b/Anti-Cheat_Driver/comm_dispatch.h index cfdb5f0..58b254e 100644 --- a/Anti-Cheat_Driver/comm_dispatch.h +++ b/Anti-Cheat_Driver/comm_dispatch.h @@ -4,15 +4,26 @@ struct CMD_COMM { DWORD64 CommID; - DWORD64 Pid; + DWORD64 Buf; DWORD64 status; }; +struct IOCTL_PROCESS +{ + DWORD64 Pid; +}; + +struct IOCTL_WINDOW +{ + DWORD64 HWND; + DWORD64 Flags; +}; enum CMD { MSG_BASE = 0x10000, DRIVER_COMM_TEST, - DRIVER_PROTECT_PROCESS + DRIVER_PROTECT_PROCESS, + WINDOW_ANIT_SCREEN, }; namespace comm_dispatch