#include <ntifs.h>
VOID EnumProcess();
void KerrnelKillProcess();
ULONG KernelGetVersion();
void Test_GetCurrentTime();
NTSTATUS NTAPI ZwOpenThread(
OUT PHANDLE ThreadHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN PCLIENT_ID ClientId OPTIONAL
); //extern "C"
void EnumThread(PEPROCESS pEProcess);
void DriverUnload(PDRIVER_OBJECT objDriver)
{
UNREFERENCED_PARAMETER(objDriver);
// 打印一行字符串
DbgPrint("CHERRY First Drive is unloading^^^^^");
//KerrnelKillProcess();
}
// 驱动入口函数,相当于main()函数
NTSTATUS DriverEntry(PDRIVER_OBJECT objDriver, PUNICODE_STRING strRegPath)
{
UNREFERENCED_PARAMETER(strRegPath);
// 如果编译方式为Debug,则插入一个int3断点部分,方便调试
#ifdef DBG
__debugbreak();
#endif
// 打印一行字符串,并注册驱动卸载函数,便于卸载驱动
DbgPrint("CHERRY First Driver! \n");
//EnumProcess();
//DbgPrint("Version:%d\n", KernelGetVersion());
//Test_GetCurrentTime();
objDriver->DriverUnload = DriverUnload;
return STATUS_SUCCESS;
}
//结束进程
void KerrnelKillProcess()
{
HANDLE hProcess = NULL;
CLIENT_ID ClientId = {
0 };
OBJECT_ATTRIBUTES objAttribut = {
sizeof(OBJECT_ATTRIBUTES) };
ClientId.UniqueProcess = (HANDLE)2944; //pid
ClientId.UniqueThread = 0;