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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? kbdspy.bat

?? KmdKit 匯編下開發(fā)驅(qū)動的工具 由俄羅斯某強男開發(fā)
?? BAT
?? 第 1 頁 / 共 2 頁
字號:
;@echo off
;goto make

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;
;  Client of KbdSpy.sys driver
;
;  Written by Four-F (four-f@mail.ru)
;
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

.386
.model flat, stdcall
option casemap:none

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                  I N C L U D E   F I L E S                                        
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

include \masm32\include\windows.inc

include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\comctl32.inc
include \masm32\include\advapi32.inc

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\comctl32.lib
includelib \masm32\lib\advapi32.lib

include \masm32\include\winioctl.inc

include cocomac\cocomac.mac
include cocomac\ListView.mac
include \masm32\Macros\Strings.mac

include ..\common.inc

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                     S T R U C T U R E S                                           
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

; Because of improper definition in windows.inc

_LARGE_INTEGER UNION
	struct
		LowPart		DWORD ?
		HighPart	SDWORD ?
	ends
	struct u
		LowPart		DWORD ?
		HighPart	SDWORD ?
	ends
	QuadPart		QWORD ?	; signed
_LARGE_INTEGER ENDS

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                      E Q U A T E S                                                
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

IDD_MAIN			equ	1000
IDC_LISTVIEW		equ 1001
IDI_ICON			equ 1002
IDM_ABOUT			equ 2000
IDM_STAY_ON_TOP		equ 2001
IDM_CLEAR			equ 2002

MAX_ITEMS			equ 1000

; ntddkbd.inc defines the keyboard input data Flags.

KEY_MAKE			equ 0
KEY_BREAK			equ 1
KEY_E0				equ 2
KEY_E1				equ 4

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                              U N I N I T I A L I Z E D  D A T A                                   
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

.data?
g_hDevice			HANDLE		?
g_hEvent			HANDLE		?
g_hInstance			HINSTANCE	?
g_hwndDlg			HWND		?
g_hwndListView		HWND		?
g_fExitNow			BOOL		?
g_fAlwaysOnTop		BOOL		?
g_dwDlgWidth		DWORD		?
g_hPopupMenu		HMENU		?

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                         C O D E                                                   
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

.code

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                            malloc                                                 
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

malloc proc dwBytes:DWORD

option PROLOGUE:NONE
option EPILOGUE:NONE

	invoke GetProcessHeap
	invoke HeapAlloc, eax, HEAP_ZERO_MEMORY, [esp+4]
	ret 4

option PROLOGUE:PROLOGUEDEF
option EPILOGUE:EPILOGUEDEF

malloc endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                             free                                                  
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

free proc lpMem:PVOID

option PROLOGUE:NONE
option EPILOGUE:NONE

	invoke GetProcessHeap
	invoke HeapFree, eax, 0, [esp+4]
	ret 4

option PROLOGUE:PROLOGUEDEF
option EPILOGUE:EPILOGUEDEF

free endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                    UnregisterDriver                                               
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

UnregisterDriver proc

local hSCManager:HANDLE

	invoke OpenSCManager, NULL, NULL, SC_MANAGER_ALL_ACCESS
	.if eax != NULL

		mov hSCManager, eax
		
		; Unregister driver - remove registry directory
	
		invoke OpenService, hSCManager, $CTA0("KbdSpy"), DELETE
		.if eax != NULL

			push eax
			invoke DeleteService, eax
			call CloseServiceHandle

		.endif

		invoke CloseServiceHandle, hSCManager

	.endif

	ret

UnregisterDriver endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                                                                                   
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

RegisterAndStartDriver proc

local hSCManager:HANDLE
local hService:HANDLE
local hDevice:HANDLE
local acModulePath[MAX_PATH]:CHAR

	mov hDevice, INVALID_HANDLE_VALUE

	invoke OpenSCManager, NULL, NULL, SC_MANAGER_ALL_ACCESS
	.if eax != NULL

		mov hSCManager, eax

		push eax
		invoke GetFullPathName, $CTA0("KbdSpy.sys"), sizeof acModulePath, addr acModulePath, esp
    	pop eax
  
		invoke CreateService, hSCManager, $CTA0("KbdSpy"), $CTA0("Keyboard Spy"), \
			SERVICE_START, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, \
			SERVICE_ERROR_IGNORE, addr acModulePath, NULL, NULL, NULL, NULL, NULL
		.if eax != NULL

			mov hService, eax

			invoke StartService, hService, 0, NULL
			.if eax != 0

				invoke CreateFile, $CTA0("\\\\.\\KbdSpy"), GENERIC_READ + GENERIC_WRITE, \
								0, NULL, OPEN_EXISTING, 0, NULL
				.if eax != INVALID_HANDLE_VALUE
					mov hDevice, eax
				.endif

			.endif

			invoke CloseServiceHandle, hService

		.endif

		invoke CloseServiceHandle, hSCManager

	.endif
invoke GetLastError
	mov eax, hDevice
	ret

RegisterAndStartDriver endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                                                                                   
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

StopDriver proc

local hSCManager:HANDLE
local hService:HANDLE
local _ss:SERVICE_STATUS
local fOK:BOOL

	and fOK, FALSE

	invoke OpenSCManager, NULL, NULL, SC_MANAGER_ALL_ACCESS
	.if eax != NULL

		mov hSCManager, eax

		invoke OpenService, hSCManager, $CTA0("KbdSpy"), SERVICE_STOP + DELETE

		.if eax != NULL

			mov hService, eax

			invoke ControlService, hService, SERVICE_CONTROL_STOP, addr _ss
			.if eax != 0

				invoke GetLastError
				.if eax == ERROR_SUCCESS  ||  eax == ERROR_IO_PENDING
					mov fOK, TRUE
				.endif
				
			.endif

 			invoke DeleteService, hService
			invoke CloseServiceHandle, hService

		.endif

		invoke CloseServiceHandle, hSCManager

	.endif

	mov eax, fOK
	ret

StopDriver endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                             MyUnhandledExceptionFilter                                            
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

MyUnhandledExceptionFilter proc lpExceptionInfo:PTR EXCEPTION_POINTERS

; Just cleanup every possible thing

local dwBytesReturned:DWORD
local _ss:SERVICE_STATUS

	; If something went wrong let the driver know it should undo the things.

	invoke DeviceIoControl, g_hDevice, IOCTL_KEYBOARD_DETACH, NULL, 0, NULL, 0, \
								addr dwBytesReturned, NULL

	mov g_fExitNow, TRUE		; Loop thread should exit now.
	invoke SetEvent, g_hEvent
					
	invoke CloseHandle, g_hEvent
	invoke CloseHandle, g_hDevice

	invoke StopDriver

	mov eax, EXCEPTION_EXECUTE_HANDLER
	ret

MyUnhandledExceptionFilter endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                     ListViewInsertColumn                                          
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

ListViewInsertColumn proc

local lvc:LV_COLUMN

	mov lvc.imask, LVCF_TEXT + LVCF_WIDTH
	mov lvc.pszText, $CTA0("Key")
	mov lvc.lx, 76
	invoke SendMessage, g_hwndListView, LVM_INSERTCOLUMN, 0, addr lvc

	mov lvc.pszText, $CTA0("Code")
	mov lvc.lx, 40
	invoke SendMessage, g_hwndListView, LVM_INSERTCOLUMN, 1, addr lvc

	mov lvc.pszText, $CTA0("Type")
	mov lvc.lx, 50
	invoke SendMessage, g_hwndListView, LVM_INSERTCOLUMN, 2, addr lvc

	or lvc.imask, LVCF_FMT
	mov lvc.fmt, LVCFMT_CENTER	
	mov lvc.pszText, $CTA0("E0")
	mov lvc.lx, 30
	invoke SendMessage, g_hwndListView, LVM_INSERTCOLUMN, 3, addr lvc
	
	mov lvc.pszText, $CTA0("E1")
	invoke SendMessage, g_hwndListView, LVM_INSERTCOLUMN, 4, addr lvc

	ret

ListViewInsertColumn endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                          FillKeyInfo                                              
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

FillKeyInfo proc uses esi ebx paKeyData:PTR KEY_DATA, cb:UINT

local lvi:LV_ITEM
local buffer[32]:CHAR

	ListView_GetItemCount g_hwndListView

	.if eax > MAX_ITEMS

		mov ebx, eax
		sub ebx, MAX_ITEMS

		invoke SendMessage, g_hwndListView, WM_SETREDRAW  , FALSE, 0
		
		.while ebx

			; Delete oldest item
			ListView_DeleteItem g_hwndListView, 0
			
			dec ebx

		.endw

		invoke SendMessage, g_hwndListView, WM_SETREDRAW  , TRUE, 0

	.endif

	mov esi, paKeyData
	assume esi:ptr KEY_DATA

	mov eax, cb
	mov ecx, sizeof KEY_DATA
	xor edx, edx
	div ecx
	mov ebx, eax

	mov lvi.imask, LVIF_TEXT

	ListView_GetItemCount g_hwndListView
	mov lvi.iItem, eax

	.while ebx

		mov edx, [esi].dwScanCode
		shl edx, 16

		mov eax, [esi].Flags
		and eax, KEY_E0
		.if eax != 0
			or edx, 1 SHL 24
		.endif

		invoke GetKeyNameText, edx, addr buffer, sizeof buffer
		
		; KeyName
		
		and lvi.iSubItem, 0
		lea ecx, buffer
		mov lvi.pszText, ecx
		ListView_InsertItem g_hwndListView, addr lvi

		; Scan Code

		inc lvi.iSubItem
		invoke wsprintf, addr buffer, $CTA0("%04X"), [esi].dwScanCode
		ListView_SetItem g_hwndListView, addr lvi

		; Type

		inc lvi.iSubItem
		mov eax, [esi].Flags
		and eax, (KEY_MAKE + KEY_BREAK)	; I know it's the same as anding with KEY_BREAK
		.if eax == KEY_MAKE
			mov lvi.pszText, $CTA0("make")
		.else
			mov lvi.pszText, $CTA0("break")		

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线免费不卡视频| 国产美女精品人人做人人爽| www.av亚洲| 国产精品国产三级国产有无不卡| 国精品**一区二区三区在线蜜桃| ww久久中文字幕| 国产精品白丝av| 中文字幕综合网| 欧美日韩一区二区在线观看| 蜜桃av噜噜一区| 久久久99久久| 欧美在线看片a免费观看| 亚洲v中文字幕| 欧美精品一区二区久久久| 国产黄色精品视频| 一区二区三区四区亚洲| 91精品国产免费| 国产高清亚洲一区| 亚洲午夜久久久久| 欧美精品一区二区三| 91视频观看视频| 免费观看日韩电影| 国产精品国产三级国产| 欧美日韩一区三区| 国产iv一区二区三区| 亚洲图片欧美色图| 久久午夜老司机| 91官网在线免费观看| 国产真实乱对白精彩久久| 亚洲欧美精品午睡沙发| 91精品欧美一区二区三区综合在| 国产精品一级在线| 亚洲国产美女搞黄色| 久久久影院官网| 欧洲在线/亚洲| 国产一区二区三区久久悠悠色av| 亚洲精品国产无天堂网2021| 精品欧美一区二区在线观看| 91在线码无精品| 免费的成人av| 亚洲电影一级黄| 国产精品色眯眯| 精品国产欧美一区二区| 色天天综合久久久久综合片| 国产一区91精品张津瑜| 亚洲另类在线一区| 国产亚洲综合性久久久影院| 欧美高清激情brazzers| 成人黄页在线观看| 久久精品国产亚洲aⅴ| 亚洲欧美日韩电影| 国产精品色呦呦| 久久网站最新地址| 欧美一卡二卡在线观看| 色噜噜夜夜夜综合网| 成人丝袜视频网| 国产精品一区二区三区乱码| 日韩在线卡一卡二| 一区二区三区成人| 国产精品黄色在线观看| 久久精品免视看| 26uuu另类欧美| 欧美一区二区观看视频| 欧美日本国产视频| 91官网在线观看| 日本乱人伦aⅴ精品| 成人丝袜18视频在线观看| 国产精品18久久久| 国产麻豆欧美日韩一区| 免费高清在线一区| 日韩国产精品91| 丝袜国产日韩另类美女| 亚洲成国产人片在线观看| 亚洲线精品一区二区三区八戒| ㊣最新国产の精品bt伙计久久| 国产女同性恋一区二区| 国产日韩欧美a| 国产精品萝li| 国产精品丝袜黑色高跟| 国产精品久久久久久久浪潮网站| 国产区在线观看成人精品| 国产亚洲欧美激情| 国产调教视频一区| 国产精品九色蝌蚪自拍| 日韩久久一区二区| 一区二区三区日韩| 亚洲大片在线观看| 免费欧美高清视频| 国产乱码精品一区二区三区av | 国产精品电影一区二区三区| 国产精品国产三级国产| 一区二区三区四区激情| 亚洲国产欧美在线人成| 日本免费在线视频不卡一不卡二| 日本伊人午夜精品| 精品综合久久久久久8888| 国产激情精品久久久第一区二区| 成人app在线| 欧美视频在线一区| 欧美一区二区三区视频在线观看| 欧美tickle裸体挠脚心vk| 久久综合色一综合色88| 一区在线观看视频| 五月天亚洲精品| 国产剧情在线观看一区二区 | 国产精品一级在线| 97国产精品videossex| 欧美色爱综合网| 日韩亚洲欧美综合| 国产精品国产自产拍在线| 亚洲已满18点击进入久久| 全国精品久久少妇| 丁香一区二区三区| 欧美伊人精品成人久久综合97| 日韩一区二区三区电影 | 亚洲欧美欧美一区二区三区| 日韩精品视频网站| 成人综合激情网| 欧美人与z0zoxxxx视频| 国产精品麻豆欧美日韩ww| 无码av免费一区二区三区试看| 国产激情一区二区三区四区| 欧美在线一二三四区| 国产日韩精品一区二区三区| 亚洲一区二区三区四区在线免费观看| 精品一区二区在线播放| 在线观看免费视频综合| 久久青草国产手机看片福利盒子 | 精品亚洲成a人| 97久久精品人人做人人爽50路| 6080午夜不卡| 国产精品对白交换视频| 国产综合色产在线精品| 欧美视频你懂的| 18欧美亚洲精品| 国产精品123区| 日韩一级在线观看| 亚洲一区二区三区视频在线 | 久久久久99精品国产片| 亚洲老妇xxxxxx| 成人综合在线视频| 精品国产亚洲在线| 日韩av午夜在线观看| 91色九色蝌蚪| 欧美激情综合在线| 精品一区二区在线免费观看| 欧美日韩视频在线一区二区| 中文字幕第一区综合| 国产乱子轮精品视频| 制服丝袜亚洲色图| 亚洲午夜精品网| 欧美在线一区二区三区| 亚洲欧美电影院| 97超碰欧美中文字幕| 国产精品久久久久久亚洲伦| 国产·精品毛片| 日本一区二区三区在线观看| 国产在线精品一区二区夜色| 日韩一二三四区| 久久国产人妖系列| 欧美不卡一区二区三区| 麻豆精品一区二区三区| 日韩欧美资源站| 久久er99精品| 久久婷婷国产综合精品青草| 美腿丝袜在线亚洲一区| 欧美一区二区三区在| 美女一区二区在线观看| 欧美一区二区三区小说| 美女视频一区二区三区| 日韩亚洲欧美一区二区三区| 蜜臀av亚洲一区中文字幕| 欧美丰满美乳xxx高潮www| 日韩电影免费一区| 欧美r级在线观看| 久久综合综合久久综合| 久久久久久久一区| 不卡的电影网站| 一区二区在线观看不卡| 精品视频1区2区| 日本欧美久久久久免费播放网| 7777精品久久久大香线蕉| 日韩电影在线免费观看| 日韩久久久精品| 国产精品亚洲午夜一区二区三区 | 亚洲人精品一区| 欧美在线视频全部完| 日本不卡一区二区三区高清视频| 日韩一级在线观看| 粉嫩av一区二区三区在线播放| 中文字幕中文在线不卡住| 在线观看成人免费视频| 日韩精品午夜视频| 国产日韩欧美麻豆| 亚洲男人电影天堂| 成人av在线播放网站| 亚洲精品成人在线| 日韩一级视频免费观看在线| 成人av在线一区二区三区| 亚洲成人av在线电影|