सबसे पहले, मैं पूरी तरह से लुआ के लिए नया हूं, और यह वायरसहार्क विच्छेदन लिखने का मेरा पहला प्रयास है।लुआ में वायरसहार्क डिसेक्टर
मेरा प्रोटोकॉल सरल है - एक 2 बाइट लंबाई फ़ील्ड, उसके बाद उस लंबाई की एक स्ट्रिंग के बाद।
जब मैं लुआ कंसोल के माध्यम से कोड चलाता हूं, तो सब कुछ अपेक्षित काम करता है।
कोड Wireshark प्लगइन्स निर्देशिका के लिए जोड़ा जाता है, मैं त्रुटि
Lua Error: [string "C:\Users...\AppData\Roaming\Wireshark..."]:15: calling 'add' on bad self (number expected, got string)
रेखा 15 मेल खाती मिल t:add(f_text...
लाइन है।
क्या कोई निष्पादन विधियों के बीच विसंगति को समझा सकता है?
do
local p_multi = Proto("aggregator","Aggregator");
local f_len = ProtoField.int16("aggregator.length","Length",base.DEC)
local f_text = ProtoField.string("aggregator.text","Text")
p_multi.fields = { f_len, f_text }
local data_dis = Dissector.get("data")
function p_multi.dissector(buf,pkt,root)
pkt.cols.protocol = "Aggregator"
local len = buf(0,2):int()
local t = root:add(p_multi,buf(0,len+2))
t:add(f_len,buf(0,2),"Length: " .. buf(0,2):int())
t:add(f_text,buf(2,len),"Text: " .. buf(2,len):string())
end
local tcp_encap_table = DissectorTable.get("tcp.port")
tcp_encap_table:add(4321,p_multi)
end
मुझे लगता है कि मैंने http: //www.wireshark का उपयोग किया है प्रेरणा के लिए .org/docs/wsug_html_chunked/wslua_dissector_example.html और http://wiki.wireshark.org/Lua/Dissectors। क्या एपीआई दस्तावेज के कोई अच्छे स्रोत हैं? उपयोगकर्ता की मार्गदर्शिका के – Edgemaster
[अध्याय 11] (http://www.wireshark.org/docs/wsug_html_chunked/wsluarm.html) लुआ इंटरफ़ेस के लिए एपीआई दस्तावेज है। अनुभाग 11.10, 11.11, और 11.12 कार्यात्मक इंटरफ़ेस हैं। इसके अलावा, वास्तव में कोई दस्तावेज नहीं होना चाहिए। ऐसा लगता है कि आपके विच्छेदन को लिखित रूप में काम करना चाहिए। आपका कोड दिखाता है कि आपको डेटा विच्छेदन ('स्थानीय data_dis = Dissector.get (" डेटा ")') का संदर्भ मिलता है, लेकिन आप इसका उपयोग नहीं करते हैं। क्या यह आपका पूरा डिस्सेसर कोड है? यदि नहीं, तो आप यहां कहीं भी नहीं दिखाए गए 't' को गलती से बदल सकते हैं। – multipleinterfaces
यह मेरा पूरा डिस्सेक्टर कोड है, data_dis जुड़े नमूनों से एक हैंग-ओवर है। – Edgemaster