Wireshark LUA脚本分析自定义帧格式

Wireshark LUA脚本分析自定义帧格式

1. 帧格式

​ 该帧格式由课设要求引出,本次课设要求在eth0网络接口与Linux内核TCP/IP间串接一个虚拟网络接口vni0,如下图所示:
Wireshark LUA脚本分析自定义帧格式_第1张图片
​ 此报文格式修改为下图所示:
Wireshark LUA脚本分析自定义帧格式_第2张图片

  • 以太帧头部:

    ​ 目的MAC地址(6字节) = 广播MAC地址;

    ​ 源MAC地址(6字节) = 发送方eth0的MAC地址;

    ​ 类型(2字节) = 0xF4F0(即VNI的协议编号);

  • VNI头部:

    ​ VNI类型(4字节) = 学号后4位数,每个数1个字节;

    ​ 分组序号(2字节),初始值为0。

2. 编写LUA脚本

第一步:创建解析器对象

local NAME = "VNI"
local VniProto = Proto(NAME, "VNI PROTOCOL")

第二步:声明协议字段:

-- C语言中自定义VNI协议头部结构体
-- struct vnihdr
-- {
   
	-- char id[4];
	-- unsigned short seq;
-- };
-- 声明协议的字段
local fields = VniProto.fields
fields.id_0 = ProtoField.uint8(NAME .. "ID", "id[0]", base.HEX) 
fields.id_1 = ProtoField.uint8(NAME .. "ID", "id[1]", base.HEX) 
fields.id_2 = ProtoField.uint8(NAME .. "ID", "id[2]", base.HEX) 
fields.id_3 

你可能感兴趣的:(lua,wireshark,开发语言)