请教大家关于wireshark添加lua自定义规则解析模块的问题
来源:互联网 发布:软件开发工作流 编辑:程序博客网 时间:2024/06/06 09:00
我的lua代码如下所示,打开wireshar直接死掉。。希望大家忙我看看哪里有问题,谢谢。
do
--[[创建一个新的协议结构 foo_proto
第一个参数是协议名称会体现在过滤器中
第二个参数是协议的描述信息,无关紧要
--]]
local sf_app = Proto("SFAPP", "SIFANG Protocol, reserved by www.sf-auto.com")
--[[
下面定义字段
--]]
local pf_maintype = ProtoField.uint8("sfcan.maintype", "MainType", base.NONE)
local pf_subtype = ProtoField.uint8("sfcan.subtype", "SubType", base.NONE)
local pf_devtype = ProtoField.uint8("sfcan.devtype", "DevType", base.NONE)
local pf_framecnt = ProtoField.uint8("sfcan.framecnt", "FrameCnt", base.NONE)
local pf_framesn = ProtoField.uint16("sfcan.framesn", "FrameSn", base.NONE)
local pf_appdatalen = ProtoField.uint16("sfcan.appdatalen", "AppDataLen", base.NONE)
local pf_appdata = ProtoField.string("sfcan.appdata", "AppData", base.NONE)
local pf_appdatacrc = ProtoField.uint8("sfcan.appdatacrc", "APPDataCrc", base.NONE)
-- 将字段添加都协议中
sf_app.fields = {
pf_maintype,
pf_subtype,
pf_devtype,
pf_framecnt,
pf_framesn,
pf_appdatalen,
pf_appdata,
pf_appdatacrc
}
--[[
下面定义 foo 解析器的主函数,这个函数由 wireshark调用
第一个参数是 Tvb 类型,表示的是需要此解析器解析的数据
第二个参数是 Pinfo 类型,是协议解析树上的信息,包括 UI 上的显示
第三个参数是 TreeItem 类型,表示上一级解析树
--]]
function sf_app.dissector(tvb, pinfo, tree)
-- 设置一些 UI 上面的信息
pinfo.cols.protocol:set("SFAPP")
pinfo.cols.info:set("SFAPP Protocol")
local offset = 0
local datalen = 0
local buf_len = tvb:len()
-- 在上一级解析树上创建 foo 的根节点
local root = treeitem:add(sf_app, tvb:range(offset))
-- 下面是想该根节点上添加子节点,也就是自定义协议的各个字段
-- 注意 range 这个方法的两个参数的意义,第一个表示此时的偏移量
-- 第二个参数代表的是字段占用数据的长度
root:add(pf_maintype, tvb:range(offset, 1))
offset = offset+1
root:add(pf_subtype, tvb:range(offset, 1))
offset = offset+1
root:add(pf_devtype, tvb:range(offset, 1))
offset = offset+1
root:add(pf_framecnt, tvb:range(offset, 1))
offset = offset+1
root:add(pf_framesn, tvb:range(offset, 2))
offset = offset+2
root:add(pf_appdatalen, tvb:range(offset, 2))
offset = offset+2
-- 计算消息内容的长度
local sfapp_content_len = tvb:range(6, 2):uint()
root:add(pf_appdata, tvb:range(offset, sfapp_content_len))
offset = offset+sfapp_content_len
root:add(pf_appdatacrc, tvb:range(offset, 1))
offset = offset+1
end
-- 向 wireshark 注册协议插件被调用的条件
local eth_table = DissectorTable.get("ethertype")
eth_table:add(16640, sf_app)
end
0 0
- 请教大家关于wireshark添加lua自定义规则解析模块的问题
- 请教大家一个关于.NET 的另外一个问题
- wireshark 使用lua解析自定义包
- 大家好!请教大家一个问题!关于日文编译的问题!
- 请教 关于五子棋遇到的问题 如何添加菜单
- 请教大家一上问.关于定义冲突的!
- 请教大家,关于vector 的访问?
- 请教大家一个JAVA WEB 的问题
- WCF奇怪的问题,请教大家?
- 请教大家一个软件的问题
- 请教大家一个问题
- 请教大家一个关于.NET的中一段代码的很简单的问题
- 用lua为wireshark开发的一个smpp+自定义解析插件
- 请教关于数字滤波器的问题
- 请教关于VS2005的问题
- wireshark解析自定义通信协议插件之Lua实现
- 抓包工具Wireshark自定义协议解析lua脚本
- 向大家请教一个问题
- 简单内存溢出分析
- ORB算法分析
- Android抽象布局——include、merge 、ViewStub
- linux中的前台任务、后台任务和守护进程
- 使用Java构建微服务
- 请教大家关于wireshark添加lua自定义规则解析模块的问题
- PHP 单一入口
- HDU 1434 幸福列车 (附优先队列讲解)
- 58.The PART_CODE column in the SPARES table contains the following list of values:
- 网卡接口相关定义
- Leetcode:237. Delete Node in a Linked List(JAVA)
- 用户管理系统——添加用户
- 《Android开发精要》读书笔记——Android的系统架构
- openGL之深度测试、表面剔除、剪裁---openGL学习笔记(五)