参见: https://yoursunny.com/study/IS409/ScoreBoard.htm https://wiki.wireshark.org/LuaAPI/TreeItem https://www.cnblogs.com/zzqcn/p/4840589.html foo.lua --https://www.cnblogs.com/zzqcn/p/4840589.html-- @brief Foo Protocol dissector plugin-- @author zzq--…
一.背景 最近在做物联网流量分析时发现, App在使用MQTT协议时往往通过SSL+WebSocket+MQTT这种方式与服务器通信,在使用SSL中间人截获数据后,Wireshark不能自动解析出MQTT语义,只能解析到WebSocket层,如图所示.虽然在Data域中显示了去掉mask的WebSocket数据,但分析起来mqtt仍然很难受.所以打算写一个插件,利用wireshark自带的MQTT解析功能来分析Data部分的数据,而不是自己从头写一个完全新的解析器.注:很多教程是教如何添加一个新…
前段时间写了一个局域网音视频通话的程序,使用开源 KCP 来实现可靠UDP传输. 通过研究发现KCP在发包时,会在数据包前面加上它自己的头.如果数据包较小,KCP可能会把多个数据包合成一个包发送,提高效率. 如下图所示. kcp udp 包结构 28 bytes 4 bytes 4 bytes len1 28 bytes 4 bytes 4 bytes len2├────────────┼────────┬────────┼────────┼────────────┼────────┬─────…
一.平台 操作系统:windows 7 wireshark:1.10.3 lua:5.1 二.准备 lua 语言基本语法,特别是关于表操作和循环 wireshark 文档,包括用户使用文档和开发者文档,这些在 wireshark 官方网站都能找到 三.开始 我们首先定义一个简单的协议,我们使用 C 语言的语法描述, struct foo { ]; /* request response notify */ ]; /* 我们定义的各种服务类型 */ unsigned int msg_len; /*…
Wireshark插件编写 在抓包的过程中学习了使用wireshark,同时发现wireshark可以进行加载插件,便在网上学习了一下相应的插件开发技术. 需求编写一个私有协议名为SYC,使用UDP端口9877进行传输,报文结构如下: Type Flag Sequence number IP Address Data 编写Wireshark插件,使Wireshark可以识别出SYC协议. 实现首先构造产生SYC协议报文的程序:数据结构: 初始化: 默认向119.75.217.109(baidu.…
1.版权声明 本系列文章是本人花了很多心血写成,wireshark本是开源软件,本人也乐于技术知识和经验的分享,更是欣赏和推崇开源精神,因此任何看到本文的人都可以随意转载,但只有一个要求: 在大段甚至全文引用本系列文章内容的情况下,需要保留本人网名(赵子清)和本博客地址的全部或一部分(http://www.cnblogs.com/zzqcn). 2.引言 Wireshark是一款优秀的开源协议分析软件,多年来,全球无数开发者为Wireshark编写了数千种协议的解析插件(版本1.12.6已有15…
  lonelycastle做uTP的实验,使用wireshark捕包,但是最初没有找到wireshark下的uTP的dissector,每次都需要比对文档,这样做实验理解报文含义,效率非常低.作为程序猿就想写一个uTP的dissector来实现这些工作.说干就干,查了一下发现wireshark可以使用lua来实现dissector,这样就简单过了,不用编写C的dissector了.本身是lua盲,又不了解wireshark的dissector开发,中间遇到了很多问题,还好逻辑比较简单,折腾了一…
Wireshark Lua: 一个从RTP抓包里导出H.264 Payload,变成264裸码流文件(xxx.264)的Wireshark插件 在win7-64, wireshark Version 2.0.2 (v2.0.2-0-ga16e22e from master-2.0)是可用的,老版本1.0.x未找到对应的tools选项卡…
目录 前言 定义插件 使用插件 获取自定义选项 小结 推荐阅读 前言 上篇文章<Go - 如何编写 ProtoBuf 插件 (一) >,分享了使用 proto3 的 自定义选项 可以实现插件的编写,说到基于 MethodOptions 和 ServiceOptions 选项去实现 method 和 service 自定义设置拦截器. 接上篇文章,继续分享. 定义插件 // plugin/interceptor/options/interceptor.proto syntax = "p…
目录 前言 演示代码 小结 推荐阅读 前言 上篇文章<Go - 如何编写 ProtoBuf 插件 (二) >,分享了基于 自定义选项 定义了 interceptor 插件,然后在 helloworld.proto 中使用了插件,最后在 golang 代码中获取到使用的插件信息. 接上篇,继续分享. 既然获取到了插件信息,我们就可以使用它们.本文主要分享在 grpc.ServerOption 中的 grpc.UnaryInterceptor 中使用. 演示代码 还是以上篇文章中 hellowor…