1 / 11
文档名称:

Wireshark解析自定义加密协议.docx

格式:docx   大小:89KB   页数:11页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Wireshark解析自定义加密协议.docx

上传人:pppccc8 2019/12/31 文件大小:89 KB

下载得到文件列表

Wireshark解析自定义加密协议.docx

相关文档

文档介绍

文档介绍:Wireshark解析自定义加密协议ByTerry2015年3月15日—\概述网上撰文写wireshark使用lua脚本解析协议的文章比较多。笔者最近也因工作需要使用wireshark解析协议。但因网络安全,协议的数据部分被加密了。无法简单的使用lua脚本进行解析。考虑到加密算法和压缩算法的复杂性,采用调用山aC库的方法,完成解密(解压)。下面与大家分享下大致思路。二、思路和目标协议的大致格式如下:协议字段命名协议版本(1字节)protoVersion协议命令类型(2字节)protoCmdType协议加密类型(1字节)protoEncrytionType协议压缩类型(1字节)pressionType协议数据长度(4字节)protoDataLength协议数据(protoDataLength字节)protoData:本文仅专注于解码,为简化复杂性,暂时不考虑一个UDP/TCP包出现多个自定义localf_protoEncrytionType=ProtoField・uint8("multi・protoEncrytionTypen/'EncrytionType",{="EncrytionType_lH,=,,EncrytionType_2,\="EncrytionType_3n,})pressionType=(nmulti•pressionType11,,{="CompressionType_lH,="CompressionType_2ll>="CompressionType_3lf})localf_protoDataLength=ProtoField・uint32("multi・protoDataLength","DataLength",)={f_protoVersion,f_protoCmdType^f_protoEncrytionType,pressionType,f_protoDataLength}functionDecodeBufferFunction(protoEncrytionType,pressionTypejbufjpos,buf_len)localdecodeBuf=buf--TODO:ThisarticaljobreturndecodeBufendfunctionp_multi•dissector(bufpkt,root)localpos=0localbuf_len=buf:len()localt二root:add(p_multi,buf(0,buf_len))--协议版本(1字节)t:add(f_protoVersion,buf(pos,1))pos=pos+1■■协议命令类型(2字节)t:add(f_protoCmdType,buf(pos,2))pos=pos+2--协议加密类型(1字节)t:add(f_protoEncrytionType,buf(pos,1))localprotoEncrytionType=buf(pos,1):uint()pos=pos+1--协议压缩类型(1字节)t:add(pressionType,buf(pos^1))pressionType=buf(pos^1):uint()pos=pos+1--协议数据长度(4字节)t:add(f_protoDataLengthybuf(pos,1))localprotoDataLength=buf(pos^4):uint()pos=pos+4--协议数据(protoDataLength字节)buf=DecodeBuffer(protoEncrytionType,pressionType,buf,pos,buf_len)new_buf_len二buf:len()--TODO:addyourcodeend本文的主要任务是DecodeBufferFunction的实现。目前的任务是把原始数据(buf)协议头加密数据变成(decodeBuf)协议头解密数据上图实际上就是原始buf和decodeBufo这里buf、decodeBuf均为Tvb(uTestyVirtualBuffed).另外,为操持两个buf在偏移上的一致,decodeBuf的头部也添加了“协议头”因而DecodeBufferFunction的任务有3个:由buf转换成luac库的数据结构Luac库完成解码,,如果我们知道Tvb的数据结构格式,可以省去第1、3步。三、Luac库的编写Luac库的开发可以参考相关资料。:hMD://luabinaries・Sou「e.