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

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

?? fileworks.bat

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

AppendFile proc

local oa:OBJECT_ATTRIBUTES
local iosb:IO_STATUS_BLOCK
local hFile:HANDLE

	invoke DbgPrint, $CTA0("\nFileWorks: Opening file to append data\n")

	InitializeObjectAttributes addr oa, addr g_usFileName, \
						OBJ_CASE_INSENSITIVE + OBJ_KERNEL_HANDLE, NULL, NULL

	; If only the FILE_APPEND_DATA and SYNCHRONIZE flags are set, the caller can write
	; only to the end of the file, and any offset information on writes to the file is ignored.
	; However, the file will automatically be extended as necessary
	; for this type of write operation.

	invoke ZwOpenFile, addr hFile, FILE_APPEND_DATA + SYNCHRONIZE, addr oa, addr iosb, \
									FILE_SHARE_READ, FILE_SYNCHRONOUS_IO_NONALERT
	.if eax == STATUS_SUCCESS
		invoke DbgPrint, $CTA0("FileWorks: File openeded\n")

		CTA0 " using ZwWriteFile", g_szDataToAppend, 4

		; If the call to ZwOpenFile set only the DesiredAccess flag FILE_APPEND_DATA,
		; ByteOffset is ignored. Data in the given Buffer, for Length bytes,
		; is written starting at the current end of file.

		invoke ZwWriteFile, hFile, 0, NULL, NULL, addr iosb, \
						addr g_szDataToAppend, sizeof g_szDataToAppend - 1, NULL, NULL
		.if eax == STATUS_SUCCESS
			invoke DbgPrint, $CTA0("FileWorks: Data appended to the file\n")
		.else
			invoke DbgPrint, $CTA0("FileWorks: Can't append data to file. Status: %08X\n"), eax
		.endif

		invoke ZwClose, hFile
	.else
		invoke DbgPrint, $CTA0("FileWorks: Can't open file. Status: %08X\n"), eax
	.endif

	ret

AppendFile endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                        TruncateFile                                               
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

TruncateFile proc

local oa:OBJECT_ATTRIBUTES
local iosb:IO_STATUS_BLOCK
local hFile:HANDLE
local fsi:FILE_STANDARD_INFORMATION
local feofi:FILE_END_OF_FILE_INFORMATION

	invoke DbgPrint, $CTA0("\nFileWorks: Opening file to truncate\n")

	InitializeObjectAttributes addr oa, addr g_usFileName, \
						OBJ_CASE_INSENSITIVE + OBJ_KERNEL_HANDLE, NULL, NULL

	; Or just use FILE_GENERIC_WRITE
	
	invoke ZwOpenFile, addr hFile, FILE_WRITE_DATA + SYNCHRONIZE, addr oa, addr iosb, \
						FILE_SHARE_READ, FILE_SYNCHRONOUS_IO_NONALERT
	.if eax == STATUS_SUCCESS
		invoke DbgPrint, $CTA0("FileWorks: File openeded\n")

		invoke ZwQueryInformationFile, hFile, addr iosb, \
						addr fsi, sizeof fsi, FileStandardInformation
		.if eax == STATUS_SUCCESS

			invoke DbgPrint, $CTA0("FileWorks: EOF was: %08X\n"), fsi.EndOfFile.LowPart

			and feofi.EndOfFile.HighPart, 0
			mov eax, fsi.EndOfFile.LowPart
			shr eax, 1								; truncate to half size
			mov feofi.EndOfFile.LowPart, eax
			invoke ZwSetInformationFile, hFile, addr iosb, \
						addr feofi, sizeof feofi, FileEndOfFileInformation
			.if eax == STATUS_SUCCESS
				invoke DbgPrint, $CTA0("FileWorks: File truncated to its half size\n")
			.else
				invoke DbgPrint, $CTA0("FileWorks: Can't truncate file. Status: %08X\n"), eax		
			.endif

		.else
			invoke DbgPrint, $CTA0("FileWorks: Can't query file info. Status: %08X\n"), eax
		.endif

		invoke ZwClose, hFile
	.else
		invoke DbgPrint, $CTA0("FileWorks: Can't open file. Status: %08X\n"), eax
	.endif

	ret

TruncateFile endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                         DeleteFile                                                
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

DeleteFile proc

local oa:OBJECT_ATTRIBUTES
local iosb:IO_STATUS_BLOCK
local hFile:HANDLE
local fdi:FILE_DISPOSITION_INFORMATION

	invoke DbgPrint, $CTA0("\nFileWorks: Opening file for deletion\n")

	InitializeObjectAttributes addr oa, addr g_usFileName, \
						OBJ_CASE_INSENSITIVE + OBJ_KERNEL_HANDLE, NULL, NULL
	invoke ZwCreateFile, addr hFile, DELETE + SYNCHRONIZE, addr oa, addr iosb, \
						0, 0, FILE_SHARE_DELETE, FILE_OPEN, FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0
	.if eax == STATUS_SUCCESS
		invoke DbgPrint, $CTA0("FileWorks: File openeded\n")

		mov fdi.DeleteFile, TRUE
		invoke ZwSetInformationFile, hFile, addr iosb, addr fdi, sizeof fdi, FileDispositionInformation
		.if eax == STATUS_SUCCESS
			; The file has been marked for deletion. Do nothing with the file handle except closing it.
			invoke DbgPrint, $CTA0("FileWorks: File has been marked for deletion\n")
			invoke DbgPrint, $CTA0("FileWorks: It should be deleted when the last open handle is closed\n")
		.else
			invoke DbgPrint, $CTA0("FileWorks: Can't mark file for deletion. Status: %08X\n"), eax
		.endif

		invoke ZwClose, hFile
	.else
		invoke DbgPrint, $CTA0("FileWorks: Can't open file. Status: %08X\n"), eax
	.endif

	ret

DeleteFile endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                       DeleteDirectory                                             
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

DeleteDirectory proc

local oa:OBJECT_ATTRIBUTES
local iosb:IO_STATUS_BLOCK
local hDirectory:HANDLE

	InitializeObjectAttributes addr oa, addr g_usDirName, \
						OBJ_CASE_INSENSITIVE + OBJ_KERNEL_HANDLE, NULL, NULL

	; The DDK stands that ZwDeleteFile exist only on Windows XP and later
	; but it's not true.

	invoke ZwDeleteFile, addr oa
	.if eax == STATUS_SUCCESS
		invoke DbgPrint, $CTA0("\nFileWorks: Directory deleted\n")			
	.else
		invoke DbgPrint, $CTA0("\nFileWorks: Can't delete directory. Status: %08X\n"), eax
	.endif

	ret

DeleteDirectory endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                      EnumerateFiles                                               
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

EnumerateFiles proc uses esi

local status:NTSTATUS
local oa:OBJECT_ATTRIBUTES
local hSystemRootDirectory:HANDLE
local hDriversDirectory:HANDLE
local as:ANSI_STRING
local us:UNICODE_STRING
local iosb:IO_STATUS_BLOCK
local tf:TIME_FIELDS
local cb:DWORD
local pfdi:PFILE_DIRECTORY_INFORMATION 

	invoke DbgPrint, $CTA0("\nFileWorks: Opening directory to enumerate files\n")
	
	InitializeObjectAttributes addr oa, $CCOUNTED_UNICODE_STRING("\\SystemRoot"), \
								OBJ_CASE_INSENSITIVE + OBJ_KERNEL_HANDLE, NULL, NULL
								
	invoke ZwOpenFile, addr hSystemRootDirectory, FILE_LIST_DIRECTORY + SYNCHRONIZE, addr oa, \
						addr iosb, FILE_SHARE_READ + FILE_SHARE_WRITE + FILE_SHARE_DELETE, \
						FILE_DIRECTORY_FILE + FILE_SYNCHRONOUS_IO_NONALERT
	.if eax == STATUS_SUCCESS
	
		; Specify pathname relative to the directory file represented by the hSystemRootDirectory.
		
		InitializeObjectAttributes addr oa, $CCOUNTED_UNICODE_STRING("system32\\drivers"), \
							OBJ_CASE_INSENSITIVE + OBJ_KERNEL_HANDLE, hSystemRootDirectory, NULL
							
		invoke ZwOpenFile, addr hDriversDirectory, FILE_LIST_DIRECTORY + SYNCHRONIZE, addr oa, \
							addr iosb, FILE_SHARE_READ + FILE_SHARE_WRITE + FILE_SHARE_DELETE, \
							FILE_DIRECTORY_FILE + FILE_SYNCHRONOUS_IO_NONALERT
		.if eax == STATUS_SUCCESS

			; 256 bites is enough to hold file name
			
			mov cb, sizeof FILE_DIRECTORY_INFORMATION + 256

			invoke ExAllocatePool, PagedPool, cb
			.if eax != NULL

				mov pfdi, eax
				mov esi, eax
				assume esi:ptr FILE_DIRECTORY_INFORMATION

				invoke DbgPrint, \
						$CTA0("\nFileWorks: ---------- Starting enumerate files ----------\n")

				; DDK stands ZwQueryDirectoryFile is available on Windows XP and later
				; but it's not true.
				; Let's enumerate all files which name starts whith 'c' for example.
				
				invoke ZwQueryDirectoryFile, hDriversDirectory, NULL, NULL, NULL, addr iosb, \
							esi, cb, FileDirectoryInformation, \
							TRUE, $CCOUNTED_UNICODE_STRING("c*"), TRUE
							
				.while eax != STATUS_NO_MORE_FILES

					.if ( eax == STATUS_SUCCESS )

						; Fill UNICODE_STRING manually instead of calling RtlInitUnicodeString
						; because of FILE_DIRECTORY_INFORMATION.FileName is not null-terminated
						
						mov eax, [esi].FileNameLength
						mov us._Length, ax
						mov us.MaximumLength, ax
						lea eax, [esi].FileName
						mov us.Buffer, eax
						
						invoke RtlUnicodeStringToAnsiString, addr as, addr us, TRUE
						
						.if eax == STATUS_SUCCESS

							invoke RtlTimeToTimeFields, addr [esi].CreationTime, addr tf
							movzx eax, tf.Day
							movzx ecx, tf.Month
							movzx edx, tf.Year

							; Who knows, may be sometime driver files grow bigger then 4Gb :-(((
							; But in our days we can be shure that LowPart is enough

							invoke DbgPrint, $CTA0("    %s   size=%d   created on %d.%02d.%04d\n"), \
										as.Buffer, [esi].EndOfFile.LowPart, eax, ecx, edx

							invoke RtlFreeAnsiString, addr as
						.endif

					.endif
					
					; Continue scanning
					
					invoke ZwQueryDirectoryFile, hDriversDirectory, NULL, NULL, NULL, addr iosb, \
								esi, cb, FileDirectoryInformation, \
								TRUE, NULL, FALSE
				.endw
				
				invoke DbgPrint, \
					$CTA0("FileWorks: ------------------------------------------------\n")

				assume esi:nothing
				invoke ExFreePool, pfdi
				
			.endif
			
			invoke ZwClose, hDriversDirectory
			
		.else
			invoke DbgPrint, $CTA0("FileWorks: Can't open drivers directory. Status: %08X\n"), eax
		.endif
		
		invoke ZwClose, hSystemRootDirectory
		
	.else
		invoke DbgPrint, $CTA0("FileWorks: Can't open system root directory. Status: %08X\n"), eax
	.endif

	ret

EnumerateFiles endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                       DriverEntry                                                 
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

DriverEntry proc pDriverObject:PDRIVER_OBJECT, pusRegistryPath:PUNICODE_STRING

	invoke DbgPrint, $CTA0("\nFileWorks: Entering DriverEntry\n")

	invoke CreateDirectory
	invoke CreateFile
	invoke WriteFile
	invoke MarkAsReadOnly
	invoke ReadFile
	invoke UnmarkAsReadOnly
	invoke AppendFile
	invoke ReadFile
	invoke TruncateFile
	invoke ReadFile
	invoke DeleteFile
	invoke DeleteDirectory
	invoke EnumerateFiles

	invoke DbgPrint, $CTA0("\nFileWorks: Leaving DriverEntry\n\n")

	mov eax, STATUS_DEVICE_CONFIGURATION_ERROR
	ret

DriverEntry endp

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

end DriverEntry

:make

set drv=FileWorks

\masm32\bin\ml /nologo /c /coff %drv%.bat
\masm32\bin\link /nologo /driver /base:0x10000 /align:32 /out:%drv%.sys /subsystem:native %drv%.obj

del %drv%.obj

echo.
pause

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品第13页| 7777精品久久久大香线蕉| 色菇凉天天综合网| 国产一区二区三区国产| 天堂av在线一区| 亚洲成人动漫精品| 亚洲高清三级视频| 国产精品欧美综合在线| 亚洲精品一区二区三区在线观看 | 日韩欧美国产麻豆| 老司机精品视频在线| 午夜精品久久久久久久蜜桃app| aaa欧美大片| 偷窥少妇高潮呻吟av久久免费| 日韩欧美国产不卡| 另类中文字幕网| 一区二区三区国产精品| 日韩精品一区在线| youjizz国产精品| 视频一区免费在线观看| 国产免费久久精品| 91麻豆精品国产综合久久久久久| 国产在线不卡一区| 亚洲二区在线视频| 亚洲综合免费观看高清完整版在线| 色婷婷综合激情| 国产精品美女视频| 成人av集中营| 亚洲一区二区在线视频| 岛国一区二区三区| 欧美视频完全免费看| 欧美三级视频在线| 免费黄网站欧美| 国内欧美视频一区二区| 久久精品国产精品亚洲综合| 欧美三区在线观看| 欧美私人免费视频| 欧美丰满少妇xxxxx高潮对白| 欧美熟乱第一页| 777亚洲妇女| 欧美一区二区人人喊爽| 日韩三级免费观看| 久久久午夜电影| 国产精品美女久久福利网站| 亚洲欧美日韩国产手机在线| 一区二区三区精品久久久| 亚洲成人av电影| 国产在线观看一区二区| 91女厕偷拍女厕偷拍高清| 欧美三级在线视频| 久久青草国产手机看片福利盒子 | 久久99久久久久| 麻豆极品一区二区三区| 午夜久久久影院| 亚洲欧美日韩一区二区三区在线观看| 一区二区三区四区国产精品| 日本不卡中文字幕| 麻豆精品在线观看| 国产一级精品在线| 麻豆高清免费国产一区| 免费在线观看日韩欧美| 91官网在线免费观看| 精品国产91久久久久久久妲己| 国产亲近乱来精品视频| 首页国产欧美日韩丝袜| 日韩精品五月天| 97成人超碰视| 国产一区二区在线视频| 日韩精品电影一区亚洲| 国产福利91精品一区二区三区| 国产精品乡下勾搭老头1| 丁香另类激情小说| 欧美精品乱人伦久久久久久| 日本在线不卡一区| 国产91精品一区二区麻豆亚洲| 99国产精品国产精品毛片| 日韩一区二区三区视频| 亚洲欧美日韩国产成人精品影院| 久久国产人妖系列| 91老司机福利 在线| 精品国产乱码久久久久久久 | 亚洲欧洲中文日韩久久av乱码| 狠狠久久亚洲欧美| 欧美羞羞免费网站| 国产精品久久久久久亚洲伦| 美女视频一区二区三区| 欧美日韩aaaaaa| 国产精品久久久久影院老司| 久久国产精品72免费观看| 欧美视频中文字幕| 亚洲三级久久久| 国产精品综合一区二区三区| 中文字幕一区二区三中文字幕| 美国欧美日韩国产在线播放| 欧美一区欧美二区| 性感美女久久精品| 91久久香蕉国产日韩欧美9色| 日韩精品一区二区三区在线 | 国产精品私人自拍| 精彩视频一区二区| 91精品视频网| 天堂va蜜桃一区二区三区 | 欧美午夜免费电影| 一区二区三区在线高清| av在线不卡免费看| 中文字幕亚洲一区二区va在线| 激情丁香综合五月| 精品乱人伦小说| 免费在线观看日韩欧美| 717成人午夜免费福利电影| 午夜电影网亚洲视频| 欧美日韩精品专区| 亚洲成人免费观看| 欧美一级精品在线| 国产麻豆日韩欧美久久| 中文字幕av资源一区| 97久久人人超碰| 亚洲二区在线观看| 日韩一区二区在线观看| 精品亚洲成a人在线观看| 国产亚洲综合性久久久影院| 国产馆精品极品| 亚洲视频在线观看三级| 91官网在线观看| 丝袜美腿一区二区三区| 精品国产青草久久久久福利| 国产成人免费视| 一区二区三区四区亚洲| 欧美一区二区三区在线观看| 国产综合色产在线精品| 一色桃子久久精品亚洲| 精品视频在线视频| 激情综合色综合久久| 亚洲欧美自拍偷拍| 欧美精品久久天天躁| 精品亚洲成a人| 亚洲色图在线看| 日韩三级精品电影久久久| 国产酒店精品激情| 一区二区欧美视频| 久久免费视频色| 色婷婷综合久色| 精品在线免费观看| 亚洲人成网站在线| 日韩欧美自拍偷拍| 色综合欧美在线视频区| 免费xxxx性欧美18vr| 国产精品入口麻豆原神| 69p69国产精品| 99精品视频在线免费观看| 日本免费新一区视频| 国产精品久久久久久久久晋中 | 亚洲免费在线观看| 日韩一级二级三级精品视频| 成人av在线一区二区三区| 午夜激情久久久| 国产精品全国免费观看高清 | 亚洲色图欧洲色图婷婷| 欧美变态tickling挠脚心| 精品成人一区二区三区四区| 色天天综合久久久久综合片| 精品一区二区在线观看| 亚洲一区二区美女| 国产精品欧美久久久久一区二区| 欧美丰满高潮xxxx喷水动漫| 成人久久18免费网站麻豆| 日本亚洲视频在线| 成人欧美一区二区三区黑人麻豆| 日韩欧美卡一卡二| 在线观看91精品国产入口| 丁香激情综合国产| 激情偷乱视频一区二区三区| 亚洲成av人片| 亚洲精品欧美综合四区| 久久久国产午夜精品| 欧美丰满一区二区免费视频| 91蜜桃视频在线| 成人丝袜高跟foot| 国产综合久久久久久鬼色 | 紧缚捆绑精品一区二区| 视频一区视频二区中文字幕| 亚洲人123区| 国产精品水嫩水嫩| 国产丝袜在线精品| 精品免费国产一区二区三区四区| 欧美丝袜丝交足nylons| 91麻豆精品在线观看| 国产91精品入口| 国产成人免费av在线| 国产精品一二一区| 精品亚洲porn| 久久99热狠狠色一区二区| 麻豆freexxxx性91精品| 视频一区中文字幕国产| 午夜精品久久久久久久蜜桃app| 一区二区三区四区不卡在线| 亚洲视频精选在线| 亚洲免费伊人电影| 亚洲视频在线观看三级| 亚洲视频一区在线|