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

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

?? fileworks.bat

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

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;
;  FileWorks - File creation, writing, reading etc...
;
;  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\w2k\ntstatus.inc
include \masm32\include\w2k\ntifs.inc
include \masm32\include\w2k\ntoskrnl.inc

includelib \masm32\lib\w2k\ntoskrnl.lib

include \masm32\Macros\Strings.mac

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                 R E A D O N L Y    D A T A                                        
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

.const

CCOUNTED_UNICODE_STRING	"\\??\\c:\\FileWorks\\test.txt", g_usFileName, 4
CCOUNTED_UNICODE_STRING	"\\??\\c:\\FileWorks", g_usDirName, 4

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

.code

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                      CreateDirectory                                              
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

CreateDirectory proc

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

	; Remember that the Unicode format codes (%C, %S, %lc, %ls, %wc, %ws, %wZ)
	; can only be used at IRQL PASSIVE_LEVEL. 
	invoke DbgPrint, $CTA0("\nFileWorks: Creating %ws directory\n"), g_usDirName.Buffer

	; Pay attention at OBJ_KERNEL_HANDLE flag. It's applicable for all object types not only for files.

	; DDK stands:
	; "Driver routines that run in a process context other than that of the system process
	; must set the OBJ_KERNEL_HANDLE attribute for the ObjectAttributes parameter of ZwCreateFile.
	; This restricts the use of the handle returned by ZwCreateFile to processes
	; running only in kernel mode. Otherwise, the handle can be accessed by the process
	; in whose context the driver is running."
	
	; But in reality even you get a handle in system process context without specifying
	; OBJ_KERNEL_HANDLE you can NOT touch this object in any other process context.
	; So better always specify OBJ_KERNEL_HANDLE if you plan access object by handle
	; in different processes. A kernel handle doesn抰 disappear until the operating system
	; shuts down and can be used without ambiguity in any process.

	InitializeObjectAttributes addr oa, addr g_usDirName, \
						OBJ_CASE_INSENSITIVE + OBJ_KERNEL_HANDLE, NULL, NULL
	invoke ZwCreateFile, addr hDirectory, SYNCHRONIZE, addr oa, addr iosb, 0, FILE_ATTRIBUTE_NORMAL, \
						0, FILE_OPEN_IF, FILE_DIRECTORY_FILE + FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0
	.if eax == STATUS_SUCCESS
		.if iosb.Information == FILE_CREATED
			invoke DbgPrint, $CTA0("FileWorks: Directory created\n")
		.elseif iosb.Information == FILE_OPENED
			invoke DbgPrint, $CTA0("FileWorks: Directory exists and was opened\n")
		.endif
		invoke ZwClose, hDirectory
	.else
		invoke DbgPrint, $CTA0("FileWorks: Can't create directory. Status: %08X\n"), eax
	.endif
	
	ret

CreateDirectory endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                        CreateFile                                                 
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

CreateFile proc

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

	; Remember that the Unicode format codes (%C, %S, %lc, %ls, %wc, %ws, %wZ)
	; can only be used at IRQL PASSIVE_LEVEL. 
	invoke DbgPrint, $CTA0("\nFileWorks: Creating %ws file\n"), g_usFileName.Buffer

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

	; If the file already exists, fail the request and do not create or open the given file.
	; If it does not, create the given file.

	invoke ZwCreateFile, addr hFile, SYNCHRONIZE, addr oa, addr iosb, 0, FILE_ATTRIBUTE_NORMAL, \
						0, FILE_CREATE, FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0
	.if eax == STATUS_SUCCESS

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

CreateFile endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                            WriteFile                                              
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

WriteFile proc

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

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

	InitializeObjectAttributes addr oa, addr g_usFileName, \
						OBJ_CASE_INSENSITIVE + OBJ_KERNEL_HANDLE, NULL, NULL
	
	; ZwCreateFile can be used for opening existing file. FILE_OPEN should be specified.
	; I use:
	; - FILE_WRITE_DATA because only I want is to write data into the file;
	; - SYNCHRONIZE because of FILE_SYNCHRONOUS_IO_NONALERT.
	; But you can simply use less strict FILE_ALL_ACCESS.

	invoke ZwCreateFile, addr hFile, FILE_WRITE_DATA + SYNCHRONIZE, addr oa, addr iosb, \
						0, 0, FILE_SHARE_READ, FILE_OPEN, FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0
	.if eax == STATUS_SUCCESS
		invoke DbgPrint, $CTA0("FileWorks: File openeded\n")

		CTA0 "Data can be written to an open file", g_szData, 4

		invoke ZwWriteFile, hFile, 0, NULL, NULL, addr iosb, \
						addr g_szData, sizeof g_szData - 1, NULL, NULL
		.if eax == STATUS_SUCCESS
			invoke DbgPrint, $CTA0("FileWorks: File was written\n")
		.else
			invoke DbgPrint, $CTA0("FileWorks: Can't write to the file. Status: %08X\n"), eax
		.endif

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

	ret

WriteFile endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                        MarkAsReadOnly                                             
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

MarkAsReadOnly proc

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

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

	InitializeObjectAttributes addr oa, addr g_usFileName, \
						OBJ_CASE_INSENSITIVE + OBJ_KERNEL_HANDLE, NULL, NULL
	
	; ZwCreateFile can be used for opening existing file. FILE_OPEN should be specified.
	; I use:
	; - FILE_READ_ATTRIBUTES because I want to query file attributes;
	; - FILE_WRITE_ATTRIBUTES because I want to change file attributes;
	; - SYNCHRONIZE because of FILE_SYNCHRONOUS_IO_NONALERT.
	; But you can simply use less strict FILE_ALL_ACCESS.

	invoke ZwCreateFile, addr hFile, FILE_READ_ATTRIBUTES + FILE_WRITE_ATTRIBUTES + SYNCHRONIZE, \
						addr oa, addr iosb, 0, 0, FILE_SHARE_READ, \
						FILE_OPEN, FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0
	.if eax == STATUS_SUCCESS
		invoke DbgPrint, $CTA0("FileWorks: File openeded\n")

		; Protect the file from deletion.
		invoke ZwQueryInformationFile, hFile, addr iosb, addr fbi, sizeof fbi, FileBasicInformation
		; Undocumented ZwQueryAttributesFile does the same.
		.if eax == STATUS_SUCCESS
			invoke DbgPrint, $CTA0("FileWorks: File attributes were: %08X\n"), fbi.FileAttributes
			or fbi.FileAttributes, FILE_ATTRIBUTE_READONLY
			invoke ZwSetInformationFile, hFile, addr iosb, addr fbi, sizeof fbi, FileBasicInformation
			.if eax == STATUS_SUCCESS
				invoke DbgPrint, $CTA0("FileWorks: Now file marked as read-only\n")
			.else
				invoke DbgPrint, $CTA0("FileWorks: Can't change file attributes. Status: %08X\n"), eax
			.endif
		.else
			invoke DbgPrint, $CTA0("FileWorks: Can't query file attributes. Status: %08X\n"), eax
		.endif

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

	ret

MarkAsReadOnly endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                          ReadFile                                                 
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

ReadFile proc

local oa:OBJECT_ATTRIBUTES
local iosb:IO_STATUS_BLOCK
local hFile:HANDLE
local p:PVOID
local cb:DWORD
local fsi:FILE_STANDARD_INFORMATION

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

	InitializeObjectAttributes addr oa, addr g_usFileName, \
						OBJ_CASE_INSENSITIVE + OBJ_KERNEL_HANDLE, NULL, NULL
	invoke ZwOpenFile, addr hFile, FILE_READ_DATA + SYNCHRONIZE, addr oa, addr iosb, \
				FILE_SHARE_READ + FILE_SHARE_WRITE + FILE_SHARE_DELETE, 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

			mov eax, fsi.EndOfFile.LowPart
			inc eax								; one byte more for terminating zero
			mov cb, eax

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

				invoke RtlZeroMemory, p, cb

				invoke ZwReadFile, hFile, 0, NULL, NULL, addr iosb, p, cb, 0, NULL
				.if eax == STATUS_SUCCESS
					invoke DbgPrint, $CTA0("FileWorks: File content: \=%s\=\n"), p
				.else
					invoke DbgPrint, $CTA0("FileWorks: Can't read from the file. Status: %08X\n"), eax
				.endif

				invoke ExFreePool, p

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

		invoke ZwClose, hFile

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

	ret

ReadFile endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                        UnmarkAsReadOnly                                           
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

UnmarkAsReadOnly proc

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

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

	InitializeObjectAttributes addr oa, addr g_usFileName, \
						OBJ_CASE_INSENSITIVE + OBJ_KERNEL_HANDLE, NULL, NULL
	
	; ZwCreateFile can be used for opening existing file. FILE_OPEN should be specified.
	; I use:
	; - FILE_READ_ATTRIBUTES because I want to query file attributes;
	; - FILE_WRITE_ATTRIBUTES because I want to change file attributes;
	; - SYNCHRONIZE because of FILE_SYNCHRONOUS_IO_NONALERT.
	; But you can simply use less strict FILE_ALL_ACCESS.

	invoke ZwCreateFile, addr hFile, FILE_READ_ATTRIBUTES + FILE_WRITE_ATTRIBUTES + SYNCHRONIZE, \
						addr oa, addr iosb, 0, 0, FILE_SHARE_READ, FILE_OPEN, \
						FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0
	.if eax == STATUS_SUCCESS
		invoke DbgPrint, $CTA0("FileWorks: File openeded\n")

		; Allow delete file.
		invoke ZwQueryInformationFile, hFile, addr iosb, addr fbi, sizeof fbi, FileBasicInformation
		; Undocumented ZwQueryAttributesFile does the same.
		.if eax == STATUS_SUCCESS
			invoke DbgPrint, $CTA0("FileWorks: File attributes were: %08X\n"), fbi.FileAttributes
			and fbi.FileAttributes, not FILE_ATTRIBUTE_READONLY
			invoke ZwSetInformationFile, hFile, addr iosb, addr fbi, sizeof fbi, FileBasicInformation
			.if eax == STATUS_SUCCESS
				invoke DbgPrint, $CTA0("FileWorks: Now file can be written or deleted\n")
			.else
				invoke DbgPrint, $CTA0("FileWorks: Can't change file attributes. Status: %08X\n"), eax
			.endif
		.else
			invoke DbgPrint, $CTA0("FileWorks: Can't query file attributes. Status: %08X\n"), eax
		.endif

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

	ret

UnmarkAsReadOnly endp

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人一级视频| 日韩一级高清毛片| www.成人在线| 国内精品久久久久影院色| 亚洲一级电影视频| 亚洲免费观看高清| 久久女同性恋中文字幕| 91精品国产综合久久久久久| 在线免费不卡电影| 国产成人av一区二区| 久久99久国产精品黄毛片色诱| 一区二区三区四区不卡在线 | 欧美一区二区精品在线| 91香蕉国产在线观看软件| 亚洲欧美日韩电影| 中文字幕视频一区| 日韩精品一级中文字幕精品视频免费观看 | 日韩视频免费观看高清完整版| 欧美无砖专区一中文字| 亚洲国产视频一区二区| 日本高清免费不卡视频| 国产一区二区h| 午夜a成v人精品| 国产精品视频麻豆| 精品久久一二三区| 久久亚洲欧美国产精品乐播 | 久色婷婷小香蕉久久| 亚洲国产va精品久久久不卡综合| 亚洲综合另类小说| 日日夜夜精品视频免费| 国内精品伊人久久久久av一坑| 国产高清精品久久久久| 91视视频在线观看入口直接观看www| 一本大道久久a久久精二百| 欧美在线高清视频| 欧美一区二区人人喊爽| 国产日韩欧美不卡| 一区二区三区免费| 免费在线欧美视频| 成人午夜电影久久影院| 在线欧美一区二区| 日韩精品中午字幕| 日本一区二区三区视频视频| 一区二区三区欧美| 久久国产精品99精品国产| 国产91精品久久久久久久网曝门| 日本精品视频一区二区| 91精品一区二区三区久久久久久| 久久亚洲二区三区| 亚洲中国最大av网站| 狠狠色综合播放一区二区| 99久久777色| 日韩av在线发布| 日韩欧美视频一区| 亚洲国产精品一区二区www在线| 国产综合成人久久大片91| 极品瑜伽女神91| 99久久精品免费看国产| 一本色道久久综合亚洲91| 日韩午夜小视频| 国产欧美日韩视频在线观看| 一区二区三区在线不卡| 久久99精品国产麻豆不卡| 国产成人免费在线| 国产亚洲欧美色| 日韩亚洲欧美成人一区| 91麻豆精品91久久久久久清纯 | 欧美一区二区三区在线电影| 国产精品久久久久久久久免费桃花| 青娱乐精品视频在线| 91视频xxxx| 久久女同精品一区二区| 午夜国产精品影院在线观看| www国产成人免费观看视频 深夜成人网| 欧美电影免费观看高清完整版在线观看| 中文字幕一区免费在线观看| 国产在线视频精品一区| 欧美在线影院一区二区| 精品99一区二区三区| 日韩av高清在线观看| 欧美日韩精品久久久| 亚洲精品国久久99热| 99视频在线精品| 国产精品久久夜| 成人手机电影网| 国产亚洲精品7777| 国产精品综合视频| 国产精品久久久久久久久动漫 | 91在线一区二区三区| 精品免费视频一区二区| 丝袜诱惑制服诱惑色一区在线观看| 丝袜美腿亚洲一区二区图片| 丁香婷婷综合网| 国产亚洲短视频| 99国产精品久久久久久久久久久| 日本不卡视频在线| 亚洲高清免费一级二级三级| 9色porny自拍视频一区二区| 欧美私人免费视频| 一区二区久久久久| 91免费看片在线观看| 国产精品你懂的| 有坂深雪av一区二区精品| 久久久另类综合| 99久久精品免费看国产免费软件| 麻豆成人久久精品二区三区红 | 激情五月激情综合网| 国产成人三级在线观看| 欧美成人三级电影在线| 玖玖九九国产精品| 欧美不卡一区二区三区| 青青草国产成人av片免费| 欧美二区在线观看| 免费精品视频最新在线| 91精品久久久久久久99蜜桃| 日本少妇一区二区| 欧美大片日本大片免费观看| 久久国产精品99精品国产| 精品国精品国产| 国产一区欧美二区| 久久久不卡网国产精品一区| 国产99久久久国产精品潘金| 国产精品无码永久免费888| 高清成人免费视频| 《视频一区视频二区| 日本电影欧美片| 天天免费综合色| 日韩精品最新网址| 国产成人激情av| ㊣最新国产の精品bt伙计久久| 97久久精品人人澡人人爽| 夜夜嗨av一区二区三区中文字幕 | 欧美日韩在线三级| 日韩精彩视频在线观看| 日韩美女一区二区三区四区| 国产电影一区二区三区| 国产精品久久久久影院老司| 色婷婷综合久色| 日韩精品电影在线观看| 精品对白一区国产伦| 成人免费高清在线观看| 亚洲线精品一区二区三区| 欧美一区在线视频| 成人一级视频在线观看| 一区二区三区精品视频在线| 欧美成人女星排行榜| a美女胸又www黄视频久久| 亚洲国产日韩在线一区模特| 久久综合丝袜日本网| 91麻豆精品视频| 久久精品国产秦先生| 中文字幕在线观看一区| 欧美区在线观看| 成人午夜免费视频| 日韩国产精品91| 一区视频在线播放| 日韩视频在线一区二区| 94-欧美-setu| 免费成人在线观看视频| 综合在线观看色| 欧美v亚洲v综合ⅴ国产v| 色悠悠久久综合| 国产又黄又大久久| 亚洲777理论| 国产精品毛片a∨一区二区三区| 在线播放一区二区三区| 成人av资源在线观看| 蜜臀a∨国产成人精品| 亚洲视频精选在线| 久久品道一品道久久精品| 欧美日本一区二区在线观看| 成人av网站大全| 在线免费观看日本欧美| |精品福利一区二区三区| 精品综合免费视频观看| 欧美mv日韩mv亚洲| 91性感美女视频| 亚洲一区在线观看视频| 久久精品夜夜夜夜久久| 欧美一区二区啪啪| 91高清视频在线| 99这里只有精品| 久久精品久久久精品美女| 亚洲国产精品一区二区久久恐怖片 | 不卡的av电影在线观看| 极品少妇xxxx精品少妇偷拍| 无码av免费一区二区三区试看| 中文字幕中文在线不卡住| 精品三级在线观看| 91精品国产综合久久精品app | 国产精品无人区| 精品国产一区a| 欧美视频一区二区三区四区| 91丝袜国产在线播放| 成人美女视频在线观看18| 国产精品一区二区黑丝| 久久精品国产精品亚洲综合| 国产高清无密码一区二区三区| 久久国产尿小便嘘嘘| 美腿丝袜一区二区三区|