2010-12-13 12 views
7

जब आप वायर्सहार्क के लिए एक डिस्क्टर लिखते हैं, तो आप इसका परीक्षण कैसे करते हैं? यूआई में दृश्य आउटपुट की तलाश किसी भी त्रिभुज प्रोटोकॉल के लिए पर्याप्त नहीं है।आप वायरशर्क विच्छेदन का परीक्षण कैसे करते हैं?

वहाँ चीड़फाड़ की इकाई परीक्षण के लिए एक अच्छा तरीका है?

संपादित करें:

प्रोटोकॉल फ्रेम की संरचना गतिशील है। विच्छेदन किसी भी तरह से सामग्री की व्याख्या करना चाहिए।

उदाहरण के लिए यदि पांचवें क्षेत्र एक एक बाइट सरणी छठे क्षेत्र के रूप में इस प्रकार है। यदि यह दो है तो आपके पास एक डबल सरणी है और यदि यह तीन है तो आपको शून्य समाप्त स्ट्रिंग जोड़नी होगी।

यह एक दैनिक काम पर कब्जा में आम तौर पर कभी नहीं होता है। यही कारण है कि आपको "असंभव" सामग्री के साथ भी सिंथेटिक कैप्चर डेटा की आवश्यकता है।

उत्तर

6

एक Wireshark चीड़फाड़ मैंने पाया परीक्षण करने के लिए यह उपयोगी:

  • पैकेट कि चीड़फाड़ विकृत पैकेट सहित विश्लेषण करना चाहिए
  • एक हेक्स डंप
  • के रूप में पैकेट को लागू करें का एक सेट को परिभाषित उम्मीद उत्पादन को परिभाषित करें
  • प्रत्येक पैकेट के लिए डंप
    • text2pcap
    • साथ PCAP फ़ाइलें उत्पन्न
    • tshark
    • साथ चीड़फाड़ भागो tshark की PDML उत्पादन से पेलोड निकालें
    • उम्मीद XML आउटपुट

यह XML आउटपुट के बाद से छान कर सुधार किया जा सकता के साथ XML आउटपुट की तुलना करें पीडीएमएल में पैकेट बाइट्स भी शामिल हैं, यदि पेलोड बड़ा या/और जटिल है तो क्या परेशान हो सकता है।

wireshark निष्पादनयोग्य के लिए तर्क सुझाव

text2pcap -T 1024,9876 foo.txt foo.pcap 
tshark -T pdml -r "foo.pcap" 

चीड़फाड़ उत्पादन यह .NET CLR वर्ग XmlNode के साथ एक xpath एक्सप्रेशन का उपयोग करना उपयोगी होता है निकालने के लिए कर रहे हैं। यह किया जा सकता है यानी:

XmlNode output = tsharkOutput.SelectSingleNode("packet/proto[@name='foo']"); 
XmlNodeList refList = referenceDocument.SelectNodes("proto[@name='foo']"); 
-1

मुझे लगता है कि मैं पुरानी शैली में हूं। एक विच्छेदक का प्राथमिक उद्देश्य डेटा को मानव पठनीय रूप में बदल रहा है, इसलिए मैंने मनुष्यों को इसे पढ़कर मेरा परीक्षण किया।

मुझे लगता है कि आप file->export से txt या pdml को निर्यात करके या अपने प्लगइन DLL के आसपास किसी प्रकार के टेस्ट रैपर को कार्यान्वित करके अधिक स्वचालित परीक्षण कर सकते हैं।

+0

आप केवल वास्तविक डेटा के उत्पादन में देख सकते हैं। लेकिन आपको विच्छेदन के व्यवहार का भी परीक्षण करना चाहिए यदि यह डेटा प्राप्त करता है जो वर्तमान प्रोटोकॉल विनिर्देश को फिट नहीं करता है, यानी अगला संस्करण। – harper

+0

क्या आप टेस्ट डेटा जेनरेट करने के लिए पूछ रहे हैं? Libpcap फ़ाइल प्रारूप http://wiki.wireshark.org/Development/LibpcapFileFormat –

+0

नंबर पर अच्छी तरह से प्रलेखित है। पीढ़ी परीक्षण में केवल एक बिंदु है। विच्छेदन का उत्पादन अधिक दिलचस्प है। – harper

0

आप tshark के उत्पादन को पार्स सकता है।

+0

उचित लगता है। लेकिन मेरे पास बहुत सारे फ्रेम प्रकार, फ्रेम वेरिएंट हैं और अमान्य डेटा वाले फ्रेम वाले व्यवहार की जांच करना चाहते हैं। तो मुझे डेटा का एक सेट प्रदान करने के लिए एक स्थिरता की आवश्यकता है और अनुमान लगाया जाता है कि विच्छेदन डेटा को कैसे पाता है और यदि यह सिंक हो जाता है तो शायद फिर से सिंक्रनाइज़ हो जाता है। एक औपचारिक दृष्टिकोण एक XML पैटर्न के साथ तुलना करने के लिए pdml आउटपुट tsharks होगा। लेकिन मैं उन हिस्सों को कैसे छोड़ूं जो जरूरी नहीं हैं? – harper

0

बस पोस्ट को अपडेट करने के लिए।

तशार्क उसी प्लगइन का उपयोग वायरशर्क के रूप में करता है, और उन्हें उसी तरीके से लोड करता है।तशार्क का उपयोग वायर्सहार्क सीआई परीक्षणों में इस तरह से किया जाता है, कुछ परीक्षण स्क्रिप्ट उदाहरणों के लिए वायरशर्क स्रोतों की परीक्षण निर्देशिका देखें।
https://code.wireshark.org/review/gitweb?p=wireshark.git;a=tree;f=test
- ग्राहम।

स्रोत: https://ask.wireshark.org/questions/36721/tshark-for-plugin-testing

संबंधित मुद्दे