hack.h:

#pragma once

#include <ntifs.h>

NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject, PUNICODE_STRING pRrgister);

NTSTATUS UnloadDriver(PDRIVER_OBJECT pDriverObject);

messages.h:

#pragma once

#define DeBugMessage(x, ...) DbgPrintEx(0,0,x,__VA_ARGS__)

hack.c:

#pragma warning (disable : 4100)

#include "hack.h"
#include "messages.h"


NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject, PUNICODE_STRING pRrgister)
{
	pDriverObject->DriverUnload = UnloadDriver;

	DeBugMessage("my first  driver.");

	return STATUS_SUCCESS;
}

NTSTATUS UnloadDriver(PDRIVER_OBJECT pDriverObject)
{
	DeBugMessage("unload driver");
	return STATUS_SUCCESS;
}
/INTEGRITYCHECK
C:\WINDOWS\system32>sc create hackdriver type=kernel binpath="C:\Users\ajanuw\Desktop\hack\hackdriver\x64\Release\hackdriver.sys"
[SC] CreateService 成功

// 执行前,需要将系统改为测试模式
// 执行后重启电脑,将会在屏幕右下角看到进入测试模式
C:\WINDOWS\system32>bcdedit /set testsigning on
操作成功完成。

// 打开 DebugView
// 打开 capture->capture kernel选项
// 执行下面的命令将会看到"my first  driver."信息
C:\WINDOWS\system32>sc start hackdriver

// 会看到"unload driver"信息
C:\WINDOWS\system32>sc stop hackdriver

// 查看服务状态
C:\WINDOWS\system32>sc query hackdriver

// (从注册表中)删除服务
// 删除注册表regedit:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services
C:\WINDOWS\system32>sc delete hackdriver