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

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

?? kmdmanager.asm

?? KmdKit 匯編下開發驅動的工具 由俄羅斯某強男開發
?? ASM
?? 第 1 頁 / 共 2 頁
字號:

; KmdManager - utility for simplify kmd un/loading and sending control codes
; 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\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\advapi32.inc
include \masm32\include\comdlg32.inc
include \masm32\include\shell32.inc

includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\advapi32.lib
includelib \masm32\lib\comdlg32.lib
includelib \masm32\lib\shell32.lib

include Macros.mac
include \masm32\Macros\Strings.mac
include \masm32\cocomac\cocomac.mac
include \masm32\cocomac\ListView.mac
include \masm32\cocomac\Header.mac
include htodw.asm
include memory.asm
include string.asm
include MaskedEdit.asm
include theme.asm

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                         F U N C T I O N S   P R O T O T Y P E S                                   
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

DlgProc proto :HWND, :UINT, :WPARAM, :LPARAM

IDD_DIALOG				equ		1000
IDB_BROWSE				equ		1001
IDB_REGISTER			equ		1002
IDB_RUN					equ		1003
IDB_IOCONTROL			equ		1004
IDB_UNREGISTER			equ		1005
IDB_STOP				equ		1006

IDB_OPTIONS				equ		1007
IDB_ABOUT				equ		1008
IDB_EXIT				equ		1009

IDCHK_REGTORUNLINK		equ		1010
IDCHK_UNREGTOSTOPLINK	equ		1011
IDCHK_IOCONTROLLINK		equ		1012

IDE_PATH				equ		1020
IDE_CONTROL_CODE		equ		1021

IDC_REPORT_LIST			equ		1030

IDI_ICON				equ		2000

IDM_CLEAR_LOG			equ		5000

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                      U S E R   D E F I N E D   S T R U C T U R E S                                
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                     C O N S T A N T S                                             
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

.const
g_szFilterString		db "Kernel-Mode Drivers", 0, "*.sys", 0
						db "All Files", 0, "*.*", 0, 0

g_szOpenDriverTitle		db "Choose Driver", 0

g_szSuccess				db "Success", 0
g_szFail				db "Fail", 0
g_szCriticalError		db "Critical Error", 0
g_szOpenSCManagerError	db "Can't get Service Control Manager handle.", 0
g_szEnterFullDriverPath	db "Enter full driver path.", 0

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

.data

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

.data?
g_hInstance				HINSTANCE	?
;g_pfnPrevStaticProc		LPVOID		?
g_hwndEditDriverPath	HWND		?
g_hwndEditControlCode	HWND		?
g_hwndReportListView	HWND		?

g_hwndButtonRegister	HWND		?
g_hwndButtonRun			HWND		?
g_hwndButtonControl		HWND		?
g_hwndButtonStop		HWND		?
g_hwndButtonUnregister	HWND		?
g_hListViewPopupMenu	HMENU		?
g_hwndCheckRegToRun		HWND		?
g_hwndCheckUnregToStop	HWND		?
g_hwndCheckLinkAll		HWND		?

g_pfnListViewProcPrev	LPVOID		?

g_acErrorDescription	CHAR	256	dup(?)


g_dwDlgMinHeight		DWORD		?
g_dwDlgMaxHeight		DWORD		?

g_dwDlgWidth			DWORD		?

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

.code

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                        LastError                                                  
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

LastError proc; pacBuffer:LPVOID

    pushfd
    pushad
    
    invoke GetLastError
    push eax

	invoke RtlZeroMemory, offset g_acErrorDescription, sizeof g_acErrorDescription
	pop eax
    mov ecx, SUBLANG_DEFAULT
    shl ecx, 10
    add ecx, LANG_NEUTRAL               ; MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT) User default language
    
    invoke FormatMessage, FORMAT_MESSAGE_FROM_SYSTEM + FORMAT_MESSAGE_MAX_WIDTH_MASK, NULL, \
    						eax, ecx, offset g_acErrorDescription, 128, NULL

    .if eax == 0
		invoke lstrcpy, offset g_acErrorDescription, $CTA0("Error number not found.")
    .endif

    popad
    popfd
    
    ret

LastError endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                      ReportStatus                                                 
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

ReportStatus proc uses esi pszDriverName:LPSTR, pszOperation:LPSTR, pszStatus:LPSTR, pszLastError:LPSTR

LOCAL lvi:LV_ITEM

	mov lvi.imask, LVIF_TEXT 
	m2m lvi.pszText,pszDriverName
	and lvi.iSubItem, 0
	ListView_GetItemCount g_hwndReportListView
	mov esi, eax
	mov lvi.iItem, eax

	ListView_InsertItem g_hwndReportListView, addr lvi	

	ListView_SetItemText g_hwndReportListView, esi, 1, pszOperation
	ListView_SetItemText g_hwndReportListView, esi, 2, pszStatus
	ListView_SetItemText g_hwndReportListView, esi, 3, pszLastError

	; Make it fully visible
	ListView_EnsureVisible g_hwndReportListView, esi, FALSE

	ret

ReportStatus endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                     RegisterDriver                                                
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

RegisterDriver proc uses esi edi ebx pszDriverName:LPSTR, pszDriverPath:LPSTR

	xor ebx, ebx		; assume error
	mov edi, offset g_szFail

	invoke OpenSCManager, NULL, NULL, SC_MANAGER_CREATE_SERVICE
	.if eax != NULL
		mov esi, eax

		; Register driver - fill registry directory
		invoke CreateService, esi, pszDriverName, pszDriverName, \
					0, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, SERVICE_ERROR_IGNORE, \
					pszDriverPath, NULL, NULL, NULL, NULL, NULL

		invoke LastError

		.if eax != NULL
			invoke CloseServiceHandle, eax
			inc ebx					; success
			mov edi, offset g_szSuccess
		.endif
		invoke CloseServiceHandle, esi
	.else
		invoke MessageBox, NULL, addr g_szOpenSCManagerError, addr g_szCriticalError, MB_OK + MB_ICONSTOP
	.endif

	invoke ReportStatus, pszDriverName, $CTA0("Register"), edi, offset g_acErrorDescription

	return ebx

RegisterDriver endp

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

UnregisterDriver proc uses esi edi ebx pszDriverName:LPSTR

	xor ebx, ebx		; assume error
	mov edi, offset g_szFail

	invoke OpenSCManager, NULL, NULL, SC_MANAGER_CONNECT
	.if eax != NULL
		mov esi, eax
		
		; Unregister driver - remove registry directory
		invoke OpenService, esi, pszDriverName, DELETE

		invoke LastError

		.if eax != NULL
			push eax
			invoke DeleteService, eax

			invoke LastError

			.if eax != 0
				inc ebx					; success
				mov edi, offset g_szSuccess
			.endif
			call CloseServiceHandle
		.endif

		invoke CloseServiceHandle, esi
	.else
		invoke MessageBox, NULL, addr g_szOpenSCManagerError, addr g_szCriticalError, MB_OK + MB_ICONSTOP
	.endif

	invoke ReportStatus, pszDriverName, $CTA0("Unregister"), edi, offset g_acErrorDescription

	return ebx

UnregisterDriver endp


;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                       RunDriver                                                   
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

RunDriver proc uses esi edi ebx pszDriverName:LPSTR

	xor ebx, ebx		; assume error
	mov edi, offset g_szFail

	invoke OpenSCManager, NULL, NULL, SC_MANAGER_CONNECT
	.if eax != NULL
		mov esi, eax
		
		; Unregister driver - remove registry directory
		invoke OpenService, esi, pszDriverName, SERVICE_START

		invoke LastError

		.if eax != NULL
			push eax
			invoke StartService, eax, 0, NULL
			
			invoke LastError
			
			.if eax != 0
				inc ebx					; success
				mov edi, offset g_szSuccess
			.endif

			call CloseServiceHandle
			mov edi, offset g_szSuccess
		.endif
		invoke CloseServiceHandle, esi
	.else
		invoke MessageBox, NULL, addr g_szOpenSCManagerError, addr g_szCriticalError, MB_OK + MB_ICONSTOP
	.endif

	invoke ReportStatus, pszDriverName, $CTA0("Start"), edi, offset g_acErrorDescription

	return ebx

RunDriver endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                       StopDriver                                                  
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

StopDriver proc uses esi ebx pszDriverName:LPSTR

LOCAL sest:SERVICE_STATUS

	xor ebx, ebx		; assume error
	mov edi, offset g_szFail

	invoke OpenSCManager, NULL, NULL, SC_MANAGER_CONNECT
	.if eax != NULL
		mov esi, eax
		
		; Unregister driver - remove registry directory
		invoke OpenService, esi, pszDriverName, SERVICE_STOP

		invoke LastError

		.if eax != NULL
			push eax
			mov ecx, eax
			invoke ControlService, ecx, SERVICE_CONTROL_STOP, addr sest
			
			invoke LastError

			.if eax != 0
				inc ebx					; success
				mov edi, offset g_szSuccess
			.endif
			call CloseServiceHandle
		.endif

		invoke CloseServiceHandle, esi
	.else
		invoke MessageBox, NULL, addr g_szOpenSCManagerError, addr g_szCriticalError, MB_OK + MB_ICONSTOP
	.endif

	invoke ReportStatus, pszDriverName, $CTA0("Stop"), edi, offset g_acErrorDescription

	return ebx

StopDriver endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                      ControlDevice                                                
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

ControlDriver proc uses esi edi ebx pszDriverName:LPSTR, dwCode:DWORD

LOCAL acBuffer[MAX_PATH]:CHAR
LOCAL dwBytesReturned:DWORD

	xor ebx, ebx		; assume error
	mov edi, offset g_szFail

	invoke GetVersion
	.if al >= 5
		mov eax, $CTA0("\\\\.\\Global\\%s")
	.else
		mov eax, $CTA0("\\\\.\\%s")
	.endif
	invoke wsprintf, addr acBuffer, eax, pszDriverName

	invoke CreateFile, addr acBuffer, GENERIC_READ + GENERIC_WRITE, 0, \
				NULL, OPEN_EXISTING, 0, NULL

	invoke LastError

	.if eax != INVALID_HANDLE_VALUE
		mov esi, eax
		invoke DeviceIoControl, esi, dwCode, NULL, 0, NULL, 0, addr dwBytesReturned, NULL

		invoke LastError

		.if eax != 0
			inc ebx					; success
			mov edi, offset g_szSuccess
		.endif
		invoke CloseHandle, esi
	.else
		invoke MessageBox, NULL, $CTA0("Can't get Driver handle."), addr g_szCriticalError, MB_OK + MB_ICONSTOP
	.endif

	invoke ReportStatus, pszDriverName, $CTA0("Control"), edi, offset g_acErrorDescription

	return ebx

ControlDriver endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                  GetDriverNameFromPath                                            
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

GetDriverNameFromPath proc uses esi edi ebx pDriverPath:LPSTR, pBuffer:LPVOID

	xor ebx, ebx	; assume error

	mov edi, pDriverPath
	mov esi, edi
	invoke lstrlen, edi
	add esi, eax
	sub esi, 4			; ".sys"
	invoke lstrcmpi, $CTA0(".sys"), esi
	.if eax == 0
		xor ecx, ecx
		dec esi

	    .while esi > edi
		    mov al, [esi]
	    	.break .if al == '\'
		    inc ecx
		    dec esi
		.endw

		.if esi != edi
			inc esi
			mov edi, pBuffer
			rep movsb
		    mov byte ptr [edi], 0
		    inc ebx				; success
		.else
			invoke MessageBox, NULL, $CTA0("Can't extract Driver Name.\nYou have to specify full path."), \
									NULL, MB_OK + MB_ICONSTOP
		.endif

	.else
		invoke MessageBox, NULL, $CTA0("Can't recognize Driver Name.\nThe file extension must be '.sys'."), \
									NULL, MB_OK + MB_ICONSTOP
	.endif

	return ebx

GetDriverNameFromPath endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                  InsertReportListColumns                                          
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

InsertReportListColumns proc hwndListView:HWND
	
LOCAL lvc:LV_COLUMN
LOCAL lvi:LV_ITEM
	
	ListView_SetExtendedListViewStyle hwndListView, LVS_EX_GRIDLINES + LVS_EX_FULLROWSELECT

	mov lvc.imask, LVCF_TEXT + LVCF_WIDTH + LVCF_FMT
	mov lvc.fmt, LVCFMT_LEFT
	mov lvc.pszText, $TA0("Driver")
	mov lvc.lx, 60
	ListView_InsertColumn hwndListView, 0, addr lvc

	mov lvc.pszText, $TA0("Operation")
	ListView_InsertColumn hwndListView, 1, addr lvc

	mov lvc.pszText, $TA0("Status")
	ListView_InsertColumn hwndListView, 2, addr lvc

	mov lvc.lx, 400
	mov lvc.pszText, $TA0("Last Error")
	ListView_InsertColumn hwndListView, 3, addr lvc

	ret

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本欧美加勒比视频| 欧美激情一区二区| 五月激情综合色| 4438成人网| 美女视频黄频大全不卡视频在线播放| 欧美日韩国产系列| 蜜桃久久av一区| 久久久精品黄色| 成人av在线观| 亚洲国产一区视频| 欧美一区午夜精品| 国产毛片精品国产一区二区三区| 久久精品亚洲一区二区三区浴池| 成人免费视频一区二区| 一区二区三区在线观看视频 | 1000精品久久久久久久久| 波多野结衣中文字幕一区二区三区| 亚洲欧美视频在线观看| 欧美性做爰猛烈叫床潮| 美女在线视频一区| 国产精品久99| 欧美嫩在线观看| 国产成人综合亚洲91猫咪| 亚洲免费观看高清完整版在线观看熊 | 国产精品系列在线观看| 椎名由奈av一区二区三区| 欧美日韩精品一二三区| 国产精品主播直播| 夜夜嗨av一区二区三区网页| 精品日韩欧美在线| 99v久久综合狠狠综合久久| 天天影视涩香欲综合网| 国产无人区一区二区三区| 色婷婷精品大在线视频| 久久se这里有精品| 一区二区三区四区av| 欧美videossexotv100| 94-欧美-setu| 精品一区二区三区在线观看国产| 成人欧美一区二区三区| 日韩精品一区二区三区在线| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 国产毛片一区二区| 亚洲一二三四久久| 国产日产欧美一区二区视频| 在线成人小视频| 91网站在线观看视频| 国产在线麻豆精品观看| 亚洲成va人在线观看| 国产精品久久久久久久久久久免费看 | 蜜桃av一区二区| 一片黄亚洲嫩模| 国产精品人成在线观看免费| 日韩三区在线观看| 91国偷自产一区二区三区成为亚洲经典| 韩国av一区二区三区在线观看| 亚洲成人在线观看视频| 综合自拍亚洲综合图不卡区| 久久久影院官网| 日韩天堂在线观看| 欧美日韩国产乱码电影| 91福利精品第一导航| 99这里只有久久精品视频| 国产成人av一区二区三区在线观看| 日韩成人伦理电影在线观看| 亚洲在线观看免费视频| 亚洲特级片在线| 国产精品二三区| 国产精品久久毛片av大全日韩| 久久在线免费观看| 欧美成人女星排行榜| 欧美一区在线视频| 91精品国产欧美日韩| 欧美麻豆精品久久久久久| 欧美日韩精品一区二区天天拍小说| 91一区二区三区在线观看| 成人动漫一区二区| 99免费精品视频| 91视频在线看| 91官网在线免费观看| 色偷偷成人一区二区三区91| 99re成人精品视频| 91日韩精品一区| 在线免费观看视频一区| 色视频一区二区| 欧美视频第二页| 欧美一卡二卡在线| 欧美电影精品一区二区| 久久亚洲精华国产精华液 | 亚洲高清免费一级二级三级| 亚洲一级电影视频| 婷婷中文字幕一区三区| 日欧美一区二区| 极品少妇xxxx精品少妇| 国产精品1区2区| 91丨九色porny丨蝌蚪| 91国内精品野花午夜精品| 正在播放一区二区| 久久尤物电影视频在线观看| 国产女人aaa级久久久级| 国产日韩精品一区二区浪潮av| 综合久久久久久久| 亚洲va欧美va人人爽| 激情欧美日韩一区二区| 成人午夜激情视频| 欧洲精品一区二区三区在线观看| 欧美日韩免费不卡视频一区二区三区| 91精品国产欧美一区二区18 | 亚洲免费伊人电影| 日韩高清在线一区| 国产一区二区三区久久久| 成人av影院在线| 欧美日韩久久不卡| 欧美经典一区二区| 亚洲va国产天堂va久久en| 久久精品国产亚洲a| 成人av动漫网站| 制服丝袜亚洲播放| 国产精品午夜春色av| 午夜亚洲福利老司机| 丝袜脚交一区二区| 国产精品自拍三区| 欧美色国产精品| 久久婷婷成人综合色| 亚洲精品免费看| 激情图片小说一区| 欧美日韩一区在线观看| 欧美韩日一区二区三区| 天天av天天翘天天综合网色鬼国产| 国产精品2024| 日韩欧美www| 亚洲最新视频在线观看| 国产成人免费视频网站高清观看视频 | 一本到不卡精品视频在线观看| 日韩欧美一区在线| 亚洲日本va午夜在线电影| 久草在线在线精品观看| 欧美唯美清纯偷拍| 中文在线一区二区| 国产在线精品一区在线观看麻豆| 色视频成人在线观看免| 日本一区二区视频在线观看| 美腿丝袜一区二区三区| 欧美日韩中文另类| 一区在线播放视频| 国产不卡免费视频| 精品福利一区二区三区| 日韩电影网1区2区| 精品视频在线免费看| 亚洲人成亚洲人成在线观看图片| 国产一区二区三区香蕉| 欧美tk—视频vk| 蜜臀av亚洲一区中文字幕| 欧美性xxxxxxxx| 专区另类欧美日韩| 99久久国产综合精品麻豆 | 欧美一二三四区在线| 亚洲欧美韩国综合色| 国产91在线观看| 久久色.com| 国产精品一区二区在线播放| 日韩一区二区三区观看| 午夜欧美视频在线观看| 欧美午夜影院一区| 一区二区三区四区在线| 一本久久a久久免费精品不卡| 国产精品久久久久久久久免费樱桃| 国产传媒日韩欧美成人| 久久精品在这里| 成人免费av在线| 综合久久国产九一剧情麻豆| 99热99精品| 亚洲精品成人天堂一二三| 色综合咪咪久久| 亚洲综合男人的天堂| 欧美日韩你懂得| 日韩和欧美一区二区三区| 3atv一区二区三区| 蜜桃91丨九色丨蝌蚪91桃色| 欧美电影免费观看高清完整版在线| 久久精品国产77777蜜臀| 26uuuu精品一区二区| 国产一区二区视频在线播放| 国产人成一区二区三区影院| 成人午夜伦理影院| 亚洲少妇30p| 精品1区2区3区| 欧美96一区二区免费视频| 久久日一线二线三线suv| 国产成人av在线影院| 亚洲三级视频在线观看| 欧美日韩精品欧美日韩精品一综合| 天堂va蜜桃一区二区三区漫画版| 欧美成人vps| 不卡的av在线播放| 午夜欧美一区二区三区在线播放| 欧美一区二区三区不卡| 国产成人精品亚洲午夜麻豆| 亚洲免费av观看| 日韩欧美在线不卡|