Perfect Autorun Detector - سي شارب - مقـــالات - Top Coder
Welcome to our Site
الدخــول Or تسجـــيل
الأربعاء
2016-12-07
5:22 PM
تسجــــيل | دخـــول
الرئيسية » مقالات » سي شارب

Perfect Autorun Detector
Flash Autorun Detector

مقــــــدمــه
جميعنا يعاني من الفيروسات , ولعل الفلاشات من اكثر الوسائل واسرعها في نقل الفيروسات , ويرجع السبب في ذلك للفيرس الشهير Autorun , والذي هو السبب الرئيسي في اصابة الحاس بالفيروسات , خصوصا المنتقله عن طريقه الفلاش ميموري , فلو استطعنا القضاء عليها , فنحن قد قضينا على اكثر من 90% من نسبة الخطر الذي يهدد باصابة الحاسب بالفيرس .
ملف Autorun.inf
الملف في حد ذاته لا يمثل تهديد او فيرس , لكن الملف يحتوي على امر بتشغيل فيرس معين , فنظام الويندوز اضاف مكون يسمح بتشغيل الملف وتنفيذ ما به من اوامر عند فتح المحرك الذي بداخله الملف , فمثلا اذا كان الملف موجود في المحرك D:\ فبمجرد فتح المحرك D:\ سيقوم الويندوز بفتح الملف Autorun.inf وتنفيذ الاوامر الموجوده به , واكبر مثال على ذلك الاسطوانات , فمعظم الاسطوانات تعمل تلقائيا وتنصب ما بها من برامج بمجرد تشغيلها , وذلك لإحتوائها على الملف Autorun.inf بداخل الاسطوانه والذي يحتوي امر تشغل الملف الرئيسي للبرنامج المراد تنصيبه .

ولعل ميكروسوفت ارادت اضافة ميزة التشغيل التلقائي للبرامج داخل الويندوز بهذا الملف , ولكن صانعي الفيروسات كالعاده استغلوا هذه الميزه في تشغيل فيروساتهم تلقائياً , فيتم وضع الفيرس في مكان داخل المحرك - وغالباً ما يكون داخل المحرك مباشرة - , ويضعون ملف Autorun داخل المحرك مباشرة وبه امر تشغيل الفيرس , وعندما يقوم المستخدم بفتح المحرك , يعمل الملف وبالتالي يعمل الفيرس , وهكذا يصاب الحاسب بالفيرس المطلوب , ويقوم الفيرس بنشر نفسه داخل الجهاز , وايضا يقوم بنسخ نفسه والملف Autorun داخل باقي المحركات , و عند توصيل فلاش ميمووري بالحاسب يقوم بالنسخ داخلها , وبهذه الطريقه يكون قد انتقل الى حاسب اخر على الاقل .

ولهذا فهدفنا من البرنامج هو اكتشاف ذلك الملف اللعين , الذي هو السبب الرئيسي في الاصابه بالفيروسات , فالبرنامج يقوم بالفحص دائما على الفلاشات الجديده الموصله في الحاسب , وعندما يكتشف دخول فلاش جديده , يقوم بفحصها فورا وتحديد ما اذا كانت تحتوي على الملف Autorun.inf او لا , وفي حال وجد الملف فانه يقوم بمسحه مباشرة .
تحديد الفلاش ميموري
يقوم البرنامج فقط باختيار المحركات التي من النوع فلاش ميموري , وذلك لكي يقوم بفحصها , وقد اقتصرنا على فحص الفلاش فقط لشرح الفكره , ويمكنك فحص جميع المحركات ان اردت عن طريق تغيير الكود .

يعتمد البرنامج على داله تقوم بفحص المحركات جميعها , وتحديد ما هو فلاش منها , وتجميعها في List , و List هو كلاس ينحدر من النيم سبيس System.Collections.Generic , وهو يتيح تخزين بيانات من نوع محدد داخل ال List  , وقد استخدمنا هذا الكلاس لتخزين اسماء المحركات , وستكون من النوع string , وهذا الكود يوضح الداله والتالي شرحها
FlashList Method
 
حيث قمنا بتعريف كائن جديد من النوع List وياخد قيم نصيه string , وهذه هي طريقه تعريف هذا النوع من الكلاسات , حيث يكتب اسم الكلاس ثم يوضع نوع البيانات المراد تخزينه فيها بين قوسين < > بعد اسم الكلاس مباشرة , ثم يتبع باسم الكائن الجديد .

ثم نقوم بعمليه فحص لكل المحركات بواسطه foreach مستخدمين الداله Directory.GetLogicalDrives() والتي تقوم بارجاع كل اسماء المحركات داخل الحاسب , ثم نقوم باستخدام الكلاس DriveInfo والذي يقدم معلومات عن محرك معين يتم وضعه داخل قوسي الكلاس

ثم نقوم بعملية فحص لنوع المحرك من خلال الخاصيه DriveType والتي تكون في خالة المحرك العادي Fixed وفي حالة الفلاش ميموري Removable , لذلك نقوم باختيار فقط ما هو Removable  ونضعه داخل ال List , ثم تقوم الداله بارجاع ال List لأستخدامها في الخطوه التاليه وهي الفحص .
داله الفحص
هذه الداله تقوم باستمرار بفحص المحركات واكتشاف المحركات الجديدت من نوع فلاش ميمورد (Removable) , واذا  ما اكتشفت جديد فهي تقوم بارساله لفورم اخرى تقوم بكشف احتوائه على ملف Autorun.inf من عدمه , مع اظهار النتيجة .

والداله هنا تقوم اكشف امرين :
1- الاول كشف ما اذا كان هناك محركات جديده ادخلت في الحاسب , وتقوم كما قلنا بارسالها لفورم اخرى , وايضا اضافة المحرك الى List view خاص بالمحركات في البرنامج
2- الثاني كشف المحركات التي ازيلت من النظام , وهنا تقوم الداله بحذف اسم المحرك من Listview .

وهذا كود الداله
ScanDrives Method
 
في بداية الداله يقوم البرنامج بجلب List تحتوي على المحركات , حيث يقوم الجزء الاول من الداله بكشف المحركات الجديده عن طريق كشف احتواء ال ListView على جميع عناصر ال List , فاذا وجد عنصر في الليست غير موجود في الفيو , فهذا يعني ان داله FlashList اكتشفت محركاً جديدا , وعلى العكس فالجزء الثاني يكشف احتواء الليست List على جميع عناصر الفيو , واذا كان هناك عنصر في الفيو غير موجود في الليست , فهذا معناه ان هناك عنصر غير موجود في الليست عند تحديثها , وهو ما يعني انه ازيل من النظام .

وفي البرنامج وضعنا هذه الداله داخل Timer يقوم طيلة الوقت بتنفيذها , وفحص المحركات اول باول وكشف الجديد والذي ازيل منها , والقيام بالعمليات التي يتطلبها كل حدث من الحدثين
Detection Form
وهي الفورم الخاصه بفحص وجود الفيرس Autorun.inf داخل المحركات , وازالته واخراج النتيجه
حيث تقوم الفورم عند التحميل باخذ اسم المحرك الذي تم ارساله لها , وفحصه واخراج النتيجه مع حذف الفيرس في حالة كن موجود بها .
تعتمد الفورم على داله الفحص الرئيسيه , والتي تقوم بكل عمليات الفورم , هذه هي الداله
Scan Method
 
حيث قمنا بتحديد مكان الملف المتوقع - وهو يكون داخل المحرك مباشرة - , ثم قمنا بفحص وجود الملف في المكان المتوقع , وفي حالة وجوده يتم التعامل معه , فيقوم البرنامج بوضع الخصائص العاديه له , حتى يتجنب عدم المسح في حالة كان الملف Read only  , ثم يقوم البرنامج بمسح الملف , ووضع الرساله التي ستظهر  , اما في حالة عدم وجود الملف فيقوم البرنامج بوضع الرساله التي توضح خلو المحرك من الملف المذكور
Detection Form Initializing
وعند قيام الفورم بالتحميل يكون هناك عدة اجراءات حتى تكتمل الصورة جيدا في البرنامج , فتقوم في البدايه بتشغيل دالة الفحص Scan  , وذلك يكون داخل كود الكونستركتور  
 
 
ثم نقوم داخل حدث التحميل Form_Load بوضع كود لتحديد مكان الفورم التي شتظهر به , حيث ستظهر اسفل يسار الشاشه , فوق الساعه مباشره , فنقوم بوضع الكود التالي لتحديد مكانها
 
 
حيث يتم استخدام ابعاد الشاشه لتحديد مكان الفورم في ابعد مكان في الشاشه . فنقوم بتحديد مكان X عن طريق طرح عرض الفورم من عرض الشاشه , ونقوم بتحديد مكان Y عن طريق طرح طول الفورم من طول الشاشه , وايضا طرح 25 لكي ترتفع الفورم قليلا وتكون فوق التاسك بار , ولا تحتفي خلفه
ثم نضع لموقع الفورم القيم x y
ختـــــــام
لقد عرضنا اليوم موضوع هام جدا وهو فحص ملفات الاوتو رن والتي تعتبر المسبب الاول والرئيسي لإصابة الحاسب بالفيروسات , وعرضنا فكره عمل catch لكل فلاش تدخل الى الكمبيوتر , وايضا كل ما يخرج منه , وكل ذلك يحدث داخل Timer يقوم بالفحص كل نصف ثانيه , وقد زروت البرنامج ب Notify Icon تظهر بجوار الساعه لزياده الامكانيات في البرنامج  , و ارجوا ان بكون الشرح كاف بما فيه الكفاية لإفادة الجميع .. والله الموفق .
تحميل المشروع
 Written by :  Mohammed Mahmoud
الفئة: سي شارب | أضاف: ham_mody2000 (2011-08-23 7:53 AM)
مشاهده: 1625 | تعليقات: 1 | الترتيب: 0.0/0


أترك تعليقك من خلال حسابك على الفيس بوك

تعليقات مشتركي الموقع

مجموع المقالات: 1
1  
جزاك الله كل خير يا هندسة , تسلم ايدك والله

إضافة تعليق يستطيع فقط المستخدمون المسجلون
[ التسجيل | دخول ]
طريقة الدخول
بحث
Our Facebook community

تم إطلاق صفحة توب كودر على الفيس بوك

Advertisment
الأحـــدث
hitstatus
Copyright Mohammed Mahmoud © 2016
إنشاء موقع مجاني с uCoz