142 lines
3.4 KiB
C++
142 lines
3.4 KiB
C++
#include "client_driver.h"
|
|
#include "driver_func.h"
|
|
#include "client_pipe.h"
|
|
|
|
|
|
client_driver* client_driver::instance = nullptr;
|
|
PMAPPING_USER_MEMORY client_driver::mapping_data = nullptr;
|
|
|
|
auto client_driver::fn_get_instance() -> client_driver*
|
|
{
|
|
if (instance == nullptr)
|
|
{
|
|
instance = new client_driver;
|
|
}
|
|
if (mapping_data == nullptr)
|
|
{
|
|
mapping_data = pMapping_Memory;
|
|
}
|
|
return instance;
|
|
}
|
|
|
|
auto client_driver::driver_map_load() -> BOOL
|
|
{
|
|
return HBClientLoadDriverW();
|
|
}
|
|
|
|
auto client_driver::check_load_driver() -> BOOL
|
|
{
|
|
NTSTATUS status = STATUS_UNSUCCESSFUL;
|
|
|
|
CMD_COMM data;
|
|
data.CommID = DRIVER_COOM_TYPE::DRIVER_COMM_TEST;
|
|
data.status = (DWORD64)&status;
|
|
|
|
driver_func::driver_comm_func(&data, sizeof(data));
|
|
|
|
return NT_SUCCESS(status);
|
|
}
|
|
|
|
auto client_driver::add_process_protect(DWORD Pid) ->BOOL
|
|
{
|
|
NTSTATUS status = STATUS_UNSUCCESSFUL;
|
|
|
|
CMD_COMM data;
|
|
IOCTL_PROCESS process{ 0 };
|
|
process.Pid = Pid;
|
|
|
|
data.CommID = DRIVER_COOM_TYPE::DRIVER_PROTECT_PROCESS;
|
|
data.Buf = (DWORD64)&process;
|
|
data.status = (DWORD64)&status;
|
|
|
|
driver_func::driver_comm_func(&data, sizeof(data));
|
|
return NT_SUCCESS(status);
|
|
}
|
|
|
|
auto client_driver::delete_process_protect(DWORD Pid)->BOOL
|
|
{
|
|
NTSTATUS status = STATUS_UNSUCCESSFUL;
|
|
|
|
CMD_COMM data;
|
|
IOCTL_PROCESS process{ 0 };
|
|
process.Pid = Pid;
|
|
|
|
data.CommID = DRIVER_COOM_TYPE::DRIVER_CANCEL_PROTECT_PROCESS;
|
|
data.Buf = (DWORD64)&process;
|
|
data.status = (DWORD64)&status;
|
|
|
|
driver_func::driver_comm_func(&data, sizeof(data));
|
|
return NT_SUCCESS(status);
|
|
}
|
|
|
|
auto client_driver::window_anit_screen(HWND hwnd, UINT Flags) -> BOOL
|
|
{
|
|
NTSTATUS status = STATUS_UNSUCCESSFUL;
|
|
|
|
CMD_COMM data;
|
|
IOCTL_WINDOW window{ 0 };
|
|
|
|
window.HWND = (DWORD64)hwnd;
|
|
window.Flags = Flags;
|
|
|
|
data.CommID = DRIVER_COOM_TYPE::WINDOW_ANIT_SCREEN;
|
|
data.Buf = (DWORD64)&window;
|
|
data.status = (DWORD64)&status;
|
|
|
|
driver_func::driver_comm_func(&data, sizeof(data));
|
|
return status;
|
|
}
|
|
|
|
auto client_driver::install_mouse_keyboard() -> BOOL
|
|
{
|
|
NTSTATUS status = STATUS_UNSUCCESSFUL;
|
|
CMD_COMM data;
|
|
data.CommID = DRIVER_COOM_TYPE::INSTALL_MOUSE_KEYBOARD;
|
|
data.status = (DWORD64)&status;
|
|
|
|
driver_func::driver_comm_func(&data, sizeof(data));
|
|
return status;
|
|
}
|
|
|
|
auto client_driver::unload_mouse_keyboard()->BOOL
|
|
{
|
|
NTSTATUS status = STATUS_UNSUCCESSFUL;
|
|
|
|
CMD_COMM data;
|
|
data.CommID = DRIVER_COOM_TYPE::UNLOAD_MOUSE_KEYBOARD;
|
|
data.status = (DWORD64)&status;
|
|
driver_func::driver_comm_func(&data, sizeof(data));
|
|
return status;
|
|
}
|
|
auto client_driver::add_white_mouse_keyoard_process(DWORD Pid) -> BOOL
|
|
{
|
|
NTSTATUS status = STATUS_UNSUCCESSFUL;
|
|
IOCTL_PROCESS process{ 0 };
|
|
process.Pid = Pid;
|
|
|
|
CMD_COMM data;
|
|
data.CommID = DRIVER_COOM_TYPE::ADD_WHITE_PROCESS;
|
|
data.Buf = (DWORD64)&process;
|
|
data.status = (DWORD64)&status;
|
|
|
|
driver_func::driver_comm_func(&data, sizeof(data));
|
|
return status;
|
|
}
|
|
|
|
auto client_driver::enjoin_remote_thread(BOOL val) -> BOOL
|
|
{
|
|
NTSTATUS status = STATUS_UNSUCCESSFUL;
|
|
|
|
IOCTL_PROCESS process{ 0 };
|
|
process.is_no_create_remote_thread = val;
|
|
|
|
CMD_COMM data;
|
|
data.CommID = DRIVER_COOM_TYPE::PROTECT_THREAD_CONTRL;
|
|
data.Buf = (DWORD64)&process;
|
|
data.status = (DWORD64)&status;
|
|
|
|
driver_func::driver_comm_func(&data, sizeof(data));
|
|
return status;
|
|
}
|
|
|