PDA

View Full Version : آیا روشی برای مقابله با این ویروس هست ؟



just4froum
دوشنبه 01 خرداد 1391, 14:36 عصر
با سلام به همگی :

فرض کنید ویروسی بسیار ساده و نوشته شده با وی بی که کدی مانند کد زیر دارد.

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_DESTROY = &H2
Private Const WM_CLOSE = &H10

Private Sub Form_Load()
Timer1.Enabled = True
Timer1.Interval = 1
End Sub

Private Sub Timer1_Timer()
Dim hComputer As Long
hComputer = FindWindow(vbNullString, "Windows Task Manager")

If hComputer <> 0 Then
SendMessage hComputer, WM_CLOSE, 0, 0
End If
End Sub


خوب همانطور که از کد پیداست این ویروس پا تایمر پایین چک میکنه و هر وقت task manager باز میشه اونو می بنده !

حالا به نظر دوستان آیا روشی وجود داره که نگذاریم پنجره بسته شه ؟ (البته بدون بستن پروسس ویروس)

نمی دونم روشی مثل فایل ها که اونارو باینری باز می کردیم و lock read write می گذاشتیم آیا میشه چنین کاری رو هم با Window ها انجام داد ؟

محسن واژدی
دوشنبه 01 خرداد 1391, 15:19 عصر
سلام علیکم
همانطور که میبینیم یکی از نقاط ضعف این ویروس یا کرم در عنوان پنجره است، پس این ویروس هر پنجره ای را که "Windows Task Manager" عنوان آن باشد را میبندد، طبیعتا" اگر عنوان TaskManager تغییر کند دیگر بسته نمیشود

just4froum
دوشنبه 01 خرداد 1391, 15:23 عصر
میشه با API چنین کاری رو کرد من اطلاعات چندانی در این ضمینه ندارم ؟

اگر فرض کنیم که بشه بازم فکر نمی کنم که بشه Class رو تغییر داد درسته ؟

یعنی راهی وجود نداره که window رو Protect کنیم ؟

محسن واژدی
دوشنبه 01 خرداد 1391, 16:41 عصر
در مورد تغییر عنوان فرم میتوانید کد زیر را بررسی کنید:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_SETTEXT = &HC
Private Sub Command1_Click()
Dim sNN$
Do
sNN$ = Rnd
SendMessage FindWindow(vbNullString, "Windows Task Manager"), WM_SETTEXT, 0, ByVal sNN$
DoEvents
Loop
End Sub

چون این کد صرفا برای مثال است از حلقه استفاده شده وگرنه استفاده از حلقه روش بهینه ای نیست، البته برای ویروس هایی که به عنوان Taskmgr حساس هستند لزومی به نوشتن برنامه نیست کافیست taskmanager را در resource-editor باز و عنوانش را تغییر دهیم


اگر فرض کنیم که بشه بازم فکر نمی کنم که بشه Class رو تغییر داد درسته ؟بله


یعنی راهی وجود نداره که window رو Protect کنیم ؟ فعلا راه خاصی که بشه بدون بستن ویروس، فرمی را محافظت کنیم به نظرم نمیرسه

موفق باشید