驱动签名 隐藏进程 保护进程 多种方式 保护进程的 驱动


多种方法 保护进程 断链 修改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
“);
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
“ BufferData);
// }
//}
}

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

TRACE(“yjx:test OK retBuf=%s -------111
“ “test“);
TRACE(“yjx:test OK retBuf=%s -------222
“ 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
“);
return 0;
}
DWORD BufferInD

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-05-18 01:36  ProtectProcess
     文件       17816  2018-05-18 00:17  ProtectProcessDriverEntry.c
     文件        3771  2018-05-17 00:59  ProtectProcessIRP_MJ_DEVICE_CONGROL.c
     文件        1042  2018-05-17 23:10  ProtectProcessMRWAPI.c
     文件         275  2018-05-17 23:10  ProtectProcessMRWAPI.h
     文件        8302  2018-05-18 00:06  ProtectProcessObRegisterCallbacks回调保护进程资料.txt
     文件        3993  2018-05-17 23:14  ProtectProcessProcessProtect.c
     文件         323  2018-05-17 01:08  ProtectProcessProcessProtect.h
     文件        5201  2018-05-16 22:59  ProtectProcessProcessStruct.h
     文件         188  2018-05-16 23:12  ProtectProcessProcessTtruct.c
     文件        2542  2018-05-16 11:27  ProtectProcessProtectProcess.inf
     文件        9194  2018-05-18 01:17  ProtectProcessProtectProcess.vcxproj
     文件        3552  2018-05-17 23:36  ProtectProcessProtectProcess.vcxproj.filters
     文件        1166  2018-05-18 01:09  ProtectProcessProtectProcess.vcxproj.user
     文件        9832  2018-05-18 01:32  ProtectProcessProtectProcess_CallBack.c
     文件        1223  2018-05-18 00:11  ProtectProcessProtectProcess_CallBack.h
     文件        3443  2018-05-16 12:54  ProtectProcessmdlhook.c
     文件       80315  2018-05-16 12:04  ProtectProcessx64asm.c
     文件         169  2018-05-16 22:10  ProtectProcessx64asm.h
     文件        5920  2018-05-18 00:26  ProtectProcess.sln
     目录           0  2018-05-18 01:36  ProtectProcess_CallBack
     文件        6808  2018-05-18 01:15  ProtectProcess_CallBackDriverEntry.c
     文件        2821  2018-05-18 00:24  ProtectProcess_CallBackProtectProcess_CallBack.inf
     文件        7926  2018-05-18 00:26  ProtectProcess_CallBackProtectProcess_CallBack.vcxproj
     文件        1268  2018-05-18 00:26  ProtectProcess_CallBackProtectProcess_CallBack.vcxproj.filters
     文件         271  2018-05-18 00:26  ProtectProcess_CallBackProtectProcess_CallBack.vcxproj.user
     目录           0  2018-05-18 01:36  mfc_load_driver
     文件          14  2018-05-15 07:16  mfc_load_driverASMX64.h
     文件        7133  2018-05-17 00:43  mfc_load_driverDEVICE_IO_CONTROL.cpp
     文件        1428  2018-05-16 23:54  mfc_load_driverDEVICE_IO_CONTROL.h
     文件         624  2018-05-17 01:17  mfc_load_driverMRWAPI.cpp
............此处省略32个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)