⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 _file.asm

📁 linux ip fiter source
💻 ASM
字号:
;====================================================================
_ReadFile		Proc
	local	@hFile,@dwBytesRead
;	int 3
;********************************************************************
;	展开环境变量  读取文件
;********************************************************************
	invoke	ExpandEnvironmentStrings,addr szFile,offset szFileName,sizeof szFileName
	invoke	CreateFile,offset szFileName,GENERIC_READ,FILE_SHARE_READ,0,\
			OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0
	.if	eax !=	INVALID_HANDLE_VALUE
;	有初使化文件则读取该文件到内存中
		mov	@hFile,eax
		invoke	ReadFile,@hFile,addr szBuffer,sizeof szBuffer,addr @dwBytesRead,0
		invoke	CloseHandle,@hFile		;	关闭打开的文件
	.endif

	Ret
_ReadFile		Endp
;====================================================================
;	保存内存中的规则到文件
;====================================================================
_WriteFile		Proc
	local	@hFile,@dwBytesWrite
;	int 3
;********************************************************************
;	展开环境变量  读取文件
;********************************************************************
	invoke	ExpandEnvironmentStrings,addr szFile,offset szFileName,sizeof szBuffer
	invoke	CreateFile,addr szFileName,GENERIC_WRITE,0,0,\
			CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0
	mov		@hFile,eax
	invoke	WriteFile,@hFile,addr szBuffer,sizeof szBuffer,addr @dwBytesWrite,NULL
	invoke	FlushFileBuffers,@hFile
	invoke	CloseHandle,@hFile		;	关闭打开的文件

	Ret
_WriteFile		Endp
;====================================================================
;	读取运行中驱动的缓冲区
;====================================================================
_ReadBuffer		Proc
	local	@hFile,@dwOutBytes

;	int 3
	invoke	CreateFile,offset szIpfilter,GENERIC_READ or GENERIC_WRITE,\
			FILE_SHARE_READ or FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL
	.if		eax != INVALID_HANDLE_VALUE		;	打开成功后返回句柄
		mov		@hFile,eax
		invoke	DeviceIoControl,@hFile,CTL_Read,offset szBuffer,\
				sizeof szBuffer,offset szBuffer,sizeof szBuffer,\
				addr @dwOutBytes,0
		invoke	CloseHandle,@hFile
	.endif

	Ret
_ReadBuffer		Endp
;====================================================================
;	保存运行中驱动的缓冲区
;====================================================================
_WriteBuffer		Proc
	local	@hFile,@dwOutBytes

;	int 3
	invoke	CreateFile,offset szIpfilter,GENERIC_READ or GENERIC_WRITE,\
			FILE_SHARE_READ or FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL
	.if		eax != INVALID_HANDLE_VALUE		;	打开成功后返回句柄
		mov		@hFile,eax
		invoke	DeviceIoControl,@hFile,CTL_Write,offset szBuffer,\
				sizeof szBuffer,offset szBuffer,sizeof szBuffer,\
				addr @dwOutBytes,0
		invoke	CloseHandle,@hFile
	.endif

	Ret
_WriteBuffer		Endp
;====================================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -