利用Wireshark加Lua分析专有网络协议

实战过程:

1.安装wireshark、lua。2.利用lua为wirashark写一个协议的dissector,并部署到lua上。 2.1 参照中的例子,进行修改。其中要注意的一点是TCP协议中的粘包现象(如果是UDP则不考虑)。 解决这点的关键是在dissector(buffer, pinfo, tree)函数中设置好以下两个属性(具体含义参见wireshark文档)。pinfo.desegment_len pinfo.desegment_offset 2.2 把编辑好的lua文件(比如说文件名为ProprietaryProtocol.lua)放到wireshark的安装目录。 2.3 在wireshark安装目录的init.lua文件中,增加一行,内容为dofile(DATA_DIR.."ProprietaryProtocol.lua")。3.启动wireshark、启动专有程序。之后就可以在wireshark中监听并分析专有协议的数据包了。另外,关于监听127.0.0.1地址,有两个坑要注意避开:1.wireshark是监听不了127.0.0.1地址的(原因见wireshark官网)。2.即使你把程序的远程IP地址修改为本地的IP地址(就是在ipconfig中看到的地址),有的通信底层库仍然会自动与127.0.0.1建立连接。避开的一种方式是借助于rawcap软件。基本步骤为:1.下载rawcap(可搜索官网下载)。2.在window下的cmd中进行"rawcap.exe 127.0.0.1 capture.cap"。其中capture.cap是用于dump数据包的文件名。3.运行自己的专有程序。之后rawcap就会把在127.0.0.1地址上监听到的数据包记录到capture.cap文件。以上步骤运行结束后,关闭rawcap,在wireshark中打开capture.cap文件,就可以进行分析数据包了。当然,借助于rawcap后,就只能进行离线分析。

下面是运行截图,其中红框内的部分都是专有协议的内容。各个字段都解析了出来,,看起来还是很爽的。

人之相识,贵在相知;人之相知,贵在知心。

利用Wireshark加Lua分析专有网络协议

相关文章:

你感兴趣的文章:

标签云: