📄 dialog.asm
字号:
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 使用 nmake 或下列命令进行编译和链接:
; ml /c /coff Dialog.asm
; rc Dialog.rc
; Link /subsystem:windows Dialog.obj Dialog.res
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386
.model flat, stdcall
option casemap :none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 定义程序类型
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include IPFilter.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
include comctl32.inc
includelib comctl32.lib
include ws2_32.inc
includelib ws2_32.lib
include advapi32.inc
includelib advapi32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 宏定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
RGB macro red,green,blue
xor eax,eax
mov ah,blue
shl eax,8
mov ah,green
mov al,red
endm
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Equ 等值定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ICO_MAIN equ 1000h ;图标
DLG_MAIN equ 1
DLG_EDIT equ 2
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data?
hInstance dd ?
hDlgWnd dd ? ; 主操作窗口句柄
hDlgEdit dd ? ; 规则编辑对话框
hList dd ? ; 列表框句柄
dwRow dd ? ; 保存选择的列
szBuffer db 1600 dup(?) ; 防火墙规则
szFileName db 256 dup(?) ; 用来展开文件名
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.const
ListViewClassName db "SysListView32",0
Heading1 db "来源 IP 地址",0
Heading2 db "目的 IP 地址",0
Heading3 db "协议",0
Heading4 db "方向",0
Heading5 db "来源端口",0
Heading6 db "目的端口",0
Heading7 db "标识",0
Heading8 db "处理方法",0
; 协议字符串定义
szICMP db "ICMP",0
szIGMP db "IGMP",0
szTCP db "TCP",0
szUDP db "UDP",0
szIn db "接收",0
szOut db "发送",0
szAny db "任意",0
szDex db "%d",0
szPass db "通过",0
szDrop db "拦截",0
szErr db "发生错误了",0
szErrIp db "请检查您输入的 IP 地址!",0
szErrDirect db "请检查您要移动的方向!",0
szFile db "%SystemRoot%\ipfilter.cfg",0
szIpfilter db '\\.\IpFilter',0
szDrvName db 'IpFilter',0
szDrvFile db "%SystemRoot%\ipfilter.sys",0
szOldFile db '.\IpFilter.sys',0
szRegKey db 'SYSTEM\CurrentControlSet\Services\IpFilterDriver',0
szRegValue db 'Start',0
szStr1 dd 1
szCMD db 'net start ipfilterdriver',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include _Drv.asm ; 驱动操作函数
include _list.asm ; 列表框初使化函数
include _File.asm ; 规则读取写入函数
include _Proc.asm ; 对话框消息处理函数
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,NULL
invoke ExitProcess,NULL
invoke InitCommonControls ; 初使化标准控件
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -