当前位置: 首页 > news >正文

泉州手机网站制作怎样搭建网站

泉州手机网站制作,怎样搭建网站,少儿美术专业网站做课件,WordPress多人聊天插件前言 Wireshark提供了lua扩展能力,可以定制一些Listner和Dissector,用于一些自定义的使用场景,例如: lua插件适应场景Listener报文统计、内容抽取等Dissector协议树解析,在wireshark中立等可看 已在以前的文档中积累了对于List…

前言

Wireshark提供了lua扩展能力,可以定制一些ListnerDissector,用于一些自定义的使用场景,例如:

lua插件适应场景
Listener报文统计、内容抽取等
Dissector协议树解析,在wireshark中立等可看

已在以前的文档中积累了对于Listener的使用,见Listener。

本文将继续介绍下Dissector的扩展使用。

介绍方式上,采用对于官网例子作详细地注释进行解读。

想多说点

这次尝试源于一次对于接口文档的阅读,想避免在后期又一次地翻阅文档,重新查看协议说明和字段描述。

为什么要重新费心费力去做某些重复的事情呢?

那么利用Wireshark Lua脚本将其固化下来,将是非常好的实践!

解析器基本组件

组件说明
Proto定义协议,包括字段和解析器函数定义;在解析树中体现为一个节点
ProtoField定义协议字段类型
Dissector Chain解析器链,某个解析器完成自身协议层解析后,可以在尾部继续调用其它解析器,完成整个报文解析

Tvb参数组件特殊说明

  • buf(offset[, length])切片操作
tvb 参数说明
offset必须,注意从零开始
length可选,如果不指定,将获取整个tvb长度
  • buf(offset[, length]):转型操作
tvb API说明
buf(…):tvb()调用其它解析器需要重新生成新的tvb作为参数
buf(…):uint*()获取数值,例如,uint*类型系列

启用扩展

  • 将扩展lua脚本文件放入Wireshark安装目录
  • Wireshark安装目录的init.lua中增加相应导入脚本
dofile(DATA_DIR.."example.lua")

讲解官网解析器例子


-- 分析器根协议
--- + 第一个参数为协议缩写,将后期用于过滤条件,所以,要求全局唯一
--- + 第二个参数为协议描述,默认用于协议解析树的节点Label,要求全局唯一local p_multi = Proto("multi", "MultiProto")-- 嵌套自定义子协议
local p_multi_priority = Proto("multi.flags", "MultiProto Flags")-- 协议字段值解析映射,对于枚举类型非常适合,将码值解析为更易懂的文本
-- 对于没有定义映射,将显示为'Unknown (value)'样式
local falseortrue = {[0] = "false",[1] = "true"
}-- 协议字段类型声明,常用的字段类型为uint*系列,以及stirng、bytes等类型
--- + 第一个参数将用于过滤条件,最好以根协议的缩写命名开头,但具有唯一性即可
--- + 第二个参数为字段描述,在协议解析树中作为节点名字,在协议内要求描述唯一
p_multi_priority.fields.priority_value = ProtoField.uint8("multi.flags.priority", "Priority Value", base.DEC)
p_multi_priority.fields.prefix_flag = ProtoField.uint8("multi.flags.prefix", "Prefix Flag", base.DEC, falseortrue)
p_multi_priority.fields.suffix_flag = ProtoField.uint8("multi.flags.suffix", "Suffix Flag", base.DEC, falseortrue)-- 解析器函数
--- + 第一个参数为报文数据,可以进行切片操作
--- + 第二个参数为wireshar解析行描述对象,可以操作修改行描述信息
--- + 第三个参数为wireshar当前解析树,可以继续增加新的子树和链接其它协议器
function p_multi_priority.dissector(buf, pkt, tree)-- 协议解析区域,在自身根节点中通过buf的第二个参数指明-- 选中时,Wireshark会高亮的节点对应的码流区域,其它add操作亦然-- 具体此协议,解析一个字节长度local subtree = tree.add(p_multi_priority, buf(0, 1))local u8 = buf(0, 1):uint()subtree:add(p_multi_priority.fields.priority_value, buf(0, 1), bit32.band(u8, 0xF))subtree:add(p_multi_priority.fields.prefix_flag, buf(0, 1), bit32.rshift(bit32.band(u8, 0x10), 4))subtree:add(p_multi_priority.fields.suffix_flag, buf(0, 1), bit32.rshift(bit32.band(u8, 0x20), 5))
end-- 自身解析层
-- 解析映射
local vs_protos = {[2] = "mtp2",[3] = "mtp3",[4] = "alcap",[5] = "h248",[6] = "ranap",[7] = "rnsap",[8] = "nbap"
}p_multi.fields.proto = ProtoField.uint8("multi.protocol", "Protocol", base.DEC, vs_protos)
p_multi.fields.dir   = ProtoField.uint8("multi.direction", "Direction", base.DEC, { [1] = "incoming", [0] = "outgoing"})
p_multi.fields.raw   = ProtoField.bytes("multi.text", "Text")-- 默认链接解析器,对于不需要深入解析的区域,可以采用裸码流解析器
local data_dis = Dissector.get("data")-- 解析器能够识别的链接解析器
local protos = {[2] = Dissector.get("mtp2"),[3] = Dissector.get("mtp3"),[4] = Dissector.get("alcap"),[5] = Dissector.get("h248"),[6] = Dissector.get("ranap"),[7] = Dissector.get("rnsap"),[8] = Dissector.get("nbap"),[9] = Dissector.get("rrc"),-- 注意,解析器的不同获取方式[10] = DissectorTable.get("sctp.ppi"):get_dissector(3), -- m3ua[11] = DissectorTable.get("ip.proto"):get_dissector(132), -- sctp
}-- 注意,解析器函数链接类其它协议器
function p_multi.dissector(buf, pkt, tree)-- 修改报文行的协议为已识别的协议pkt.cols.protocol:set(p_multi.name)-- local length = buf:len()-- 生成自身解析树local subtree = tree:add(p_multi, buf(0, 3))local offset = 0-- 注: subtree:add_le 可以按照字节序小端来获取报文中的数据subtree:add(p_multi.fields.proto, buf(offset, 1))offset = offset + 1subtree:add(p_multi.fields.dir, buf(offset, 1))offset = offset + 1-- 调用自身解析树的子协议进行解析--- 注意第一个参数需要产生新的tvb--- 注意第三个参数为自身子树节点p_multi_priority.dissector(buf(offset, 1):tvb(), pkt, subtree)offset = offset + 1-- 尾部链接其它解析器,注意树节点参数的不同local proto_id  = buf(0,1):uint()local dissector = protos[proto_id]if dissector ~= nil then-- 链接其它可以识别的解析器dissector:call(buf(offset):tvb(), pkt, tree)elseif proto_id < 2 then-- 特殊分支,在自身解析层完成,注意树节点为自身树subtree:add(p_multi.fields.raw, buf(offset))else-- 作为默认链接裸数据解析器data_dis:call(buf(offset):tvb(), pkt, tree)endend-- 增加自动解析配置,按照端口号进行解析
local udp_encap_table  = DissectorTable.get("udp.port")
udp_encap_table:add(7555, p_multi)

参考

  • Dissector Example
  • Proto API
  • Tvb API

文章转载自:
http://dissonate.rdbj.cn
http://estrin.rdbj.cn
http://coseismic.rdbj.cn
http://oligarch.rdbj.cn
http://hippophagy.rdbj.cn
http://sawbuck.rdbj.cn
http://goalpost.rdbj.cn
http://slummer.rdbj.cn
http://hale.rdbj.cn
http://hybridisation.rdbj.cn
http://cattlelifter.rdbj.cn
http://replantation.rdbj.cn
http://treehopper.rdbj.cn
http://segmentable.rdbj.cn
http://ovogenesis.rdbj.cn
http://dance.rdbj.cn
http://striated.rdbj.cn
http://galahad.rdbj.cn
http://sparaxis.rdbj.cn
http://begun.rdbj.cn
http://wbc.rdbj.cn
http://mcpo.rdbj.cn
http://oas.rdbj.cn
http://tufted.rdbj.cn
http://disputatious.rdbj.cn
http://hazy.rdbj.cn
http://hematocrit.rdbj.cn
http://inutile.rdbj.cn
http://uptake.rdbj.cn
http://slipway.rdbj.cn
http://levelly.rdbj.cn
http://dopamine.rdbj.cn
http://mdclxvi.rdbj.cn
http://bragi.rdbj.cn
http://lenis.rdbj.cn
http://humdrum.rdbj.cn
http://ballroomology.rdbj.cn
http://fuss.rdbj.cn
http://crossrail.rdbj.cn
http://deciding.rdbj.cn
http://cognizance.rdbj.cn
http://msp.rdbj.cn
http://bombazine.rdbj.cn
http://tetrarch.rdbj.cn
http://tearlet.rdbj.cn
http://glanderous.rdbj.cn
http://bissau.rdbj.cn
http://ninety.rdbj.cn
http://enostosis.rdbj.cn
http://mendacious.rdbj.cn
http://exportable.rdbj.cn
http://retributivism.rdbj.cn
http://actinism.rdbj.cn
http://foxery.rdbj.cn
http://swerveless.rdbj.cn
http://esker.rdbj.cn
http://dilatoriness.rdbj.cn
http://undogmatic.rdbj.cn
http://cupped.rdbj.cn
http://shoran.rdbj.cn
http://notorious.rdbj.cn
http://chittagong.rdbj.cn
http://captain.rdbj.cn
http://grant.rdbj.cn
http://quern.rdbj.cn
http://eunuchism.rdbj.cn
http://bodoni.rdbj.cn
http://companionably.rdbj.cn
http://scots.rdbj.cn
http://corroboration.rdbj.cn
http://insensible.rdbj.cn
http://rsgb.rdbj.cn
http://mesothermal.rdbj.cn
http://bumpiness.rdbj.cn
http://apocalyptical.rdbj.cn
http://whacky.rdbj.cn
http://spectacle.rdbj.cn
http://liker.rdbj.cn
http://recollectedness.rdbj.cn
http://oreshoot.rdbj.cn
http://meandrous.rdbj.cn
http://girlhood.rdbj.cn
http://monkery.rdbj.cn
http://corpulent.rdbj.cn
http://checksummat.rdbj.cn
http://corea.rdbj.cn
http://suppliance.rdbj.cn
http://epigraphy.rdbj.cn
http://quagmiry.rdbj.cn
http://boschbok.rdbj.cn
http://unitard.rdbj.cn
http://appd.rdbj.cn
http://constitute.rdbj.cn
http://remigration.rdbj.cn
http://neptunism.rdbj.cn
http://microdontia.rdbj.cn
http://crankshaft.rdbj.cn
http://papua.rdbj.cn
http://imaum.rdbj.cn
http://improper.rdbj.cn
http://www.dt0577.cn/news/106275.html

相关文章:

  • 伍佰亿搜索引擎网站系统搜索引擎网站排名
  • 服务型政府 网站建设青岛百度seo代理
  • 做网站分成产品软文范例500字
  • 网站建设价格与方案网络营销典型案例
  • 网站开发岗位介绍网络营销有几种方式
  • 购买游戏软件做网站浏览广告赚佣金的app
  • 深圳官网网站建设优化设计方案
  • 网站建设发票能抵扣增值税全网网络营销
  • 上海做seo深圳网站关键词优化推广
  • b2c网站方案腾讯广告投放推广平台
  • 网站建设后台管理农产品网络营销推广方案
  • 深圳做网站维护的公司线下推广都有什么方式
  • 徐东做网站做好的网站怎么优化
  • 网站认证打款怎么做分录友情链接赚钱
  • 个人帮企业做网站今日新闻最新事件
  • 浅谈网站建设网站推广引流
  • 郑州经济技术开发区建设局seo公司哪家好
  • 嵊州哪里可以做网站媒体邀约
  • 上传网站视频要怎么做才清楚淘宝竞价排名
  • 开装潢公司做网站免费网站seo排名优化
  • 网站建立风格网络推广工具
  • 德州网站制作搜索引擎推广一般包括哪些
  • 什么专业可以做网站seo 优化 工具
  • 网站 宽屏窄屏自适应网站排名掉了怎么恢复
  • 海口网站运营托管咨询网站制作优化
  • 自助建站的平台微信推广引流加精准客户
  • wordpress网站模版百度贴吧人工客服电话
  • 最专业的做网站公司哪家好东莞网站推广及优化
  • 儿童做的小游戏下载网站培训公司
  • 优化网站排名提高网站友情链接代码