内核隐藏进程

本文介绍了一种在Windows 7环境下,使用VS2012和WDK8.0开发的隐藏驱动程序,实现内核级别的进程隐藏技术。该方法不适用于其他操作系统。
摘要由CSDN通过智能技术生成

内核隐藏进程

写了个WIN7隐藏驱动程序,不多说什么,贴代码,主要包括驱动程序和应用程序。
开发环境:win7+VS2012+WDK8.0
其他操作系统不支持
详情请看附件,大牛勿喷……
/

/驱动程序:`在这里插入代码片`
//*********************************
//fsjaky
//blog:http://blog.csdn.net/fsjaky
//*********************************
#include <ntddk.h>

typedef BOOLEAN BOOL;
typedef unsigned long DWORD;
typedef DWORD * PDWORD;

#define IOCTL_HIDE_PROCESS CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED, FILE_WRITE_ACCESS)

//偏移量
//win7
#define PIDOFFSET 0Xb4      //EPROCESS中UniqueProcessId偏移
#define FLINKOFFSET 0xb8    //EPROCESS中ActiveProcessLinks偏移
#define ObjectTable 0xf4    //EPROCESS中ObjectTable偏移

#define TableList 0x10      //ObjectTable中HandleTableList偏移
#define PIDOFFSET2 0x008    //ObjectTable中UniqueProcessId偏移
#define QuotaProcess 0x004  //ObjectTable中QuotaProcess偏移

PDEVICE_OBJECT g_Device = NULL; 
const WCHAR LinkName[]  = L"\\DosDevices\\MyHideProcess";
const WCHAR DriverName[]  = L"\\Device\\MyHideProcess";
#define   DebugPrint                DbgPrint   

DWORD g_Eprocess = 0x00000000;  //
PLIST_ENTRY g_HandleList = NULL;
DWORD FindProcessInEPROCESS (int Hide_PID);
VOID FindProcessInHandleTable (DWORD eproc,int Hide_PID);

NTSTATUS MyDispatch(IN PDEVICE_OBJECT, IN PIRP);
NTSTATUS MyUnload(IN PDRIVER_OBJECT);

NTSTATUS DriverEntry(
                                   IN PDRIVER_OBJECT  DriverObject,
                                   IN PUNICODE_STRING RegistryPath
                                        )
{
   
        
    NTSTATUS                ntStatus;
    UNICODE_STRING          DriverNameUnicodeString;
    UNICODE_STRING          DriverLinkUnicodeString; 
        DbgPrint ("DriverEntry\n");
    RtlInitUnicodeString (&DriverNameUnicodeString, DriverName );
    RtlInitUnicodeString (&DriverLinkUnicodeString, LinkName );

        //创建设备
    ntStatus = IoCreateDevice ( DriverObject, 0, // For driver extension
                                &DriverNameUnicodeString, FILE_DEVICE_UNKNOWN,
                                0,TRUE, &g_Device );
         if( !NT_SUCCESS(ntStatus))
        {
   
                DebugPrint(("Failed to CreateDevice!\n"));
                 return ntStatus;
        }
         //创建符号链接
         ntStatus = IoCreateSymbolicLink (&DriverLinkUnicodeString, &DriverNameUnicodeString );
    if( !NT_SUCCESS(ntStatus))
        {
   
        DebugPrint
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值