PcapPlusPlus هي مكتبة C++ متعددة المنصات لالتقاط حزم الشبكة وتحليلها وصياغتها. وهي مصممة لتكون فعالة وقوية وسهلة الاستخدام.
يتيح PcapPlusPlus إمكانات فك التشفير والتزوير لمجموعة كبيرة ومتنوعة من بروتوكولات الشبكة. كما أنه يوفر أيضًا أغلفة C++ سهلة الاستخدام لمحركات معالجة الحزم الأكثر شيوعًا مثل libpcap وWinPcap وNpcap وDPDK وeBPF AF_XDP وPF_RING.
جدول المحتويات
تحميل
صفحة إصدار جيثب
البيرة المنزلية
فكككج
كونان
قم ببنائها بنفسك
التحقق من الحزم الخاصة بك
نظرة عامة على الميزات
ابدء
وثائق واجهة برمجة التطبيقات
دعم المنصات المتعددة
بروتوكولات الشبكة المدعومة
طبقة ربط البيانات (L2)
طبقة الشبكة (L3)
طبقة النقل (L4)
طبقة الجلسة (L5)
طبقة العرض (L6)
طبقة التطبيق (L7)
دعم DPDK وPF_RING
المعايير
تقديم الملاحظات
المساهمة
رخصة
يمكنك الاختيار بين التنزيل من صفحة إصدار GitHub أو استخدام مدير الحزم أو إنشاء PcapPlusPlus بنفسك. لمزيد من التفاصيل يرجى زيارة صفحة التنزيل في موقع ويب PcapPlus.
https://github.com/seladb/PcapPlusPlus/releases/latest
الشراب تثبيت pcapplusplus
صيغ البيرة: https://formulae.brew.sh/formula/pcapplusplus
ويندوز:
.vcpkg install pcapplusplus
ماك/لينكس:
vcpkg install pcapplusplus
منفذ Vcpkg: https://github.com/microsoft/vcpkg/tree/master/ports/pcapplusplus
conan install "pcapplusplus/[>0]@" -u
الحزمة الموجودة في ConanCenter: https://conan.io/center/pcapplusplus
استنساخ مستودع git:
استنساخ بوابة https://github.com/seladb/PcapPlusPlus.git
اتبع تعليمات الإنشاء وفقًا لنظامك الأساسي في صفحة Build From Source في موقع الويب PcapPlusPlus.
إصدارات PcapPlusPlus الأحدث من الإصدار 23.09 موقعة بشهادة GitHub. جميع الشهادات يمكن العثور عليها هنا. يمكنك التحقق من صحة هذه الحزم باستخدام GitHub CLI. للتحقق من الحزم، يمكنك اتباع أحدث التعليمات من التحقق من شهادة gh. للحصول على تعليمات بسيطة يمكنك استخدام الأمر التالي:
التحقق من التصديق gh <path-to-package-file> -repository seladb/PcapPlusPlus
ويجب أن تشاهد الإخراج التالي في المحطة الطرفية الخاصة بك:
✓ نجح التحقق!
التقاط الحزم من خلال غلاف C++ سهل الاستخدام لمحركات التقاط الحزم الشائعة مثل libpcap وWinPcap وNpcap وIntel DPDK وeBPF AF_XDP وntop's PF_RING والمقابس الأولية [اعرف المزيد]
تحليل الحزم وصياغتها بما في ذلك التحليل التفصيلي للبروتوكولات والطبقات، وإنشاء الحزم وتحريرها لمجموعة كبيرة ومتنوعة من بروتوكولات الشبكة [اعرف المزيد]
قراءة وكتابة الحزم من/إلى الملفات بتنسيقات PCAP و PCAPNG [معرفة المزيد]
معالجة الحزم بمعدل الخط من خلال برنامج تضمين C++ فعال وسهل الاستخدام لـ DPDK وeBPF AF_XDP وPF_RING [اعرف المزيد]
دعم الأنظمة الأساسية المتعددة - يتم دعم PcapPlusPlus بالكامل على Linux وMacOS وWindows وAndroid وFreeBSD
إعادة تجميع الحزم - تنفيذ فريد لإعادة تجميع TCP والذي يتضمن إعادة إرسال TCP، وحزم TCP خارج الترتيب وبيانات TCP المفقودة، وتجزئة IP وإلغاء التجزئة لإنشاء أجزاء IPv4 وIPv6 وإعادة تجميعها [اعرف المزيد]
تصفية الحزم التي تجعل مرشحات BPF الخاصة بـ libpcap أكثر سهولة في الاستخدام [اعرف المزيد]
بصمة TLS - تطبيق C++ لبصمات JA3 وJA3S TLS [اعرف المزيد]
تعد كتابة التطبيقات باستخدام PcapPlusPlus أمرًا سهلاً وبديهيًا للغاية. فيما يلي تطبيق بسيط يوضح كيفية قراءة حزمة من ملف PCAP وتحليلها:
#include<iostream>#include "IPv4Layer.h"#include "Packet.h"#include "PcapFileDevice.h"int main(int argc, char* argv[]) {// افتح ملف pcap لقراءة pcpp::PcapFileReaderDevice Reader("1_packet.pcap");if (!reader.open()) { std::cerr << "حدث خطأ أثناء فتح ملف pcap" << std::endl;return 1; }// اقرأ الحزمة الأولى (والوحيدة) من filepcpp::RawPacket RawPacket;if (!reader.getNextPacket(rawPacket)) { std::cerr << "تعذرت قراءة الحزمة الأولى في الملف" << std::endl;return 1; }// تحليل الحزمة الأولية إلى حزمة محللة pcpp::Packet parsedPacket(&rawPacket);// تحقق من أن الحزمة IPv4if (parsedPacket.isPacketOfType(pcpp::IPv4)) {// استخرج المصدر والوجهة IPspcpp::IPv4Address srcIP = parsedPacket.getLayerOfType<pcpp::IPv4Layer>()->getSrcIPv4Address(); pcpp::IPv4Address destIP = parsedPacket.getLayerOfType<pcpp::IPv4Layer>()->getDstIPv4Address();// مصدر الطباعة ووجهة IPsstd::cout << "مصدر IP هو '" << srcIP << "'; Dest IP هو '" << destIP << "'" << std::endl; }// أغلق filereader.cloud();return 0; }
يمكنك العثور على مزيد من المعلومات في صفحة "بدء الاستخدام" في موقع ويب PcapPlusPlus. سترشدك هذه الصفحة عبر بعض الخطوات السهلة لتشغيل التطبيق.
يتكون PcapPlusPlus من 3 مكتبات:
Packet++ - مكتبة لتحليل وإنشاء وتحرير حزم الشبكة
Pcap++ - مكتبة لاعتراض وإرسال الحزم وتوفير معلومات الشبكة وبطاقة NIC والإحصائيات وما إلى ذلك. وهي في الواقع عبارة عن غلاف C++ لمحركات التقاط الحزم مثل libpcap وWinPcap وNpcap وDPDK وPF_RING
Common++ - مكتبة تحتوي على بعض أدوات التعليمات البرمجية الشائعة التي يستخدمها كل من Packet++ وPcap++
يمكنك العثور على وثائق API واسعة النطاق في قسم وثائق API في موقع ويب PcapPlusPlus. إذا رأيت أي بيانات مفقودة يرجى الاتصال بنا.
PcapPlusPlus مدعوم حاليًا على نظام التشغيل Windows
يدعم PcapPlusPlus حاليًا تحليل وتحرير وإنشاء حزم البروتوكولات التالية:
إيثرنت الثاني
إيي إي إي 802.3 إيثرنت
LLC (يدعم BPDU فقط)
فارغة/الاسترجاع
مقطورة الحزمة (ويعرف أيضًا باسم التذييل أو الحشو)
PPPOE
SLL (الالتقاط المطبوخ لنظام Linux)
SLL2 (الإصدار الثاني من الالتقاط المطبوخ لنظام التشغيل Linux)
سان تومي وبرينسيبي
شبكة محلية ظاهرية
VXLAN
استيقظ على الشبكة المحلية (WoL)
NFLOG (Linux Netfilter NFLOG) - التحليل فقط (بدون إمكانيات التحرير)
ARP
اليونان
ICMP
ICMPv6
IGMP (يتم دعم IGMPv1 وIGMPv2 وIGMPv3)
IPv4
IPv6
MPLS
الحزب الوطني الديمقراطي
IP الخام (IPv4 و IPv6)
VRRP (IPv4 وIPv6)
WireGuard
COTP
غتب (الإصدار 1)
IPSec AH & ESP - التحليل فقط (لا توجد إمكانيات التحرير)
برنامج التعاون الفني
TPKT
UDP
الحزب الديمقراطي الاجتماعي
رشفة
SSL/TLS - التحليل فقط (لا توجد إمكانيات التحرير)
جهاز فك التشفير والتشفير ASN.1
BGP (الإصدار 4)
دكب
DHCPv6
DNS
بروتوكول نقل الملفات
رؤوس HTTP (الطلب والاستجابة)
لداب
NTP (الإصدار 3، الإصدار 4)
نصف القطر
اتصالات S7 (S7comm)
SMTP
بعض/IP
SSH - التحليل فقط (لا توجد إمكانيات التحرير)
Telnet - التحليل فقط (لا توجد إمكانيات التحرير)
الحمولة العامة
مجموعة أدوات تطوير مستوى البيانات (DPDK) عبارة عن مجموعة من مكتبات مستوى البيانات وبرامج تشغيل وحدة التحكم في واجهة الشبكة لمعالجة الحزم السريعة.
PF_RING™ هو نوع جديد من مقابس الشبكة التي تعمل على تحسين سرعة التقاط الحزم بشكل كبير.
يوفر كلا الإطارين معالجة سريعة جدًا للحزم (تصل إلى سرعة الخط) ويتم استخدامها في العديد من تطبيقات الشبكة مثل أجهزة التوجيه وجدران الحماية وموازنات التحميل وما إلى ذلك. يوفر PcapPlusPLus طبقة تجريد C++ عبر DPDK وPF_RING. توفر طبقة التجريد هذه واجهة سهلة الاستخدام تزيل الكثير من القواعد الأساسية المستخدمة في استخدام هذه الأطر. يمكنك معرفة المزيد عن طريق زيارة صفحات دعم DPDK وPF_RING في موقع ويب PcapPlusPlus.
استخدمنا مشروع معايير التقاط الحزم الخاص بـ Matias Fontanini لمقارنة أداء PcapPlusPlus مع مكتبات C++ المماثلة الأخرى (مثل libtins
و libcrafter
).
يمكنك رؤية النتائج في صفحة المعايير في موقع ويب PcapPlusPlus.
سنكون سعداء للغاية بالحصول على تعليقات، فلا تتردد في التواصل معنا بأي من الطرق التالية:
افتح تذكرة جيثب
انشر رسالة في مجموعة Google PcapPlusPlus: https://groups.google.com/d/forum/pcapplusplus-support
اطرح سؤالاً على Stack Overflow: https://stackoverflow.com/questions/tagged/pcapplusplus
أرسل بريدًا إلكترونيًا إلى: [email protected]
تابعونا على X: https://x.com/seladb
إذا أعجبك هذا المشروع، فيرجى تمييزنا بنجمة على GitHub - فهذا يساعد! ⭐ ⭐
يرجى زيارة موقع ويب PcapPlus لمعرفة المزيد.
ونحن نقدر كثيرا أي مساهمة في هذا المشروع. إذا كنت مهتمًا بالمساهمة، فيرجى زيارة صفحة المساهمة في موقع ويب PcapPlus.
يتم إصدار PcapPlusPlus بموجب ترخيص غير مرخص.