كيفية تحليل / اعتراض الحزم قبل إرسالها / استلمها من قبل نظام التشغيل؟

StackOverflow https://stackoverflow.com/questions/1457491

سؤال

لقد تساءلت دائما كيف تعمل جدران الحماية البرمجية تحت الأغطية، وترغب في أن تكون قادرا على كتابة أدوات مخصصة الخاصة بي لتحليل أو اعتراض الحزم قبل إرسالها أو استلامها بواسطة نظام التشغيل. أنا أعرف إلى حد ما مع مبادئ الشبكات الأساسية؛ ليس لدي أدنى فكرة فقط حيث يجب البدء إذا كنت أرغب في كتابة البرامج التي تناسبها داخل مكدس الشبكات مماثلة للطريقة التي تقوم بها جدران الحماية. هل يمكن لأي شخص أن يعطيني بعض المؤشرات؟

سأكون مهتما بشكل خاص إذا كان من الممكن تحقيق ذلك باستخدام C #، لكن يمكنني القيام بلغات أخرى أيضا. أنا مع التركيز بشكل رئيسي على Windows، ولكن أود معرفة ما إذا كان هناك أي مكتبات عبر المنصة هناك أيضا.

تعديل باستخدام برنامج تشغيل NDIS (مثل Wireshark) يبدو وكأنه خيار جيد، فإن إمكانيات تصفية حزمة Vista تبدو أنيقة، ولكن كيف تقوم جدران الحماية بذلك، على سبيل المثال، على نظام التشغيل Windows XP؟ ليس لديهم لتثبيت برنامج تشغيل خاص أعرفه.

هل كانت مفيدة؟

المحلول

على نظام التشغيل Windows Vista وما فوق، قد ترغب في إلقاء نظرة على نظام تصفية ويندوز. وبعد في الإصدارات السابقة من Windows، تحتاج إلى استخدام برامج تشغيل المرشحات (تذكر صفحة المرشح (المرتبطة بصفحة MSDN التي تحل بها Technologies WFP.)

نصائح أخرى

كما أتذكر أنه ينطوي على كتابة سائق NDIS. وهذا يجلس عمليا على رأس NIC (بطاقة واجهة الشبكة) ولديك سيطرة مطلقة على ما يحدث أو يخرج من NIC قبل أي شيء آخر - وصولا إلى مستوى حزمة إيثرنت.

هذا لا يمكن إنجازه مع C #. تحتاج حقا إلى استخدام C أو C ++ لهذه المهمة.

تحديث: آخر مرة فعلت هذا في أيام النافذة XP. أرى من استجابة أخرى، وهناك مظهرها جديدا، وبحثها، أبسط API إذا كنت تستخدم نظام التشغيل Windows Vista فصاعدا.

لست متأكدا مما إذا كان "قبل O / S"، ولكن إلقاء نظرة على Wireshark. والمكتبة التي يستخدمها، libpcap..

إلقاء نظرة على WinPCAP - يستخدم برنامج تشغيل NDIS لتنفيذ إمكانيات تصفية الحزم. من المحتمل أن توفر هذه المكتبة قاعدة ممتازة لأي برنامج فحص / جدار حماية حزم تريد الكتابة، وهو مصدر مفتوح. من http://www.winpcap.org/docs/docs_40_2/html/group__internals.html.:

أولا، يحتاج نظام الالتقاط إلى تجاوز مكدس بروتوكول أنظمة التشغيل من أجل الوصول إلى البيانات الأولية للبيانات على الشبكة. يتطلب هذا جزءا يعمل داخل Kernel of OS، والتفاعل مباشرة مع برامج تشغيل واجهة الشبكة. هذا الجزء يعتمد على النظام للغاية، وفي حلنا يتم تحقيقه كبرنامج تشغيل جهاز، يسمى مرشح حزمة NetGroup (NPF)؛ نحن نقدم إصدارات مختلفة من برنامج التشغيل لنظام التشغيل Windows 95 و Windows 98 و Windows Me و Windows NT 4 و Windows 2000 و Windows XP. تقدم برامج التشغيل هذه ميزات أساسية مثل التقاط الحزم والحقن، بالإضافة إلى المزيد من الأشياء الأكثر تقدما مثل نظام التصفية القابلة للبرمجة ومحرك المراقبة. يمكن استخدام أول واحد لتقييد جلسة الالتقاط إلى مجموعة فرعية من حركة مرور الشبكة (على سبيل المثال، من الممكن التقاط حركة مرور FTP فقط الناتجة عن مضيف معين)، توفر المرء الثاني آلية قوية ولكنها بسيطة لاستخدامها للحصول على إحصائيات على حركة المرور (على سبيل المثال، من الممكن الحصول على تحميل الشبكة أو مقدار البيانات المتبادلة بين مضيفين).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top