lua语言在wireshark中的使用浅析
最近项目中使用了一直没接触过的wireshark,从基本的使用到过滤条件的书写,数据的获取查看一步步的都要学习。一直很好奇过滤条件是怎么实现的,借助于api和一些博客的介绍,自己也简单写了个条件过滤的脚本。网上的博客介绍的也比较少,在这里对网上自己不易搜到的一些知识做个总结,分享给需要的朋友。
- wireshark要使用自己编写的脚本首先要在wireshark的安装文件下的init.lua脚本里把这个脚本添加进去。
- 定义一个协议。
- 实现协议的内容。
- 注册协议的端口。
具体的实现步骤网上有很多,在这里就不写了。下面主要记录在自己编写脚本的过程不容易找到的东西。
1)buffer(1,1):uint()
buffoer()后面的unit()方法是把字节转化为无符号整型的值。buffer(a,b)方法第二个参数b不能大于4,因为是int取值。如果要超过4位可以使用uint64()。由于没注意 到这个细节,在这里折腾了好长时间没找到错误。
2) buffer(a,b):string()
buffer()后面的string()可以把获得的字节转化为string类型的字符串。
3) string.format("%d",buffer(44,4):uint())
这行代码实现的功能是从第44位开始读取4个字节长度的值,转化为十进制的整形。使用了string.format()的格式化