wireshark protobuf插件开发(ubuntu)

本文介绍了如何使用lua脚本开发Wireshark插件,解析protobuf编码的数据包。通过创建插件识别数据包,提取协议字段,并使用lua-protobuf库解析protobuf数据,提供了一种在Ubuntu环境下高效解析protobuf的方法。
摘要由CSDN通过智能技术生成

前言

protobuf是google团队开发的用于高效存储和读取结构化数据的工具。相比于json和xml,protobuf会把数据压缩得更小,大约是json格式的1/10,xml格式的1/20。正因如此,protobuf编码后的数据,不能像json、xml那样直观地呈现数据。本文将介绍如何解析利用wireshark自定义插件,解析protobuf数据包。

概要

wireshark的插件可以使用c或是lua脚本进行开发,考虑到灵活性,推荐使用lua脚本。

我理解wireshark插件的执行过程就是用插件去解析每一个数据包,解析过程中如果出错,则继续由其他插件尝试解析;如果解析正确,则表示由该协议解析并显示结果。

值得注意的是,当插件只处理了部分数据时,未处理部分的数据切片要继续交由其他插件尝试解析。例如一个基于TCP协议的RTSP数据包依次由Ethernet、Internet、TCP、RTSP插件解析,Ethernet协议解析该数据包的0 - 13byte,Internet协议解析该数据包的14 - 33byte,TCP协议解析了34 - 65byte,RTSP协议解析剩余的274 byte,至此数据包解析完成。
在这里插入图片描述

1.环境准备

1.1.安装wireshark

#环境是ubuntu 64位,windows开发笔者比较弱鸡

    $sudo apt-get update
    $sudo apt-get install wireshark

1.2 安装lua-protobuf支持库

wireshark中lua版本是5.2,所以需要先安装lua5.2

    $sudo apt-get update
    $sudo apt=get install lua5.2

克隆lua-protobuf项目并编译

	$git clone https://github.com/starwing/lua-protobuf.git
    $gcc -O2 -fPIC -I/usr/include/lua5.2 -c pb.c -o pb.o
    $gcc -shared -o pb.so -L/usr/local/lib pb.o

2.创建wireshark插件

我们通过一个例子来说明如何创建一个插件:

数据端口:7200
数据格式:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值