Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pypacker — :package: أسرع وأبسط مكتبة لمعالجة الحزم في بايثون | Kitploit
أدوات/GitLabGitLab/mike01/pypacker
التقاط وتحليل الحزمبروكسيات الويب والاعتراضأمن الشبكاتاختبار الاختراقالأدوات والمكوناتالفريق الأحمر
GitLabmike01/pypacker

pypacker

📦 أسرع وأبسط مكتبة لمعالجة الحزم في بايثون

عرض المستودع
281816منذ 23 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

معلومات عامة

هذه هي Pypacker: أسرع وأبسط مكتبة للتعامل مع الحزم على المستوى المنخفض في Python. انظر الأمثلة أدناه لمعرفة ما يمكنك فعله بها.

إذا كنت ترغب في دعم هذا المشروع، يمكنك التبرع عبر PayPal عبر PayPal.

ما يمكنك فعله باستخدام Pypacker

  • إنشاء حزم مخصصة عبر الكلمات المفتاحية أو من البايتات الخام وقراءة/تغيير بياناتها عبر Python: examples/create_packets.py
  • قراءة/كتابة الحزم من/إلى ملف pcap (الدعم فقط لصيغة Wireshark/tcpdump pcap): examples/pcap_read_write.py
  • دمج عدة ملفات pcap في ملف واحد. يحاول قراءة ملفات pcap التالفة ويسمح بالتصفية عبر callback: examples/pcap_merge.py
  • إرسال/استقبال حزم الطبقة الثانية: examples/send_receive_l2.py
  • اعتراض (وتعديل) الحزم مثلاً لـ MITM: examples/interceptor3.py

المتطلبات الأساسية

  • Python 3.x (CPython, Pypy, Jython أو أي مترجم آخر)
  • اختياري: netifaces >=0.10.6 (للوظائف المساعدة)
  • اختياري (للـ interceptor):
    • CPython
    • نظام قائم على Linux مع دعم kernel لـ NFQUEUE target. خيار تهيئة kernel موجود في:
      • Networking Options -> Network packet filtering -> Core Netfilter -> NFQUEUE target
    • iptables (بديلاً عن ذلك nftables)
      • يمكن إضافة القواعد المتعلقة بـ NFQUEUE مثل "iptables -I INPUT 1 -j NFQUEUE --queue-num 0"
    • مكتبة libnetfilter_queue (انظر http://www.netfilter.org/projects/libnetfilter_queue)

التثبيت

بعض الأمثلة:

  • استنساخ أحدث إصدار
    • git clone https://gitlab.com/mike01/pypacker.git
    • cd pypacker
    • python setup.py install

pip/pypi لم يعد مدعوماً بسبب آلية المصادقة المعقدة، آسف.

أمثلة الاستخدام والوثائق

انظر:

  • الأمثلة أعلاه
  • أمثلة في المجلد ./examples
  • Gitlab Wiki: https://gitlab.com/mike01/pypacker/-/wikis/home

البروتوكولات نفسها (انظر layerXYZ) بشكل عام لا تحتوي على وثائق كثيرة لأنها موثقة بواسطة RFCs الخاصة بها/المعايير الرسمية.

الاختبار

يتم تنفيذ الاختبارات كما يلي:

  1. أضف مجلد Pypacker إلى PYTHONPATH.
  • cd pypacker
  • export PYTHONPATH=$(pwd):$PYTHONPATH
  1. تنفيذ الاختبارات
  • python tests/test_pypacker.py

نتائج اختبار الأداء:

Hardware: Intel CPU, 4 Cores @ 3.2 GHz
Python: CPython v3.10

nr = new results on this machine
Rounds per test: 10000
=====================================
>>> Packet parsing (Ethernet + IP + UDP + DNS): Search UDP port
Time diff: 0.1409761905670166s
nr = 70933 p/s
>>> Packet parsing (Ethernet + IP + TCP + HTTP): Search TCP port
Time diff: 0.3157649040222168s
nr = 31669 p/s
>>> Packet parsing (Ethernet + IP + TCP + HTTP): Reading all header
Time diff: 0.5989120006561279s
nr = 16696 p/s
>>> Parsing first layer (IP + ICMP)
Time diff: 0.014587163925170898s
nr = 685534 p/s
>>> Creating/direct assigning (IP only header)
Time diff: 0.02884364128112793s
nr = 346696 p/s
>>> bin() without change (IP)
Time diff: 0.013646364212036133s
nr = 732795 p/s
>>> Output with change/checksum recalculation (IP)
Time diff: 0.07719659805297852s
nr = 129539 p/s
>>> Basic/first layer parsing (Ethernet + IP + TCP + HTTP)
Time diff: 0.019113540649414062s
nr = 523189 p/s
>>> Changing Triggerlist element value (Ethernet + IP + TCP + HTTP)
Time diff: 0.017654895782470703s
nr = 566415 p/s
>>> Changing dynamic field (Ethernet + IP + TCP + HTTP)
Time diff: 0.006037473678588867s
nr = 1656321 p/s
>>> Direct assigning and concatination (Ethernet + IP + TCP + HTTP)
Time diff: 0.2050457000732422s
nr = 48769 p/s
.>>> Performance test pypacker vs. dpkt vs. scapy
Comparing pypacker, dpkt and scapy performance (parsing Ethernet + IP + TCP + HTTP)
nr = new results on this machine
Rounds per test: 10000
>> Testing pypacker parsing speed
nr = 194382 p/s
>> Testing dpkt parsing speed
Could not execute dpkt tests: ModuleNotFoundError("No module named 'dpkt'")
>> Testing scapy parsing speed
nr = 2775 p/s

الأسئلة الشائعة

لأي أسئلة متبقية، يرجى تقديم خطأ (سيتم وسمه بـ "questions").

س: ما مدى سرعة pypacker؟

ج: انظر النتائج أعلاه. للحصول على نتائج مفصلة على جهازك، نفذ الاختبارات: python tests/test_pypacker.py PerfTestCase

س: ما البروتوكولات المدعومة؟

ج: البروتوكولات المدعومة حاليًا هي كحد أدنى: Ethernet, Radiotap, IEEE80211, ARP, DNS, STP, PPP, OSPF, VRRP, DTP, IP, ICMP, PIM, IGMP, IPX, TCP, UDP, SCTP, HTTP, NTP, RTP, DHCP, RIP, SIP, Telnet, HSRP, Diameter, SSL, TPKT, Pmap, Radius, BGP

س: هل هناك أي خطط لدعم [xyz]؟

ج: تتم إضافة الميزات الجديدة إلى Pypacker نتيجة احتياجي لها أو مساهمة الآخرين بها - لا توجد خطط رسمية لإضافة دعم لميزات معينة في الإصدارات المستقبلية. يمكن العثور على إرشادات عامة للمساهمة في ملف HACKING.

س: كيف يمكنني المساهمة في هذا المشروع؟

ج: يرجى استخدام متتبع الأخطاء في Gitlab للأخطاء/طلبات الميزات. يرجى قراءة متتبع الأخطاء للأخطاء المعروفة بالفعل قبل تقديم طلب جديد. يمكن إرسال التصحيحات عبر طلب سحب.

س: هناك مشكلة xyz مع Pypacker باستخدام Windows 3.11/XP/7/8/mobile إلخ. هل يمكنك إصلاح ذلك؟

ج: يجب أن تعمل الميزات الأساسية مع أي نظام تشغيل. قد تسبب الميزات الاختيارية مشاكل (مثل interceptor).

س: تحت أي ترخيص تم إصدار Pypacker؟

ج: إنه ترخيص GPLv2 (انظر ملف LICENSE لمزيد من المعلومات).

س: استدعاء copy.deepcopy(some_packet) يثير استثناء "TypeError: can't pickle Struct objects".

ج: جرب الحل البديل التالي لتتمكن من تخليل كائنات Struct:

import struct, copyreg
def pickle_struct(s):
	return struct.Struct, (s.format,)

copyreg.pickle(struct.Struct, pickle_struct)

نصائح الاستخدام

متعلق بالأداء

  • للحصول على أقصى أداء، ابدأ بالوصول إلى السمات على أدنى مستوى عبر تدوين الفهرس التالي. سيقوم هذا بتحليل الكسول للطبقات المطلوبة فقط خلف الكواليس:
pkt_eth, pkt_ip, pkt_tcp, pkt_http = pkt[
 	None,
	(None, lambda b: b.__class__ in [ip.IP, ip6.IP6]),
	(tcp.TCP, lambda c: c.dport==80),
	http.HTTP
]
...
  • تجنب تحويل الحزم باستخدام تنسيق "%s" أو "%r" لأنه يؤدي إلى تحليل خلف الكواليس:
pkt = Ethernet() + IP() + TCP()
# This parses ALL layers
packet_print = "%s" % pkt
  • تجنب البحث عن طبقة باستخدام تدوين الفهرس أحادي القيمة عبر pkt[L] لأنه يحلل جميع الطبقات حتى يتم العثور على L أو الوصول إلى أعلى طبقة:
packet_found = pkt[Telnet]
# Alternative: Use multi-value index-notation. This will stop parsing at any non-matching layer:
packet_found = pkt[Ethernet,IP,TCP,Telnet]
  • استخدم pypy (أسرع بحوالي 3 مرات من CPython فيما يتعلق بتحليل الحزم الكامل)

  • للحصول على أداء أكبر، قم بتعطيل الحقول التلقائية (يؤثر على استدعاء bin(...)):

pkt = ip.IP(src_s="1.2.3.4", dst_s="1.2.3.5") + tcp.TCP()
# Disable checksum calculation (and any other update) for IP and TCP (only THIS packet instance)
pkt.sum_au_active = False
pkt.tcp.sum_au_active = False
bts = pkt.bin(update_auto_fields=False)
تنزيل الأداة