网络逻辑封包的解析抽象
来源:互联网 发布:淘宝女装广告词 编辑:程序博客网 时间:2024/06/01 22:27
一、概念
封包原子
结构定义:数据名称 数据类型、字节长度、数据个数、是否为常量、常量值
数据类型支持long,int,float,double,bool,string等
数据个数>1时,是数组
常量原子
是否为常量 = true,且常量值有意义的封包原子
封包结构
由opcode和若干个封包原子组成
封包结构文本描述
例:OP_TEAM, int,float,bool{1}, string
OP_TEAM, int,float,bool{0}, ushort, [int,float,string]
注意:bool、bool{1} 和 bool{0} 是三个不同的封包原子
[]是数组
分支
两个封包结构的opcode相等,但是封包原子不完全一样,称为 这两个封包结构为该opcode的分支 (分支与逻辑密切相关)
封包
服务器或者客户端接收到的逻辑包
匹配
已知一个封包二进制数据A,用某个封包结构B去解析里面的数据,称为B去匹配A。一般来说,解析过程是顺序下来的,解析伴随着逻辑分析的过程
匹配文本描述
例:OP_TEAM, int(5),float(3.2),bool(1), string(‘aaa’)
OP_TEAM, int(5),float(3,2),bool(0), ushort(2), [0,int(4),float(2.22),string(‘’)], [1,int(78),float(4.22),string(‘aaaa’)]
匹配过程与匹配结果
匹配过程就是顺序拿封包里的指定长度数据去套用封包结构里面的数据定义,产生值。匹配到常量原子时,如果值不等于常量原子,那么匹配失败;如果封包里的数据没有把原子匹配完,或者有多余的数据,也匹配失败。否则匹配成功。
注意:匹配成功不能认为这就是正确的封包,因为匹配产生的各个原子的值是逻辑相关的
二、用途
用于开发过程中需要的发包工具,可先建立一个封包结构知识库,然后根据接收过来的封包与知识库进行匹配识别,再发送特定的测试封包数据。另外也可以在研发过程中作为封包测试排错的机制。
- 网络逻辑封包的解析抽象
- NDIS网络封包的研究
- 截取程序的网络封包
- Qt基于TCP网络程序发包封包抽象
- 网络封包
- 拦截其它程序的网络数据封包
- 拦截其它程序的网络数据封包
- 拦截其它程序的网络数据封包
- 拦截其它程序的网络数据封包
- 拦截其它程序的网络数据封包
- 拦截其它程序的网络数据封包
- 拦截其它程序的网络数据封包
- 拦截其它程序的网络数据封包
- 拦截其它程序的网络数据封包
- 基于SPI的LSP网络封包截获
- Charles--分析网络封包的工具
- wireshark 网络封包分析 ,撷取网络封包
- margin的解析逻辑
- js技巧收集
- 一个基于Axiom的MMOPRG引擎
- 环境变量中path和classpath的作用
- 灰鸽子
- 吃十种爽脆蔬菜轻松美白!
- 网络逻辑封包的解析抽象
- 对各字符集编码范围的总结
- 让你明白什么是ERP
- C# Color List & Export to Excel
- PHP 后退页面过期或不存在问题的解决
- 请问如何购买《中国电子地图2006》?
- 《世界·领主》开发日志[03]
- 闲逸小憩
- 如何制作单点地图? 有何功能?