آموزش پله به پله ویروس نویسی
اگر ویروس نویسی جرم است به جای ما به دنبال سازنده ویروس ایدز باشید که تمام جوانان را به دام خود برده و تا به حال ویروس کش آن را نتوانستند بسازند نه McAfee نه Symantec#

آیا می دانید بهترین کامپایلر ویروس چیست(منظور زبان های برنامه نویسی است)؟

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

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

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

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

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

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

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

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

توضیحات دقیق:
اگر دقت کنید،
در سطر اول کد نویسی از دستور 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' .پس تابع پرکاربردی است،ولی مشکل اساسی این است که بسیاری از ضد ویروس ها به استفاده از این تابع حساسیت دارند.این تابع تنها یک آرگومان نیاز دارد که یک شماره است این شماره از 0 تا 2 می باشد در زیر رشته برگردانده شده تابع را نسبت به اعداد وارد شده می بینید:
اگر 0 بدهیم آدرس پوشه ویندوز را برمیگرداند.
اگر 1 بدهیم آدرس پوشه سیستم را برمی گرداند.
اگر 2 بدهیم آدرس پوشه Temp یا فایل های موقت را برمیگرداند.
*نکته* اگر دقت کنید پس از نام متغیر این خط(Sys) یک علامت $ آورده ایم.این علامت به این معناست که متغیر را از نوع String در نظر بگیرد.از این علامت ها زمانی استفاده که نخواهیم متغیر را با استفاده از دستور Dim ایجاد کنیم.برخی علامت در زیر آمده است:
$ برای String
# برای Double
% برای Integer
! برای Single
& برای Long
@ برای Currenry
در سطر سوم یکی از روال های کلاس مذکور را صدا زدیم که این روال یک فایل را در رایانه کپی می کند.این روال حداکثر سه آرگومان نیاز دارد و حداقل دو آرگومان نیاز دارد. منظور چیست؟ منظور این است که دو آرگومان اصلی دارد و یک آرگومان اختیاری دارد.شکل اصلی این روال به صورت زیر است:
Source آدرس فایل اصلی که می خواهیم کپی است.
Destination آدرسی است که می خواهیم فایل آنجا کپی شود،است.
آرگومان سوم از نوع Boolean است یعنی یا 0 یا 1(True Or False) که اگر False باشد و فایلی در آدرس Destination وجود داشته باشد آن فایل را کپی نمیکند ولی اگر True باشد در صورت وجود فایل آن را رونویسی (Overwrite) می کند و فایل اصلی جای آن کپی می شود.
اگر دقت کنید آرگومان اول یعنی آرس فایل اصلی را به این گونه وارد کرده ایم:
App یکی از شی های وی.بی است که در آن می توانید خصوصیاتی از برنامه اجرایی خود ببینید.برای مثال چک کنید که آیا برنامه قبلا اجرا شده یا نه:
که ااگر برنامه شما قبلا اجرا شده باشد متغیر P برابر می شود با True و اگر برنامه قبلا اجرا نشده باشد مقدار False را برمی گرداند.
در اینجا ما از دو خصوصیت Path و EXEName استفاده کرده ایم ،
در خصوصیت Path مسیر فایلی ذخیره می شود که برنامه از آن اجرا می شود،مثلا اگر برنامه شما اینجا باشد:
C:\XSX_Learn\XSX_Team.Exe
در خصوصیت Path مقدار C:\XSX_Learn ذخیره می شود.
و در خصوصیت EXEName نام فایل اجرایی شما می باشد که در همان مثال بالا برابر XSX_Team می باشد.
*نکته*اگر دقت کنیددر آخر مقدار خصوصیت Path علامت \ نشان داده نمی شود و همچنین در آخر EXEName پسوند ذخیره نمی شد.پس اگر این کد را در همان مثال بالا نوشته باشیم و برنامه را اجرا کنیم:

این مقدار نمایش داده می شود:
C:\XSX_LearnXSX_Team
پس برای تصحیح کد بالا باید آن را به این گونه تغییر بدهیم:
به این منظور که گفته ایم بعد از آدرس پوشه علامت \ را اضافه کند و همچنبن بعد از نام فایل اجرایی پسوند آن را اضافه کند(Exe).که مقدار نمایش داده شده به این صورت می شود:
C:\XSX_Learn\XSX_Team.Exe
بقیه آرگومان ها هم بسیار واضح است ولی تنها نکته این اینست که متغیر Sys مقداری برابر مثلا 'C:\Windows\System32' دارد و همین طور میبینید در آخر آن علامت \ وجود ندارد.
*نکات توضیحی اضافه*
1 - فرق تابع(Function) با روال این است که تابع مقداری را بر می گرداند ولی روال یا Sub مقدار برگشتی ندارد.
2 - رشته ها در وی.بی با استفاده از علامت & به یکدیگر می چسبند.