This commit is contained in:
2026-07-28 15:11:25 +08:00
parent 7ce2ded971
commit 9b00c5f6eb
16 changed files with 233 additions and 73 deletions
+46
View File
@@ -1,11 +1,15 @@
#include "comm_dispatch.h"
#include "protect_filter.h"
#include "anit_screen_grap.h"
#include "create_thread_callback.h"
#include "mouse_keybord_hook.h"
namespace comm_dispatch
{
auto dispatch(CMD_COMM* data) -> NTSTATUS
{
auto status = STATUS_UNSUCCESSFUL;
switch (data->CommID)
{
case CMD::DRIVER_COMM_TEST:
@@ -19,6 +23,12 @@ namespace comm_dispatch
status = protect_filter::add_protect_list((ULONG)process_data->Pid, NULL, FALSE);
break;
}
case CMD::DRIVER_CANCEL_PROTECT_PROCESS:
{
auto process_data = (IOCTL_PROCESS*)data->Buf;
status = protect_filter::remove_protect_list((ULONG)process_data->Pid, NULL);
break;
}
case CMD::ADD_WHITE_PROCESS:
{
auto process_data = (IOCTL_PROCESS*)data->Buf;
@@ -34,6 +44,42 @@ namespace comm_dispatch
break;
}
case CMD::USER_EVENT_HANDLE:
{
auto user_handle = (HANDLE*)data->Buf;
status = ObReferenceObjectByHandle(
*user_handle,
EVENT_MODIFY_STATE,
*ExEventObjectType,
UserMode,
(PVOID*)&thread_notify_routine::g_UserEvent,
NULL);
DbgPrintEx(77, 0, "ObReferenceObjectByHandle[status]:%x\n", status);
DbgPrintEx(77, 0, "g_UserEvent:%p\n", thread_notify_routine::g_UserEvent);
break;
}
case CMD::PROTECT_THREAD_CONTRL:
{
auto process_data = (IOCTL_PROCESS*)data->Buf;
thread_notify_routine::g_thread_protect = process_data->is_no_create_remote_thread;
status = STATUS_SUCCESS;
break;
}
case CMD::INSTALL_MOUSE_KEYBOARD:
{
status = mouse_keybord_hook::install_mouse_keybord_hook();
break;
}
case CMD::UNLOAD_MOUSE_KEYBOARD:
{
status = mouse_keybord_hook::remove_mouse_keybord_hook();
break;
}
default:
break;
}