2010-02-13 12 views
5

अब मैं Winpcap का उपयोग कर एक प्रोजेक्ट विकसित कर रहा हूं .. मुझे पता है कि पैकेट को स्नीफ किया जा रहा है आमतौर पर खंडित पैकेट होते हैं।टीसीपी सेगमेंट को फिर से कैसे इकट्ठा करना है?

इस टीसीपी segements पुनः करने के लिए कैसे? .. किसी भी विचार, सुझाव या ट्यूटोरियल उपलब्ध? ..

इस मैं एक ही रास्ता मैं HTTP शीर्ष लेख देख सकते हैं होने के लिए मान लेते हैं ...

धन्यवाद! ..

उत्तर

4

टीसीपी एक बाइट धारा प्रोटोकॉल है। आपके http अनुप्रयोग द्वारा भेजे गए बाइट्स का अनुक्रम टीसीपी डेटा सेगमेंट में encapsulated है और दूसरे पक्ष पर डेटा को डेटा वितरित करने से पहले बाइट स्ट्रीम को फिर से बनाया जाता है। क्योंकि आप Winpcap का उपयोग कर टीसीपी डेटासेगल्स तक पहुंच रहे हैं, तो आपको सेगमेंट के डेटा हिस्से में जाना होगा। टीसीपी के शीर्षलेख में 20 बाइट्स की एक निश्चित लंबाई होती है + एक वैकल्पिक भाग जिसे आपको winpcap api का उपयोग करके निर्धारित करने की आवश्यकता होती है।

टीसीपी सेगमेंट में डेटा भाग की लंबाई टीसीपी हेडर लम्बाई (टीसीपी सेगमेंट में एक फ़ील्ड से प्राप्त) और आईपी हेडर लम्बाई (आईपी डेटाग्राम में एक फ़ील्ड से जो टीसीपी सेगमेंट को एन्सेप्लेट करता है) को घटाकर निर्धारित किया जाता है। कुल लंबाई से (आईपी डेटाग्राम में किसी अन्य क्षेत्र से प्राप्त)।

तो अब आपके पास सेगमेंट के भीतर कुल सेगमेंट की लंबाई और डेटा भाग की लंबाई है। इसलिए आप ऑफ़सेट जानते हैं कि http अनुरोध डेटा कहां से शुरू होता है।

ऑफसेट

total length-length of data part 
or 
length of ip-header + length of tcp header 

मैं WinPcap इस्तेमाल नहीं किया है है। इसलिए आपको यह पता लगाना होगा कि एपीआई का उपयोग करके इन क्षेत्रों को कैसे प्राप्त किया जाए।

भी आईपी डेटाग्राम को और खंडित किया जा सकता है, लेकिन मुझे उम्मीद है कि आपको इस एपीआई का उपयोग करके केवल डेटाग्राम प्रदान किया जाएगा। तुम तैयार हो!

6

टीसीपी खंड जैसी कोई चीज नहीं है। आईपी ​​प्रोटोकॉल में टुकड़े हैं। टीसीपी एक स्ट्रीम प्रोटोकॉल है। आप धाराओं को दोनों पक्षों की अनुक्रम संख्या का पालन करके अपने इच्छित क्रम में इकट्ठा कर सकते हैं। प्रत्येक टीसीपी पैकेट आईपी स्तर पर जाता है और वहां खंडित किया जा सकता है। आप सभी टुकड़ों को इकट्ठा करके और हेडर से खंड ऑफसेट का पालन करके प्रत्येक पैकेट को इकट्ठा कर सकते हैं।
आपको जो भी जानकारी चाहिए वह शीर्षकों में है। विकिपीडिया लेख को समझाने में काफी उपयोगी होते हैं जो प्रत्येक क्षेत्र

http://en.wikipedia.org/wiki/TCP_header#Packet_structure
http://en.wikipedia.org/wiki/IPv4#Header

1

किस ट्रैफ़िक पर आप निष्क्रिय रूप से पुनः संयोजित करने का प्रयास कर रहे हैं, इस पर निर्भर करते हुए, आप कुछ टीसीपी obfuscation तकनीकों में भाग ले सकते हैं जो लोगों को वास्तव में करने की कोशिश कर रहे हैं जो आप करने की कोशिश कर रहे हैं। विभिन्न ऑपरेटिंग सिस्टम reassembly व्यवहार पर this paper देखें।

0

libtins कक्षाओं को बहुत उच्च स्तर पर TCP stream reassembly करने के लिए प्रदान करता है, इसलिए आपको ऐसा करने के लिए टीसीपी आंतरिक के बारे में चिंता करने की आवश्यकता नहीं है।

2

PcapPlusPlus सभी प्रमुख ओएस (विंडोज सहित) के लिए इस क्षमता को आउट ऑफ़ द बॉक्स प्रदान करता है। टीसीपी पुनर्विक्रय सुविधा का उपयोग कैसे करें

का उपयोग करने के तरीके को समझने के लिए कृपया एक कार्य कोड और एपीआई दस्तावेज देखने के लिए TcpReassembly उदाहरण देखें।
संबंधित मुद्दे