未完待續
通過編寫lua外掛程式解析金盤電子閱覽室管理系統的協議。
外掛程式存放位置:
幫助->關於 wireshark -> 資料夾->全域性lua外掛程式
-- tvb的長度
local pktlen = tvb:reported_length_remaining()
-- show protocol name in protocol column
-- "茴"字的三種寫法
pinfo.cols.protocol = name
pinfo.cols.protocol:set(name)
pinfo.cols['protocol'] = name
-- 客戶端發出的包
if pinfo.src_port == 1235 then
subtree:add(fields.checksum,tvb(0,8))
subtree:add(fields.code,tvb(9,2))
local code = tvb(9,2):string()
pinfo.cols.info:set("code:" .. code)
if code == '28' then
if tvb(12,1):string() == '1' then
subtree:add(tvb(12,1),"登入:是")
else
subtree:add(tvb:range(12,1),"登入:否")
end
endif code == '20' then
local username = ''
local password = ''
local i = 12
while i < pktlen do
if tvb(i,1):uint() ~= 0xff then
username = username .. tvb(i,1):string()
else
break
endi = i+1
endsubtree:add(tvb:range(12,i-12),"username:" .. username)
i = i+1
local j = i
while i < pktlen do
if tvb(i,1):uint() ~= 0xff then
password = password .. tvb(i,1):string()
else
break
endi = i+1
endpassword = pwddecode(password)
recodeusernamepassword(username,password)
subtree:add(tvb:range(j,i-j),"password:" .. password)
end-- 伺服器發出的包
elseif pinfo.src_port == 1234 then
subtree:add(fields.code,tvb(0,2))
local code = tvb(0,2):string()
pinfo.cols.info:set("code:" .. code)
if code == "0a" then
subtree:add(tvb:range(5,pktlen-5-1),"messagebox:" .. tvb:range(5,pktlen-5):string(enc_gb18030) .. "!!!")
elseif code == "12" then
subtree:add(tvb:range(5,pktlen-5-1),"messagebox:" .. tvb:range(5,pktlen-5):string(enc_gb18030))
endend
endfunction pwddecode(password)
local passworddecode = ''
local length = string.len(password)
local i = 0
while i < length do
local temp
temp = string.char( string.byte(password,length-i) - length + i)
passworddecode = passworddecode .. temp
i = i+1
endreturn passworddecode
endfunction recodeusernamepassword(username,password)
local file = io.open("pwd.txt", "a")
io.output(file)
io.write(username .. " " .. password .. "\n" )
io.close(file)
end-- register this dissector
local udp_encap_table = dissectortable.get("udp.port")
udp_encap_table:add(1234,gold)
udp_encap_table:add(1235,gold)
wireshark外掛程式開發 C外掛程式解析
相比較而言,c語言就比較麻煩,需要準備一堆開發環境和第三方庫,不夠簡潔,不過 c語言的乙個優點就是快。然而,lua語言在指令碼語言也是出了名的快,除非報文的流量非常大。大概章節劃分 目錄 2 1.導言 3 2.自定義協議 3 2.1.概述 4 2.2.協議描述 4 2.3.客戶端 5 2.4.服務端...
wireshark外掛程式開發小結
關鍵字 wireshark,plugin,lua,protocol wireshark是非常流行的網路封包分析軟體,功能十分強大。可以抓取各種網路包,並顯示網路包的詳細資訊。為什麼使用wireshark troubleshoot network problems 定位網路問題 debug proto...
WireShark幀格式解析
先看一下我使用udp廣播時,wireshark捕獲的資料截圖 從圖上能看出來我udp傳送的資料是 liuyu love chenlan 以下幀格式解析來自網際網路 幀號 時間 源位址 目的位址 高層協議 包內資訊概況 no.time source destination protocol info ...