2023年7月3日发(作者:)
抓包⼯具Wireshark⾃定义协议解析lua脚本因为游戏中通信⽤的是⾃定义的基于tcp的协议,原始数据都是⼆进制的,⽤这个解析后更⽅便抓包时查看。使⽤⽅法:
1.保存为并复制到 X:Program Files (x86)Wireshark
2.打开 X:Program Files (x86)
在末尾添加
dofile("")
3.重新打开wireshark,在过滤器框输⼊mygame回车,即可过滤mygame协议。
-- game protocol over tcp dissector for wiresharkdolocal PROTO_MYGAME = Proto("MYGAME", "MYGAME Game Over Tcp")-- headerlocal f_mygame_version = 8("n", "Version", )local f_mygame_compress_flag = 8("ssFlag", "CompressFlag", )local f_mygame_pkgsign = 8("n", "PkgSign", )local f_mygame_length = 16("", "Length", )-- bodylocal f_mygame_msgtype = 16("e", "MsgType", ,
{[3000] = "MSG_KICK",[3001] = "MSG_CHAT",[3002] = "MSG_PAY",})PROTO_ = {f_mygame_version, f_mygame_compress_flag, f_mygame_pkgsign, f_mygame_length,f_mygame_msgtype}local data_dis = ("data")-- MYGAME Dissector Functionlocal function mygame_dissector(buf, pkt, root)local buf_len = buf:len()if buf_len < 7 thenreturn ol = "MYGAME" = "MYGAME Game Over Tcp"local t = root:add(PROTO_MYGAME, buf(0, 7))t:add(f_mygame_version, buf(0,1))t:add(f_mygame_compress_flag, buf(1,1))t:add(f_mygame_pkgsign, buf(2,1))t:add_le(f_mygame_length, buf(3,2))t:add_le(f_mygame_msgtype, buf(5,2))if buf_len > 7 thenlocal data_len = buf:len() - 7;local d = root:add(buf(7, data_len), "Data")d:append_text("("..data_len.." bytes)")d:add(buf(7, data_len), "Data:")d:add(buf(7, 0), "[Length:"..data_len.."]")endreturn trueendfunction PROTO_tor(buf, pkt, root)if mygame_dissector(buf, pkt, root) then-- validelsedata_dis:call(buf, pkt, root)endendlocal tcp_encap_table = ("")tcp_encap_table:add(9020, PROTO_MYGAME)end
发布者:admin,转转请注明出处:http://www.yc00.com/web/1688339806a123090.html
评论列表(0条)