[c]الإطار العام لعمل الفيروس [/c]
لكي يستطيع الفيروس أن يقيم في الملف COM يجب أن يكون قادراً على استلام عملية التحكم بسير البرنامج في نقطة معينة منه أثناء التنفيذ، وقد يتخيل البعض أنه بإمكان الفيروس أن يقوم بتفحص تعليمات البرنامج بهدف تحديد النقطة التي يستطيع عندها امتلاك التحكم بسير البرنامج، إلا أن هذا أمر صعب للغاية، فالفيروسات غالباً أبسط بكثير من أن تقوم بهذا العمل. إن أفضل طريقة لاستلام التحكم هي أن يتم ذلك في لحظة البداية أي عندما يقوم نظام التشغيل بنقل التحكم إلى البرنامج، ففي هذه اللحظة فقط يستطيع الفيروس أن يستعمل المنطقة المتبقية من الذاكرة المخصصة لاحتواء الصورة الثنائية للملف COM .
إن اللحظة المناسبة لعمل الفيروس هي تلك التي تسبق مباشرة بعد التنفيذ، أي قبل أن يكون البرنامج قد بدأ بتسجيل معطياته، فبذلك لا يؤدي عمل الفيروس إلى تعطيل البرنامج الأصلي ومنعه عن العمل، وبعد أن يبدأ البرنامج بتنفيذ تعليماته يصبح من الصعب جداً أن يعمل الفيروس. وعلى هذا فلا تعتبر الاكواد التي تكتب لعمل فورمات ( Format ) للجهاز او مسح ملف Delete من الفيروسات اذا كانت غير قادرة على نقل نفسها الى ملفات اخرى واجهزة اخرى . وإنما تعتبر اكواد فقط .
يحتل الفيروس البايتات الأولى من الملف COM ويستبدل بها تعليمة تفريع إلى عنوان أول تعليمة من تعليمات الفيروس الموجود في نهاية المقطع، عندئذ يبدأ تنفيذ البرنامج بنقل التحكم إلى برنامج الفيروس الذي يبدأ عمله بالبحث عن ملفات أخرى لمهاجمتها، وعندما ينتهي الفيروس من تنفيذ مهمته يعيد التحكم إلى البرنامج الأصلي وذلك بإعادة البايتات التي حذفها من بداية المقطع إلى مكانها الصحيح وتنفيذ تعليمة تفريع إلى العنوان 100H حيث توجد بداية البرنامج الأصلي تبين الصورة الآتية آلية عمل الفيروس .
[c]
[/c]
يمكننا الآن تلخيص طريقة عمل الفيروس الملتصق بالملف COM بالخطوات التالية :
- عند شحن الملف المصاب وبدء التنفيذ يستلم الفيروس التحكم مباشرة .
- يبدأ الفيروس الموجود في الذاكرة بالبحث عن ملفات أخرى مناسبة بهدف مهاجمتها.
- إذا وجد الفيروس ملفاً مناسباً يقوم بنسخ تعليماته نفسها إلى نهاية ذلك الملف
- يقوم بعد ذلك بقراءة البايتات الأولى من الملف وينقلها إلى الذاكرة ثم يعيد كتابتها في منطقة خاصة بالمعطيات من ترميز الفيروس نفسه ، إذ تحتاج نسخة الفيروس الجديدة عند تنفيذها إلى استخدام محتويات هذه البايتات.
- يكتب في بداية الملف الذي يهاجمه حالياً تعليمة تفريع إلى عنوان بداية نسخة الفيروس الجديدة ضمن هذا الملف، بحيث يؤدي تنفيذ هذه التعليمة عند طلب تنفيذ هذا الملف إلى نقل التحكم إلى تعليمات الفيروس.
- يقوم الفيروس الموجود في الذاكرة حالياً بإعادة كتابة البايتات الأولى من الملف الحالي المطلوب تنفيذه والتي كان قد احتفظ بها في منطقة خاصة بمعطياته، بحيث تعود محتويات هذه البايتات إلى موقعها الصحيح في بداية المقطع ( أي في العنوان ذي الانزياح 100H ) .
- ينفذ الفيروس تعليمة تفريع إلى العنوان 100H بحيث يبدأ تنفيذ تعليمات البرنامج الأصلي.
[/list=1]
(f) --والسؤال الآن : كيف يبحث الفيروسات عن الملفات المناسبة لإصابتها ؟ وهذا ما سوف نعرفه بإذن الله في الدرس القادم .--(f)
الدرس الاول
http://www.arabteam2000.com/vb/showthread....p?threadid=6587
الدرس الثاني
http://www.arabteam2000.com/vb/showthread....p?threadid=6677
-----------------------------------
المرجع : كتاب تشريح الفيروسات ( بتصرف )
اخوكم