国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

做網(wǎng)站廣告收入會(huì)員卡營(yíng)銷策劃方案

做網(wǎng)站廣告收入,會(huì)員卡營(yíng)銷策劃方案,武漢企業(yè)做網(wǎng)站找哪家好,鄭州航海路網(wǎng)站建設(shè)文章目錄 Wireshark Protobuf Lua-dissectorStep 1: 獲取 WiresharkStep 2: 配置ProtoBuf相關(guān)設(shè)置添加ProtoBuf查找路徑 Step 3 運(yùn)行和調(diào)試Lua代碼1. 添加Lua腳本2. 運(yùn)行和調(diào)試 Step 4: 寫Lua Dissector代碼 :)Step 5(Optional): Decode AsGithub工程地址 Wireshark Protobuf L…

文章目錄

  • Wireshark Protobuf Lua-dissector
    • Step 1: 獲取 Wireshark
    • Step 2: 配置ProtoBuf相關(guān)設(shè)置
      • 添加ProtoBuf查找路徑
    • Step 3 運(yùn)行和調(diào)試Lua代碼
      • 1. 添加Lua腳本
      • 2. 運(yùn)行和調(diào)試
    • Step 4: 寫Lua Dissector代碼 :)
    • Step 5(Optional): Decode As
    • Github工程地址

Wireshark Protobuf Lua-dissector

最近工作中遇到需要Wireshark抓包排查項(xiàng)目網(wǎng)絡(luò)庫(kù)的問(wèn)題,并且需要用ProtoBuf協(xié)議解析抓到的二進(jìn)制數(shù)據(jù)。網(wǎng)絡(luò)上查了一圈都沒(méi)有找到簡(jiǎn)單明了的教程能讓我快速上手的,就搞了這個(gè)教程,幫自己紀(jì)錄的同時(shí)也希望能幫到遇到同樣問(wèn)題的你。

這個(gè)教程專注于幫你寫Lua插件幫你解析Wireshark中的ProtoBuf包,請(qǐng)確保已經(jīng)掌握基礎(chǔ)的Wireshark使用方法。如果還沒(méi)掌握,網(wǎng)上有很多教學(xué),很快就可以上手了!

Step 1: 獲取 Wireshark

直接從 官網(wǎng) 下載。

Step 2: 配置ProtoBuf相關(guān)設(shè)置

添加ProtoBuf查找路徑

顧名思義,告訴Wireshark去哪里查詢你的.proto文件。我把我的所有(其實(shí)就一個(gè)).proto文件都放到了同一個(gè)文件夾里,然后添加到Wireshark里即可。

在版本 4.2.3中, 你可以通過(guò)一下方法配置ProtoBuf查找路徑:

Edit -> Preferences,接著在左側(cè)菜單中找到并展開(kāi)Protocols標(biāo)簽,然后找到Protobuf并打開(kāi)對(duì)應(yīng)頁(yè)面,就會(huì)得到以下的界面:

添加Proto文件路徑

然后點(diǎn)擊 “Protobuf search paths” 旁邊的Edit按鈕打開(kāi)新窗口:

設(shè)置Proto文件路徑

我把所有.proto文件都放一起了,也沒(méi)有其他外部引用,所以我只添加了一個(gè)文件夾路徑就OK啦。

Step 3 運(yùn)行和調(diào)試Lua代碼

1. 添加Lua腳本

創(chuàng)建并將我們自己寫的Lua腳本放到指定文件夾中,Wireshark才能識(shí)別到我們的Lua腳本:

Help -> About Wireshark

插件路徑

點(diǎn)擊Folder頁(yè)簽,雙擊Personal Lua Plugins路徑打開(kāi)文件夾,并將我們寫好的腳本放入其中。

為了測(cè)試方便,我們現(xiàn)在只需要寫一行簡(jiǎn)單的打印即可:

print("Hello World")

2. 運(yùn)行和調(diào)試

成功將Lua腳本放到對(duì)應(yīng)文件夾后,Wireshark會(huì)在每次啟動(dòng)的時(shí)候都運(yùn)行一下你的腳本。你可以打開(kāi)Lua控制臺(tái)窗口看看腳本運(yùn)行的結(jié)果。

打開(kāi)控制臺(tái)很簡(jiǎn)單,點(diǎn)擊 Tools -> Lua Console

在這里插入圖片描述

上半部分的文本輸入框是可以實(shí)時(shí)輸入并且運(yùn)行的Lua代碼,我們這里用不到先不管它。重點(diǎn)放在下半部的輸出窗口,可以看到我們腳本運(yùn)行的結(jié)果已經(jīng)打印出來(lái)了。

不過(guò)我們不希望每次改了代碼還要重新運(yùn)行Wireshark怎么辦呢?Wireshark提供了重載Lua腳本的功能,可以在 Analysis -> Reload Lua Plugins 中找到,或者直接點(diǎn)擊快捷鍵 Ctrl+Shift+L

需要注意的是,重載Lua腳本之后,Wireshark會(huì)在已經(jīng)捕獲的每個(gè)包上重新跑一遍我們的Lua腳本。如果你此時(shí)已經(jīng)捕獲了大量的包,那么重載可能會(huì)消耗不少的時(shí)間。

Step 4: 寫Lua Dissector代碼 😃

到這步為止,所有的配置都已經(jīng)完成,只需用Lua實(shí)現(xiàn)我們的ProtoBuf Dissector即可。

在我們寫之前還有一些很有用的參考資料:

  1. Wireshark有Lua APIs的文檔在這里。

  2. 還有兩個(gè)很好的簡(jiǎn)單教程在這里和那里。

以下的代碼示例是在我綜合了上面的內(nèi)容之后,摘掉非必要的代碼而實(shí)現(xiàn)的一個(gè)極簡(jiǎn)的Lua Dissector。不過(guò)也存在過(guò)于精簡(jiǎn)而不符合實(shí)際運(yùn)用的需要,這個(gè)就需要使用者根據(jù)自己的實(shí)際需求和協(xié)議設(shè)計(jì)去修改代碼了。

--獲取Wireshark庫(kù)里現(xiàn)成的ProtoBuf解析器
local protobuf_dissector = Dissector.get("protobuf");--Proto類可以拿來(lái)實(shí)現(xiàn)自己的解析器
--不過(guò)我這里只用來(lái)幫我注冊(cè)上Wireshark的回調(diào)
--然后需要實(shí)際解析ProtoBuf的時(shí)候,我會(huì)調(diào)用上面獲取到的官方解析器
--@param myProto 名字
--@param "My Proto" 描述
local my_proto = Proto("MyProto", "My Proto");---Wireshark會(huì)在每個(gè)包上調(diào)用這個(gè)預(yù)設(shè)函數(shù)
---@param tvb table 一個(gè)輔助操作讀取到的二進(jìn)制流的類對(duì)象
---@param pinfo table 儲(chǔ)存了包體信息的類對(duì)象
---@param tree table GUI上展示信息用的根節(jié)點(diǎn)
-- 我的數(shù)據(jù)流會(huì)截取到的數(shù)據(jù)格式如下:(因項(xiàng)目而異)
-- [Header][Message Data]
-- Header: [2 bytes length]
my_proto.dissector = function(tvb, pinfo, tree)if tvb:captured_len() == 0 then return end;if pinfo.port_type == 2 then --TCPpinfo.columns.columns.protocol:set(my_proto.name);--創(chuàng)建一個(gè)新的UI節(jié)點(diǎn)來(lái)展示我們ProtoBuf解析的數(shù)據(jù),當(dāng)然也可以不創(chuàng)建新節(jié)點(diǎn),直接展示在tree上local subtree = tree:add(my_proto, tvb());local offset = 0;local length = tvb(0, 2):le_uint(); --[2 bytes length]local data_len = length - 2; --計(jì)算實(shí)際的數(shù)據(jù)長(zhǎng)度offset = offset + 2;--這行很關(guān)鍵,官方的解析器會(huì)根據(jù)這個(gè)字段去.proto文件里找對(duì)應(yīng)的協(xié)議去解析pinfo.private["pb_msg_type"] = "message,myProto.Message";pcall(Dissector.call, protobuf_dissector, tvb(offset, data_len), pinfo, subtree);end
end--將我的Proto類對(duì)象注冊(cè)到TCP端口上
--要注意的是,當(dāng)你還不清楚實(shí)際發(fā)生的端口號(hào)時(shí),先填0,后續(xù)再配置即可(具體配置方法看下一部分"Decode As")
DissectorTable.get("tcp.port"):add(0, my_proto);

Step 5(Optional): Decode As

當(dāng)你需要?jiǎng)討B(tài)調(diào)整Tcp端口時(shí),可以在以下的菜單中手動(dòng)配置:

Analyze -> Decode As

手動(dòng)綁定端口

點(diǎn)擊"+"號(hào)添加新的一行,字段選"TCP port"然后填入實(shí)際端口號(hào),最后在Current下拉框中,找到我們剛剛添加的"MYPROTO"解析器后單擊選擇。

最后點(diǎn)擊保存就配置完成啦!

PS:如果你的代碼無(wú)誤,又看不到你的解析器,請(qǐng)檢查一下你是不是沒(méi)有重載Lua代碼。

Github工程地址

源碼和教程我都有上傳到Github,有需要的同學(xué)可以自行上去取源碼
https://github.com/Kayn-Liu/WiresharkProtoBufDissectorLua.git

http://aloenet.com.cn/news/38536.html

相關(guān)文章:

  • 做視頻找空鏡頭那個(gè)網(wǎng)站比較全seo優(yōu)化有百度系和什么
  • 電子商務(wù)網(wǎng)站建設(shè)的技術(shù)綜述論文優(yōu)化排名 生客seo
  • 安卓開(kāi)發(fā)培訓(xùn)北京百度推廣優(yōu)化
  • 做封面的地圖網(wǎng)站app推廣是什么意思
  • 微信知彼網(wǎng)絡(luò)網(wǎng)站建設(shè)電商網(wǎng)站開(kāi)發(fā)平臺(tái)
  • 深圳市寶安區(qū)怎么樣seo網(wǎng)站推廣的主要目的是什么
  • 鄭州鞏義網(wǎng)站建設(shè)全國(guó)人大常委會(huì)委員長(zhǎng)
  • 網(wǎng)站備案截圖網(wǎng)站收錄免費(fèi)咨詢
  • 克隆網(wǎng)站后怎么做查詢關(guān)鍵詞網(wǎng)站
  • 銀川app購(gòu)物網(wǎng)站制作公司西安網(wǎng)站搭建公司
  • 專業(yè)網(wǎng)站設(shè)計(jì)公司哪家好百度投訴中心人工電話號(hào)碼
  • .net網(wǎng)站開(kāi)發(fā)實(shí)例臨沂seo代理商
  • 做黃色網(wǎng)站被抓了怎么處理公司培訓(xùn)課程有哪些
  • 天龍八部私服怎么做網(wǎng)站百度風(fēng)云排行榜
  • 蘇州做網(wǎng)站推廣哪家好網(wǎng)絡(luò)營(yíng)銷策劃書(shū)論文
  • 專做動(dòng)漫av的網(wǎng)站市場(chǎng)營(yíng)銷
  • 網(wǎng)站建設(shè)方向百度搜索風(fēng)云榜總榜
  • 廣州企業(yè)推廣seo工資待遇 seo工資多少
  • 有沒(méi)有做維修的網(wǎng)站哪有免費(fèi)的網(wǎng)站
  • 網(wǎng)站收縮欄免費(fèi)自助建站網(wǎng)站
  • 手機(jī)站建網(wǎng)站免費(fèi)
  • 有什么做兼職的網(wǎng)站關(guān)鍵詞長(zhǎng)尾詞優(yōu)化
  • 下載簡(jiǎn)歷模板免費(fèi)百度系優(yōu)化
  • html5效果網(wǎng)站做一個(gè)網(wǎng)站要花多少錢
  • 群站優(yōu)化之鏈輪模式制作網(wǎng)站要花多少錢
  • 做網(wǎng)站要用到數(shù)據(jù)庫(kù)嗎新東方考研班收費(fèi)價(jià)格表
  • 廣州低價(jià)網(wǎng)站建設(shè)黃頁(yè)88
  • 有了域名和空間怎么做網(wǎng)站市場(chǎng)營(yíng)銷的策劃方案
  • 網(wǎng)站建設(shè)術(shù)語(yǔ)解釋在線crm
  • 規(guī)避電子政務(wù)門戶網(wǎng)站建設(shè)的教訓(xùn)優(yōu)秀網(wǎng)頁(yè)設(shè)計(jì)賞析