I. ما هو SnifferFox.
ثانيا كيف يعمل SnifferFox
III. هيكل الدليل SnifferFox
رابعا: وصف وظيفة SnifferFox.
V. ميزات SnifferFox
سادسا
سابعا. المؤلف
الثامن
I. ما هو SnifferFox
SnifferFox عبارة عن أداة شم (Sniffer) تعمل على نظام Windows الأساسي. يستخدم لاعتراض جميع حزم البيانات التي تمر عبر بطاقة الشبكة المحددة للكمبيوتر المحلي، وتحليل وجمع الإحصائيات حول هذه الحزم.
تم تطوير SnifferFox بناءً على Winpcap، وهو مشروع مفتوح المصدر، اخترناه للحصول على حزم البيانات الأصلية (لأن المقبس يعمل في طبقة IP ولا يمكنه الحصول على حزم ARP وRARP، لذلك لم نستخدمه). لذلك، يرجى تثبيت Winpcap قبل تثبيت SnifferFox، وإلا ستتم مطالبتك بعدم العثور على بطاقة الشبكة.
لقد اخترنا Borland C++ Builder لتطوير برنامج Sniffer هذا، وبعد ما يقرب من شهرين من العمل الشاق، كتبنا ما يقرب من 6000 سطر من التعليمات البرمجية (يحتوي الملف docs/codestat.txt على إحصائيات مفصلة)، وتم تطوير البرنامج بشكل أساسي. الآن يمكننا إطلاق نسخته ألفا. ومع ذلك، قد لا تزال هناك العديد من الأخطاء التي لم نكتشفها، ومن الممكن تصحيحها في الإصدارات المستقبلية.
SnifferFox هو برنامج مجاني وصديق للبيئة ولا يتطلب التثبيت أو التسجيل. ونعد بأننا لن نقوم أبدًا بتعديل سجل جهاز الكمبيوتر الخاص بك ويمكن تشغيله مباشرة (بالطبع، من أجل راحتك، قمنا بإنشاء حزمة تثبيت).
II. مبدأ عمل SnifferFox يقوم البرنامج أولاً بتعيين بطاقة الشبكة على الوضع المختلط، ثم يحصل على البيانات التي تستقبلها بطاقة الشبكة، ويحلل حزم البيانات وفقًا لبروتوكول TCP/IP، ويقوم بتصفية بعض الحزم وفقًا لمتطلبات المستخدم، و ثم يقوم بتصفية الحزم المتبقية، ويتم كتابة حزمة البيانات في المخزن المؤقت (كتلة ذاكرة بحجم محدد، والتي يمكن ضبطها يدويًا وفقًا لحجم ذاكرة جهاز الكمبيوتر الخاص بالمستخدم)، ويتم عرضها على واجهة المستخدم إذا كان المخزن المؤقت ممتلئًا، فسيقوم النظام تلقائيًا بكتابة البيانات في المخزن المؤقت.
الصورة أدناه هي توضيح بسيط.
SnifferFox هو نظام متعدد الخيوط، ويمكن تقسيمه تقريبًا إلى 3 سلاسل (تم استخدام 2 فقط بالفعل أثناء التنفيذ)، وخيط التقاط الحزم (Sniffer Thread)، وخيط تحليل البروتوكول وتصفيته، وواجهة المستخدم. من خلال العمل في طبقة ارتباط البيانات، يمكنه الحصول على إطار البيانات الأصلي، لذلك يمكن لـ SnifferFox دعم البروتوكولات الأساسية مثل ARP وRARP.
نظرًا لأن كمية البيانات الموجودة في الحزم التي يعترضها Sniffer كبيرة جدًا، فمن غير الواقعي تخزين كل هذه الحزم في الذاكرة، لذلك نقدم هنا مفهومين في نظام التشغيل، ذاكرة التخزين المؤقت (Cache) والمخزن المؤقت (Buffer). ذاكرة التخزين المؤقت هي قائمة مرتبطة تقوم بتخزين حزم البيانات مؤقتًا. لكي لا نضع عبئًا كبيرًا على جهاز الكمبيوتر الخاص بالمستخدم، فإننا نحدد الحد الأقصى لطول هذه القائمة المرتبطة بـ 5000. عندما يصل طول هذه القائمة المرتبطة إلى الحد الأعلى الذي حدده المستخدم، سيقوم النظام تلقائيًا بكتابة البيانات الموجودة في القائمة المرتبطة إلى المخزن المؤقت ثم مسح ذاكرة التخزين المؤقت.
Buffer هو ملف ثنائي، يتكون من حزم البيانات واحدة تلو الأخرى. يمكننا أيضًا أن نطلق على كل حزمة اسمًا قياسيًا. طوله غير ثابت، ويرجع ذلك أساسًا إلى عدم وجود طريقة لتحديد حجم حزمة البيانات.
يتكون من 4 أجزاء، المعرف (4 بايت)، إزاحة المقطع (4 بايت)، المعلومات المتعلقة بإطار البيانات (16 بايت)، البيانات (الطول متغير، ولكن يمكن حسابه وفقًا لمعادلة الحساب في الشكل). إزاحة المقطع هي طول السجل، والذي يستخدم بشكل أساسي لتحديد موضع نهاية السجل وموضع بداية السجل التالي.
III. بنية دليل SnifferFox بالطبع، ما يجب أن نوضحه هنا هو أن بنية الدليل لإصدار الإصدار وإصدار التطوير مختلفان. هناك المزيد من الأدلة في إصدار التطوير وأكثر تعقيدًا، لكن الدلائل الموجودة في إصدار الإصدار مختلفة كل ذلك في إصدار الإصدار، لذلك نقدم هنا فقط دليل إصدار التطوير، والذي يمكن مقارنته بإصدار الإصدار (راجع docs/dir.txt).
+الشم
+Bin يحتوي الملف الثنائي الذي تم تجميعه بواسطة المترجم على ملف مكتبة الارتباط الديناميكي
+ ملف التكوين
+صور الصور
+Obj ملف وسيط تم إنشاؤه بواسطة المترجم
+ دليل المستندات للمستندات
+ دليل مشروع المشروع
+ الكود الأساسي الأساسي، بشكل أساسي هياكل البيانات المحددة ذاتيًا وتنفيذها
+ كود واجهة المستخدم الرسومية لتنفيذ الواجهة الرسومية
+ لانج دعم متعدد اللغات
+ دليل ذاكرة التخزين المؤقت، يستخدم لتخزين الملفات المؤقتة
+ عناصر تحكم الطرف الثالث المستخدمة في نظام 3Com
+حفظ دليل المستخدم، يستخدم لحفظ ملفات المستخدم
رابعا: وصف وظيفة SnifferFox
1. اعتراض حزم البيانات يمكن للمستخدمين تحديد بطاقة شبكة الكمبيوتر، ثم استخدام SnifferFox لاعتراض جميع حزم البيانات التي تمر عبر بطاقة الشبكة هذه. بعد اعتراض هذه الحزم سيقوم النظام بعرض المعلومات الموجزة عن الحزمة على شكل قائمة والمعلومات المحددة عن الحزمة على شكل لوحة حسب الحاجة.
2. تصفية الحزم: بعد أن نحصل على الحزم التي تلبي متطلباتنا، يمكننا تصفية الحزم التي تم اعتراضها وفقًا للمتطلبات المختلفة، يمكننا تحديد مرشحين مختلفين: مرشح البروتوكول ومرشح عنوان IP. يعمل هذان المرشحان في نفس الوقت، وسيتم الاحتفاظ فقط بالحزم التي تفي بهذين المتطلبين، وسيتم تجاهل الحزم الأخرى التي لا تفي بالمتطلبات.
3. إحصائيات الحزم من أجل تسهيل فهم المستخدمين لتوزيع الحزم التي تم اعتراضها، نقدم وظيفة إحصائيات حزم البيانات، والتي تحسب النسبة المئوية وعدد الحزم وفقًا لمستويات البروتوكول المختلفة. عرضها في شكل رسم بياني.
4. تحليل البروتوكول وفقًا لنوع الحزمة، سنقوم بتحليل وعرض بيانات الحزمة وفقًا للمواقف المختلفة. يدعم SnifferFox عددًا كبيرًا من أنواع البروتوكولات، بدءًا من طبقة ارتباط البيانات وحتى طبقة التطبيق.
تم تحليل البروتوكولات الموجودة أسفل طبقة التطبيق بالتفصيل وتم حذف كل حقل في حزمة البيانات. أما بالنسبة لطبقة التطبيق، فقد تم تحديد 112 بروتوكولًا فقط في الوقت الحالي. ومع ذلك، نظرًا لوجود العديد من بروتوكولات طبقة التطبيق وكل بروتوكول معقد للغاية، لم نقم بإجراء تحليل متعمق.
5. الفرز الذكي لتسهيل عثور المستخدمين على الحزم المحددة بسرعة، نقدم وظيفة فرز ذكي عندما يتوقف المستخدم عن اعتراض حزم البيانات، فهو يحتاج فقط إلى النقر فوق أحد الحقول في القائمة، وسيقوم النظام بالفرز تلقائيًا. البيانات الموجودة في القائمة لفرزها بترتيب تصاعدي، انقر مرة أخرى لتبديل طريقة الفرز.
6. كشف معلومات بطاقة الشبكة يمكن للنظام اكتشاف عدد بطاقات الشبكة في النظام تلقائيًا (بما في ذلك بطاقات الشبكة الافتراضية) وعرضها ديناميكيًا في قائمة القائمة. وفي الوقت نفسه، يمكنه اكتشاف المعلومات ذات الصلة ببطاقة الشبكة.
7. بعد اختباره كعملية خفية لاعتراض الحزم، يمكن أن يعمل SnifferFox على الكمبيوتر لعدة أيام دون أن يتعطل. لذلك، يمكننا استخدامه كبرنامج متخصص لاعتراض الحزم وتشغيله كعملية خفية (بالطبع، هذا أمر مؤكد). القيود عندما يكون هناك عدد كبير جدًا من الحزم التي تم اعتراضها، مثل عدة غيغابايت، يكون الأمر صعبًا بعض الشيء، لأنه في هذا الإصدار، لم نقم بتقسيم الملف المؤقت إلى أجزاء. قد تتم إضافة هذه الميزة في الإصدارات المستقبلية.
8. عرض الحالة الديناميكية حتى لا يؤثر على عمل المستخدم الآخر عند اعتراض الحزمة، يمكننا تصغير SnifferFox، وبعد ذلك سيختفي تلقائيًا على شريط المهام ويعرض فقط رمز علبة صغير أثناء عمله، وسيومض الرمز الخاص به ديناميكيًا ويتجمد عند التوقف. بالإضافة إلى ذلك، قمنا أيضًا بإنشاء نافذة عائمة صغيرة لعرض حالة النظام، والتي يتم وضعها في أعلى النافذة افتراضيًا.
9. حفظ وتحميل حزم البيانات يمكن للمستخدمين حفظ الحزم المعترضة في ملف محدد (امتداد *.sni)، ومن ثم تحميلها من خلال SnifferFox عند الحاجة، وبهذه الطريقة يمكن الاطلاع على حزم البيانات والحزم المعترضة هناك لا يوجد فرق على الإطلاق، ويمكنك أيضًا تحديد الصفحة التي تريد عرضها ديناميكيًا (يحتوي النظام بالفعل على وظيفة ترحيل الصفحات، وهي ترحيل صفحات ديناميكي. يمكننا تحديد عدد السجلات في كل صفحة بأنفسنا).
10. يتم حفظ محتوى خيارات المستخدم وخيارات النظام المخزنة في الملف config/config.ini، وبمجرد تغيير إعدادات المستخدم (مثل الواجهة واللغة وما إلى ذلك)، سيتم تسجيل التغييرات في الملف الملف وسيتم استخدامه في المرة التالية التي يتم فيها تشغيل النظام، وسوف يستجيب تلقائيًا بناءً على هذه الإعدادات.
V. ميزات SnifferFox
1. البساطة والعملية هي هدفنا. على الرغم من أن تصميم النظام وتنفيذه معقدان نسبيًا، إلا أننا نفضل أن يرى المستخدمون نظامًا بسيطًا ونظامًا عمليًا.
2. واجهة جميلة
لا يوجد ما يمكن قوله عن واجهة SnifferFox، حيث يحتوي النظام على 5 مجموعات من الواجهات القياسية (Winxp، وMacOS، وProtein، وDeepBlue، وBlueGrass). ويمكن استبدال واجهة النظام في الوقت المناسب دون إعادة تشغيل النظام، وهي بديل كامل (وبالطبع هذا بفضل ضوابط الطرف الثالث لدينا).
3. دعم متعدد اللغات لقد أخذنا هذه المشكلة في الاعتبار عند تصميم النظام، لذلك يدعم SnifferFox نفسه تعدد اللغات، ويمكننا توسيع نطاقه بسهولة، ولا نحتاج إلا إلى ترجمة اللغة الإنجليزية إلى اللغة المقابلة . يوفر النظام بالفعل الدعم للغتين الصينية والإنجليزية، والتي يمكن تبديلها بسهولة.
4. يتمتع بقابلية توسع جيدة نسبيًا، وقد أخذنا في الاعتبار قابلية التوسع بشكل كامل من حيث اللغة والواجهة والبروتوكول. لذلك، من السهل نسبيًا تطوير إصدار جديد يعتمد على هذا الإصدار. يتيح لك هذا إعادة استخدام التعليمات البرمجية الموجودة بشكل جيد للغاية.
5. سهولة التشغيل هذه مشكلة نفكر فيها كثيرًا، ونحن نبذل قصارى جهدنا لجعل طريقة تشغيل النظام متوافقة مع عادات الأشخاص، بحيث يجدها المستخدمون مريحة وسهلة الاستخدام.
6. يدعم عددًا كبيرًا نسبيًا من البروتوكولات في Ethernet، قام SnifferFox بتحليل جميع البروتوكولات تقريبًا الموجودة أسفل طبقة التطبيق لعائلة TCP/IP، ويمكنه التعرف على 112 بروتوكولًا لطبقة التطبيق.
سادسا
إن توسيع SnifferFox ليس بالمهمة السهلة إلا إذا كنت تعرف بنيته جيدًا، وبطبيعة الحال، من الصعب القيام بذلك بمجرد قراءة هذا المستند الآن. يمكننا توسيعه في 3 جوانب:
1. تمديد البروتوكول
يستخدم SnifferFox طريقة موجهة للكائنات لتحليل التصميم والتنفيذ، لذلك لتوسيعه، تحتاج إلى كتابة فئة تحليل البروتوكول المقابلة لحل المشكلة، ثم توصيلها بالبرنامج الرئيسي. وهذا يتطلب فهما مفصلا لبنية النظام الحالي.
2. يتم تحقيق توسيع الواجهة عن طريق تغيير تحكم الطرف الثالث SUIPack (دليل 3com). للحصول على التفاصيل، يرجى الرجوع إلى المستندات ذات الصلة الخاصة بـ SUIPack.
3. توسيع اللغة هذا هو أبسط جزء من وظيفة التوسع في SnifferFox، ما عليك سوى ترجمة الملفات ذات اللغة الإنجليزية/اللغة الإنجليزية مباشرةً.
سابعا. المؤلف
فريق FoxBackBone: zhengsh، gourf
ثامنًا. الخلاصة على الرغم من أن SnifferFox مجرد برنامج صغير، إلا أنه لا يمكننا فهم سوى جزء صغير منه من خلال هذا المستند، لذلك إذا كنت تريد فهمه بالتفصيل، فمن المؤكد أن مجرد هذا المستند ليس كافيًا. مزيد من القراءة هي فقط الكود المصدري، لأنه ليس لدينا الكثير من الوقت لكتابة تصميم النظام بالتفصيل.
إذا كان لديك أي اقتراحات أو أفكار حول SnifferFox بعد استخدامه، سواء كان ذلك مدحًا أو انتقادًا أو جوانب أخرى، فيرجى تقديم تعليقات إلى بريدنا الإلكتروني: shaohui_1983#163.com، gouruifeng_529#sohu.com، شكرًا لك على دعمك.
بالإضافة إلى ذلك، يتم استخدام مكون Suipack وWinPcap في البرنامج، يرجى تنزيلهما من هذا الموقع