自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解使用Lua編寫Wireshark的Dissector插件

移動開發(fā) iOS
使用Lua編寫Wireshark的Dissector插件是本文要介紹的內(nèi)容,Dissector 插件可以用來對特定的協(xié)議內(nèi)容進(jìn)行分析展示,在分析自己實現(xiàn)的應(yīng)用層協(xié)議時還是很有用的。 dissector 插件一般用 C 來實現(xiàn)。

使用Lua編寫WiresharkDissector插件是本文要介紹的內(nèi)容,Dissector 插件可以用來對特定的協(xié)議內(nèi)容進(jìn)行分析展示,在分析自己實現(xiàn)的應(yīng)用層協(xié)議時還是很有用的。 dissector 插件一般用 C 來實現(xiàn),具體如何實現(xiàn)可以參考 Wireshark 代碼目錄下面的 \epan\dissectors 中的源代碼和 plugins 目錄下面的源代碼。

一些簡單的對性能要求不高的 dissector 插件也可以使用 Lua 來實現(xiàn)。 Wireshark 已經(jīng)嵌入了對 Lua 的支持。

下面就是一個簡單的例子:  

定義協(xié)議,可以在wireshark中使用trivial過濾

  1. trivial_proto = Proto("trivial","TRIVIAL","Trivial Protocol") 

dissector函數(shù)

  1. function trivial_proto.dissector(buffer,pinfo,tree) 

pinfo的成員可以參考用戶手冊

  1. pinfo.cols.protocol = "TRIVIAL" 
  2. pinfo.cols.info = "TRIVIAL data" 
  3. local subtree = tree:add(trivial_proto,buffer(),"Trivial Protocol") 

不對應(yīng)任何數(shù)據(jù)

  1. subtree:add(buffer(0,0),"Message Header: ") 

版本號對應(yīng)于***個字節(jié)

  1. subtree:add(buffer(0,1),"Version: " .. buffer(0,1):uint()) 

類型對應(yīng)于第二個字節(jié)

  1. type = buffer(1,1):uint()  
  2. type_str = "Unknown" 
  3. if type == 1 then  
  4.     type_str = "REQUEST" 
  5. elseif type == 2 then  
  6.     type_str = "RESPONSE" 
  7. end  
  8. subtree:add(buffer(1,1), "Type: " .. type_str) 

從第三個字節(jié)開始是數(shù)據(jù)

  1.     size = buffer:len()  
  2.     subtree:add(buffer(2,size-2), "Data: ")  
  3. end  
  4. tcp_table = DissectorTable.get("tcp.port") 

注冊到tcp的8888端口

  1. tcp_table:add(8888,trivial_proto) 

插件編寫完成后保持為 test.lua 文件,我們就可以抓包測試一下了。

首先請確認(rèn)你的 Wireshark 支持 lua ,如果 Wireshark 目錄下面有 init.lua 文件就說明支持 Lua 。其次需要啟動對 Lua 的支持,默認(rèn)不啟動對 Lua 的支持。編輯 init.lua 文件,注釋掉“ disable_lua = true; ”這一行,然后在文件的***添加一行 dofile("test.lua") ,這樣 Wireshark 啟動時就會自動調(diào)用 test.lua 。也可以在命令行指定需要執(zhí)行的腳本文件, 比如“ wireshark  -X lua_script:test.lua ”。

小結(jié):詳解使用Lua編寫WiresharkDissector插件的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對你有所幫助!

責(zé)任編輯:zhaolei 來源: 網(wǎng)絡(luò)轉(zhuǎn)載
相關(guān)推薦

2022-10-21 13:14:41

lua插件neovim

2011-06-27 16:59:19

Qt 動態(tài) 插件

2011-09-01 14:04:45

QT Webkit插件

2013-09-10 09:54:50

2014-04-25 09:02:17

LuaLua優(yōu)化Lua代碼

2011-08-23 09:56:52

UnicodeLua

2011-08-31 16:30:19

Lua多線程

2010-05-21 17:51:52

VS2008的SVN插

2011-04-06 16:02:26

Nagios插件

2011-03-28 11:20:11

Nagios 插件

2011-06-27 17:24:37

Qt 插件

2015-05-07 14:45:40

Cocos 插件

2021-01-12 06:42:50

Lua腳本語言編程語言

2021-04-13 09:15:16

C++插件Nodejs

2011-09-06 17:45:14

LUA開發(fā)環(huán)境Decoda

2021-01-15 05:19:08

wireshark軟件網(wǎng)絡(luò)

2020-03-12 14:18:06

UbuntuWireshark命令

2023-10-27 08:59:00

網(wǎng)絡(luò)wiresharkIO

2014-11-19 09:15:35

2011-06-16 13:23:35

Qt 模塊化 插件式
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號