अपडेट पर वापस जाएँ
New releaseAug 22, 2026

Packet-Sniffer v4.0.0

कच्चे सॉकेट-आधारित नेटवर्क पैकेट स्निफर जो सुरक्षा विश्लेषण और शैक्षिक उपयोग के लिए नेटवर्क इंटरफेस से TCP/IP पैकेटों को कैप्चर और डिसअसेंबल करता है।

साझा करें

RootWire

CI PyPI Python Version OS License

GNU/Linux के लिए एक नेटवर्क ट्रैफ़िक मॉनिटर — पहले Packet-Sniffer के नाम से जाना जाता था। फ़्रेम को एक रॉ सॉकेट के साथ नेटवर्क इंटरफ़ेस से कैप्चर किया जाता है, NETProtocols लाइब्रेरी के साथ परत-दर-परत डिकोड किया जाता है, और लाइव रेंडर किया जाता है, pcap में लिखा जाता है, या JSON के रूप में स्ट्रीम किया जाता है:

[>] Frame #4 at 15:42:07 (wlan0, 74 bytes)
    [+] Ethernet 3c:7c:3f:1a:be:22 -> 9c:1e:95:aa:01:5f
        EtherType: IPv4
    [+] IPv4 192.168.1.96 -> 142.250.79.78
        TTL: 64 | Flags: Don't fragment (DF) | Total Length: 60 | ID: 39754
        Protocol: TCP | Checksum: 0x2b51
    [+] TCP 51888 -> 443
        Flags: 0x002 (SYN) | Seq: 3598801521 | Ack: 0
        Window: 64240 | Checksum: 0x2008 | Options: 20 bytes

डिकोडर Ethernet, ARP, IPv4 (विकल्प और फ़्रैगमेंट), IPv6 एक्सटेंशन हेडर सहित (एक MLD रिपोर्ट अपनी पूरी Hop-by-Hop श्रृंखला रेंडर करती है), ICMPv4/v6, TCP (विकल्प-जागरूक पेलोड ऑफ़सेट) और UDP को कवर करता है। गलत या ट्रंकेटेड फ़्रेम कैप्चर को क्रैश करने के बजाय डायग्नोज़ किए जाते हैं, अज्ञात प्रोटोकॉल श्रृंखला को सुरक्षित रूप से समाप्त करते हैं, और 16-परत की सीमा क्राफ्टेड एक्सटेंशन-हेडर स्टैक को एम्प्लीफाई होने से रोकती है — कैप्चर नेटवर्क जो भी डिलीवर करे, उससे बच जाता है।

इंस्टॉलेशन

pipx install rootwire        # या: uv tool install rootwire

या uv के साथ क्लोन से चलाएँ:

git clone https://github.com/EONRaider/RootWire.git
cd RootWire
uv sync

उपयोग

rootwire [-h] [-i INTERFACE] [-r FILE] [-w FILE] [--json] [-d] [--version]

options:
  -i, --interface   फ़्रेम कैप्चर करने के लिए इंटरफ़ेस (डिफ़ॉल्ट: सभी इंटरफ़ेस)
  -r, --read FILE   लाइव कैप्चर के बजाय क्लासिक pcap फ़ाइल से फ़्रेम रीप्ले करें
                    (कोई विशेषाधिकार आवश्यक नहीं)
  -w, --write FILE  कैप्चर किए गए हर फ़्रेम को क्लासिक pcap फ़ाइल में भी लिखें
  --json            stdout पर प्रति फ़्रेम एक NDJSON ऑब्जेक्ट (बैनर और
                    आँकड़े stderr पर रहते हैं): सीधे jq में पाइप करें
  -d, --data        प्रत्येक फ़्रेम का रॉ पेलोड भी प्रदर्शित करें (--json के साथ अनदेखा)

कैप्चर आँकड़े — फ़्रेम, बाइट्स, फ़्रेम/सेकंड, गलत/ट्रंकेटेड गिनती, प्रति-प्रोटोकॉल टैली — कैप्चर समाप्त होने पर stderr पर रिपोर्ट किए जाते हैं। कुछ पसंदीदा संयोजन:

sudo rootwire -i eth0 -w session.pcap   # कैप्चर करें और सबूत रखें
rootwire -r session.pcap                # बाद में निरीक्षण करें, रूट की आवश्यकता नहीं
rootwire -r session.pcap --json | jq .  # मशीन-पठनीय विश्लेषण

लाइव कैप्चर के लिए रॉ सॉकेट की आवश्यकता होती है, जिसका Linux पर मतलब है रूट (sudo rootwire -i eth0) या इंटरप्रेटर को CAP_NET_RAW क्षमता प्रदान करना। -r के साथ फ़ाइलें रीप्ले करने के लिए कभी भी विशेषाधिकारों की आवश्यकता नहीं होती। क्लोन से, इसे sudo .venv/bin/python -m rootwire के रूप में चलाएँ।

यह कैसे काम करता है

capture.py एक AF_PACKET सॉकेट से रॉ फ़्रेम उत्पन्न करता है (या pcap.py उन्हें फ़ाइल से रीप्ले करता है — दोनों स्रोत विनिमेय हैं); decoder.py प्रत्येक फ़्रेम की प्रोटोकॉल श्रृंखला को एक अपरिवर्तनीय DecodedFrame में चलाता है; आउटपुट — स्क्रीन रेंडरर, NDJSON स्ट्रीम, pcap राइटर, आँकड़ा संग्राहक — हर फ़्रेम को एक छोटे Output इंटरफ़ेस के माध्यम से उपभोग करते हैं। पूरा दौरा, जिसमें लंबे कैप्चर के दौरान मेमोरी स्थिर क्यों रहती है और आउटपुट कैसे जोड़ें, ARCHITECTURE.md में है।

रॉ सॉकेट को छोड़कर सब कुछ किसी भी OS पर चलता है, इसलिए टेस्ट सूट — जिसमें वास्तविक कैप्चर किए गए ट्रैफ़िक का 65-फ़्रेम कॉर्पस शामिल है जिसे पूरे पाइपलाइन के माध्यम से रीप्ले किया जाता है — को न तो रूट की और न ही Linux की आवश्यकता होती है:

uv run pytest

रोडमैप

  • BPF फ़िल्टरिंग (कर्नेल-साइड कैप्चर फ़िल्टर)
  • कर्नेल टाइमस्टैम्प (SO_TIMESTAMPNS) और SIGTERM-क्लीन सेवा उपयोग
  • चेकसम सत्यापन रेंडरिंग (लाइब्रेरी पहले से ही उनकी गणना करती है)

कानूनी अस्वीकरण

इस रिपॉज़िटरी में निहित कोड का उपयोग, आंशिक रूप से या संपूर्ण रूप से, पूर्व पारस्परिक सहमति के बिना लक्ष्यों को संलग्न करने के लिए अवैध है। अंतिम उपयोगकर्ता की ज़िम्मेदारी है कि वह सभी लागू स्थानीय, राज्य और संघीय कानूनों का पालन करे।

डेवलपर्स कोई दायित्व नहीं मानते हैं और इस रिपॉज़िटरी में निहित किसी भी कोड के दुरुपयोग या क्षति के लिए ज़िम्मेदार नहीं हैं, किसी भी घटना में, चाहे वह आकस्मिक रूप से या अन्यथा, किसी खतरे वाले एजेंट या अनधिकृत इकाई द्वारा सिस्टम और उनके संबंधित संसाधनों की सुरक्षा, गोपनीयता, गोपनीयता, अखंडता और/या उपलब्धता से समझौता करने के साधन के रूप में उपयोग किया जाता है। इस संदर्भ में "समझौता" शब्द को आगे से उक्त सिस्टम में मौजूद ज्ञात या अज्ञात कमजोरियों के शोषण के रूप में समझा जाता है, जिसमें सुरक्षा नियंत्रणों का कार्यान्वयन, मानव- या इलेक्ट्रॉनिक रूप से सक्षम, शामिल है लेकिन इन्हीं तक सीमित नहीं है।

इस कोड का उपयोग डेवलपर्स द्वारा केवल उन परिस्थितियों में समर्थित है जो सीधे शैक्षिक वातावरण या अधिकृत पेनेट्रेशन टेस्टिंग अभियानों से संबंधित हैं जिनका घोषित उद्देश्य सिस्टम में कमजोरियों को खोजना और कम करना है, जिससे उनके संबंधित खतरे मॉडल में परिभाषित दुर्भावनापूर्ण एजेंटों द्वारा उपयोग किए जाने वाले समझौतों और शोषणों के प्रति उनका जोखिम सीमित हो।

लाइसेंस

AGPL-3.0

श्रेणियाँ