资源简介

多种方法 保护进程 断链 修改Flag hook对象 抹psp表 csscs表 注册回调 ObRegisterCallbacks

资源截图

代码片段和文件信息

#include“stdafx.h“
#include
#include
#include“DEVICE_IO_CONTROL.h“
#include“MRWAPI.h“
//KMDF
//KERNELTEST_WIN32_DEVICE_NAME_W // L“\\\\.\\BufferedIODevcielinkName“
#define DEVICE_link_NAME  KERNELTEST_DEVICE_SIMBOLIC_W


//#define CTL_SYS     CTL_CODE(FILE_DEVICE_UNKNOWN0x830METHOD_BUFFEREDFILE_ANY_ACCESS)
//BOOL WINAPI DeviceIoControl(
// _In_         HANDLE hDevice       //CreateFile函数打开的设备句柄
// _In_         DWORD dwIoControlCode//自定义的控制码
// _In_opt_     LPVOID lpInBuffer    //输入缓冲区
// _In_         DWORD nInBufferSize  //输入缓冲区的大小
// _Out_opt_    LPVOID lpOutBuffer   //输出缓冲区
// _In_         DWORD nOutBufferSize //输出缓冲区的大小
// _Out_opt_    LPDWORD lpBytesReturned //实际返回的字节数,对应驱动程序中pIrp->IoStatus.Information。
// _Inout_opt_  LPOVERLAPPED lpOverlapped //重叠操作结构指针。同步设为NULL,DeviceIoControl将进行阻塞调用;否则,应在编程时按异步操作设计
//);
//测试 传送参数
ULONG64 DeviceIo_Test()  
{
UINT nTypeCode = hook_code;
HANDLE DeviceHandle = CreateFile(
DEVICE_link_NAME //
GENERIC_READ | GENERIC_WRITE
FILE_SHARE_READ | FILE_SHARE_WRITE
NULL
OPEN_EXISTING
FILE_ATTRIBUTE_NORMAL
NULL);

TRACE(“yjx:打开设备驱动 DeviceHandle=%lx----------“ DeviceHandle);
if (DeviceHandle == INVALID_HANDLE_VALUE)
{
TRACE(“yjx:打开设备驱动 失败 Error 1132323  DeviceIo_Test\n“);
return 0;
}
char BufferDataIn[MAX_PATH] = “Ring3->Ring0“;
char BufferDataOut[MAX_PATH] = { 0 };
DWORD ReturnLength = 0;

BOOL IsOK = DeviceIoControl(
DeviceHandle //CreateFile函数打开的设备句柄
nTypeCode//自定义的控制码
BufferDataIn//输入缓冲区
MAX_PATH//输入缓冲区大小
(LPVOID)BufferDataOut////输出缓冲区
MAX_PATH//输出缓冲区的大小
&ReturnLength//实际返回的字节数,对应驱动程序中pIrp->IoStatus.Information。
NULL); ////重叠操作结构指针。同步设为NULL,DeviceIoControl将进行阻塞调用;否则,应在编程时按异步操作设计
TRACE(“yjx:IsOK=%lx -------“ IsOK);

if (IsOK==0) //IO通信出错
{
//int LastError = GetLastError();

//if (LastError == ERROR_NO_SYSTEM_RESOURCES)
//{
// char BufferData[MAX_PATH] = { 0 };
// IsOK = DeviceIoControl(
// DeviceHandle 
// nTypeCode
// “Ring3->Ring0“
// strlen(“Ring3->Ring0“) + 1
// (LPVOID)BufferData
// MAX_PATH//输出缓冲区的大小
// &ReturnLength
// NULL);

// if (LastError == 0)
// {
// TRACE(“yjx:%s\r\n“ BufferData);
// }
//}
}

if (DeviceHandle != NULL)
{
CloseHandle(DeviceHandle);
DeviceHandle = NULL;
}

TRACE(“yjx:test OK retBuf=%s -------111\r\n“ “test“);
TRACE(“yjx:test OK retBuf=%s -------222\r\n“ BufferDataOut);

//getchar();
return 0;
}


//添加要保护的进程
ULONG64 AddPidToProtectList(DWORD PID)// CTLCODE)
{
UINT nTypeCode = addpid_code;//添加保护进程的PID
HANDLE DeviceHandle = CreateFile(
DEVICE_link_NAME //
GENERIC_READ | GENERIC_WRITE
FILE_SHARE_READ | FILE_SHARE_WRITE
NULL
OPEN_EXISTING
FILE_ATTRIBUTE_NORMAL
NULL);

if (DeviceHandle == INVALID_HANDLE_VALUE)
{
TRACE(“yjx:打开设备驱动 失败 Error 1132323  AddPidToProtectList\n“);
return 0;
}
DWORD BufferInD

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-05-18 01:36  ProtectProcess\
     文件       17816  2018-05-18 00:17  ProtectProcess\DriverEntry.c
     文件        3771  2018-05-17 00:59  ProtectProcess\IRP_MJ_DEVICE_CONGROL.c
     文件        1042  2018-05-17 23:10  ProtectProcess\MRWAPI.c
     文件         275  2018-05-17 23:10  ProtectProcess\MRWAPI.h
     文件        8302  2018-05-18 00:06  ProtectProcess\ObRegisterCallbacks回调保护进程资料.txt
     文件        3993  2018-05-17 23:14  ProtectProcess\ProcessProtect.c
     文件         323  2018-05-17 01:08  ProtectProcess\ProcessProtect.h
     文件        5201  2018-05-16 22:59  ProtectProcess\ProcessStruct.h
     文件         188  2018-05-16 23:12  ProtectProcess\ProcessTtruct.c
     文件        2542  2018-05-16 11:27  ProtectProcess\ProtectProcess.inf
     文件        9194  2018-05-18 01:17  ProtectProcess\ProtectProcess.vcxproj
     文件        3552  2018-05-17 23:36  ProtectProcess\ProtectProcess.vcxproj.filters
     文件        1166  2018-05-18 01:09  ProtectProcess\ProtectProcess.vcxproj.user
     文件        9832  2018-05-18 01:32  ProtectProcess\ProtectProcess_CallBack.c
     文件        1223  2018-05-18 00:11  ProtectProcess\ProtectProcess_CallBack.h
     文件        3443  2018-05-16 12:54  ProtectProcess\mdlhook.c
     文件       80315  2018-05-16 12:04  ProtectProcess\x64asm.c
     文件         169  2018-05-16 22:10  ProtectProcess\x64asm.h
     文件        5920  2018-05-18 00:26  ProtectProcess.sln
     目录           0  2018-05-18 01:36  ProtectProcess_CallBack\
     文件        6808  2018-05-18 01:15  ProtectProcess_CallBack\DriverEntry.c
     文件        2821  2018-05-18 00:24  ProtectProcess_CallBack\ProtectProcess_CallBack.inf
     文件        7926  2018-05-18 00:26  ProtectProcess_CallBack\ProtectProcess_CallBack.vcxproj
     文件        1268  2018-05-18 00:26  ProtectProcess_CallBack\ProtectProcess_CallBack.vcxproj.filters
     文件         271  2018-05-18 00:26  ProtectProcess_CallBack\ProtectProcess_CallBack.vcxproj.user
     目录           0  2018-05-18 01:36  mfc_load_driver\
     文件          14  2018-05-15 07:16  mfc_load_driver\ASMX64.h
     文件        7133  2018-05-17 00:43  mfc_load_driver\DEVICE_IO_CONTROL.cpp
     文件        1428  2018-05-16 23:54  mfc_load_driver\DEVICE_IO_CONTROL.h
     文件         624  2018-05-17 01:17  mfc_load_driver\MRWAPI.cpp
............此处省略32个文件信息

评论

共有 条评论