📄 ipfilter.inc
字号:
;=================================================================
PF_SET_EXTENSION_HOOK_INFO STRUCT
ExtensionPointer DWORD ? ; // 包过滤函数的指针
PF_SET_EXTENSION_HOOK_INFO ENDS
;=================================================================
CTL_Start equ CTL_CODE(0F000h,0f00h,METHOD_BUFFERED,FILE_ANY_ACCESS)
CTL_Stop equ CTL_Start + 1
CTL_Buffer equ CTL_Start + 2
CTL_Read equ CTL_Start + 3
CTL_Write equ CTL_Start + 4
;=================================================================
; 数据包操作定义
PF_FORWARD equ 0 ; 定义数据包应该通过(系统不再过滤)
PF_DROP equ 1 ; 定义数据包应该丢弃
PF_PASS equ 2 ; 定义数据包应该通过(系统继续过滤)
PF_ICMP_ON_DROP equ 3 ; ICMP包被丢弃
;=================================================================
; 几种协议定义
IPPROTO_ICMP equ 1
IPPROTO_IGMP equ 2
IPPROTO_TCP equ 6
IPPROTO_UDP equ 17
INVALID_PF_IF_INDEX equ 0ffffffffh
;=================================================================
IPHeader STRUCT
iph_verlen BYTE ? ; // IP版本号/长度 0
iph_tos BYTE ? ; // 服务类别 1
iph_length WORD ? ; // 头部长度 3
iph_id WORD ? ; // IP标志 5
iph_offset WORD ? ; // 段偏移 7
iph_ttl BYTE ? ; // TTL生存时间 8
iph_protocol BYTE ? ; // 协议
iph_xsum WORD ? ; // 头部校验和
iph_src DWORD ? ; // 来源IP地址
iph_dest DWORD ? ; // 目的IP地址
IPHeader ENDS
;=================================================================
UDPHead STRUCT
src_port WORD ? ; // 来源端口
dest_port WORD ? ; // 目的端口
len WORD ? ; // UDP头部+UDP数据的总长度
CheckSum WORD ? ; // UDP校验和
UDPHead ENDS
;=================================================================
ICMPHead STRUCT
ICMPType BYTE ? ; // 类型 (8=ECHO 0=ECHO REPLY)
CODE BYTE ? ; // 未知
CheckSum WORD ? ; // ICMP校验和
isn WORD ? ; // 当前序列号
nsn WORD ? ; // 期望序列号
ICMPHead ENDS
;=================================================================
TCPHead STRUCT
src_port WORD ? ; // 来源端口
dest_port WORD ? ; // 目的端口
isn DWORD ? ; // 当前序列号
nsn DWORD ? ; // 期望序列号
dataoffset BYTE ? ; // 数据偏移
flags BYTE ? ; // TCP标志
window WORD ? ; // 数据窗口
checkSum WORD ? ; // TCP校验和
expoint WORD ? ; // 附加数据指针
; 其实后面还有数据,但是我们没有必要关心了
TCPHead ENDS
;=================================================================
st_packet STRUCT
ip_src DWORD ? ; // 来源IP地址 IP地址为16进制 esi
ip_dest DWORD ? ; // 目的IP地址 而且高低位互换 edi
ip_protocol BYTE ? ; // 协议 ICMP-1 IGMP-2 TCP-6 UDP-17 cl
ip_direction BYTE ? ; // 方向 2-发送 1-接收 0-任意 ch
src_port WORD ? ; // 来源端口 高低位互换 ax
dest_port WORD ? ; // 目的端口 网络字节顺序 bx
tcp_sign BYTE ? ; // TCP标识位 SYN--2 RST--4 dl
ip_operation BYTE ? ; // 操作 1-通过 0-拦截 dh
st_packet ENDS
;=================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -