Masih ingat dengan virus Aksika? Virus “open source” yang satu itu  memang memiliki banyak sekali varian. Tidak heran karena source code-nya  memang disedia kan bebas di Internet, jadi siapapun dapat dengan mudah  mengubah dan meng-compile source code-nya dan jadilah varian baru.
Berawal  dari kemudahan itulah, banyak virus maker ataupun programer pemula  mencoba–coba untuk membuat virus tanpa perlu repot. Paling yang  dibutuhkan hanyalah pengetahuan seputar operating system dan  programming.
Namun kemudahan itu belum seberapa, bila  dibandingkan dengan menggunakan program Virus Generator. Dari namanya  saja, kita sudah dapat mengira kegunaan dari program tersebut. Ya, Virus  Generator merupakan program untuk dapat membuat virus secara mudah dan  instan.
Bermula dari sampel sebuah virus yang lumayan banyak  dikirimkan oleh pembaca kepada kami. PC Media Antivirus mengenalnya  dengan nama Gen.FFE-Fajar, namun antivirus lain ada juga yang  menyebutnya dengan nama Brontok.D. Dengan penyelidikan sederhana  akhirnya diketahui bahwa virus tersebut dibuat menggunakan Virus  Generator.
Fast Firus Engine (FFE)
Pembuat Generator tersebut  menamakan program buatannya itu dengan nama Fast Firus Engine. Seperti  yang terlihat pada program ataupun situs pembuatnya, ia memberitahukan  bahwa program ini hanya untuk tujuan pembelajaran dan tidak untuk  tindakan merusak. Namun tetap saja, bila program ini sudah jatuh ke  tangan yang salah, pasti akan digunakan untuk pengrusakan.
Virus  Generator ini dibuat menggunakan bahasa Visual Basic dan di-compress  menggunakan packer tELock. Dalam paketnya terdapat dua buah file, yakni  Fast Firus Engine.exe dan data.ex_. Fast Firus Engine. exe merupakan  program utama dalam pembuatan virusnya dan sementara file data.ex_  sebenarnya merupakan badan virus asli yang belum dimodifi kasi.
Saat  file Fast Firus Engine.exe dijalankan, maka pengguna akan dihadapkan  pada sebuah interface. Anda hanya disuruh mengisikan nama virus, nama  pembuat, dan pesan-pesannya. Lalu dengan menekan tombol Generate, maka  jadilah virus Anda.
Cara kerja dari Generator tersebut sebenarnya  sangat sederhana. Ia hanya menambahkan data yang Anda masukkan tadi ke  bagian akhir file virus asli (data.ex_). Nantinya informasi tersebut  digunakan oleh virus dalam proses infeksi.
Bagaimana Virus  Menginfeksi?
Virus hasil ciptaan FFE memang terlihat sederhana. Sama  seperti Generatornya, ia juga dibuat menggunakan bahasa Visual Basic  yang di-compile dengan metode Native- Code. Lalu di compress menggunakan  tELock agar ukurannya semakin kecil. Virus ini memiliki ukuran tubuh  asli sebesar 55.296 bytes.
Saat virus kali pertama dieksekusi, ia  akan membuat beberapa file induk di beberapa lokasi. Seperti di  direktori \%WINDOWS%\, akan terdapat file dengan nama.exe, Win32 exe,  activex.exe, dan %virusname% (nama virus sesuai yang diisikan oleh sang  pembuatnya pada Generator). Di \%WINDOWS%\ %system32%\ akan terdapat  file copy.pif, _default.pif, dan surif.bin. Selain itu, ia juga mengubah  atau membuat file Oeminfo.ini yang merupakan bagian dari System  Properties. Jadi apabila komputer Anda terinfeksi oleh virus hasil  generate dari FFE, maka pada System Properties akan terdapat tulisan  “Generated by Fast Firus Engine”.
Di direktori \%WINDOWS%\%System%\  akan terdapat beberapa file induk lagi yang menggunakan nama yang sama  seperti file system milik Windows, seperti csrss.exe, winlogon.exe,  lsass.exe, smss.exe, svchost. exe, dan winlogon.exe.
Dan tak  lupa, pada root drive pun akan terdapat file dengan nama “baca euy.txt”  yang berisikan pesan–pesan dari si pembuat virus. Jadi pada saat membuat  virus dengan menggunakan Generator tersebut, maka pembuatnya akan  disuguhkan beberapa kotak input, seperti Author of the virus, Name of  the virus, dan Messages. Nah, isi dari kotak messages ini yang nantinya  ditampilkan pada file “baca euy.txt” tersebut.
Setelah virus  berhasil meng-copy-kan file induknya ke dalam sistem tersebut, ia akan  menjalankan file induk tadi, sehingga pada memory akan terdapat beberapa  process virus, seperti csrss.exe, winlogon.exe, lsass. exe, smss.exe,  svchost.exe, dan winlogon.exe. Nama process yang mirip dengan  process/services milik Windows tersebut mungkin sengaja untuk mengecoh  user. Untuk membedakannya, Anda dapat melihat path atau lokasi process  tersebut dijalankan. Process virus ini biasanya berjalan di direktori  System sementara process/services milik Windows yang running biasanya  berasal dari direktori System32.
Mengubah Registry
Virus ini  menambahkan beberapa item startup pada registry agar pada saat memulai  Windows ia dapat running secara otomatis atau untuk mengubah setting-an  Windows agar sesuai keinginannya. Informasi mengenai registry yang  diubahnya tidak akan dapat dengan mudah kita lihat karena dalam kondisi  terenkripsi.
Yang ia ubah adalah seperti nilai dari item Userinit,  yakni dengan menambahkan parameter ke file induk. Pada key HKEY_CURRENT_  USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Load juga  akan diubah itemnya agar mengarah ke file induknya dengan nama  Activex.exe. Pada HKEY_CURRENT_USER \Software\Microsoft\  Windows\CurrentVersion\Run\ akan terdapat item baru dengan nama present.  Key HKEY_ LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\Run\  akan terdapat item baru juga dengan nama Default dan %username%,  username di sini merupakan nama user yang sedang aktif saat itu.
Virus  hasil generate dari FFE juga mengubah shell extension untuk file .exe,  yakni dengan mengubah type information dari Application menjadi File  Folder. Setting-an folder Options juga diubah agar tidak menampilkan  extension dan setiap fi le dengan attribut hidden. Dan agar dapat aktif  pada safe-mode, ia pun mengubah nilai dari item SafeBoot.
Dengan  menggunakan bantuan registry Image File Execution Options, virus ini  juga menambahkan item baru pada section tersebut dengan nama cmd.exe,  msconfi g.exe, regedit.exe, dan taskmgr.exe. Maksudnya adalah agar  setiap user yang mengakses program dengan nama file seperti itu, maka  akan di-bypass oleh Windows dan dialihkan ke file induk si virus.
Bagaimana  Virus Menyebar?
Virus ini dapat menyebar melalui media penyimpan  data seperti flash disk. Saat Anda mencolokkan flash disk pada komputer  yang terinfeksi, maka pada flash disk tersebut akan terdapat beberapa  file baru, seperti explorer.exe, %virusname%.exe, dan msvbvm60.dll. Juga  beberapa file pendukung seperti desktop.ini, autorun.inf agar ia dapat  running otomatis pada saat mengakses flash disk tersebut.
File virus  lainnya pun disimpan pada direktori baru di flash disk tersebut dengan  nama Recycled yang berisikan file Firus.pif dan Folder.htt. Kesemua file  virus tersebut dalam kondisi hidden sehingga tidak terlihat.
Virus  Beraksi
Untuk dapat bertahan hidup, virus ini pun akan mencoba untuk  memblok setiap program yang tidak ia inginkan seperti tools atau  program antivirus termasuk PCMAV. Sama seperti halnya data registry yang  diubah, data mengenai program apa saja yang diblok olehnya juga  terdapat dalam tubuhnya dalam kondisi terenkripsi.
Jadi, saat virus  sudah stay di memory, ia akan memonitor setiap program yang diakses oleh  user, yakni dengan membaca nama file dan juga caption Window. Beberapa  nama file antivirus yang dicoba untuk dibloknya adalah nav.exe,  avgcc.exe, njeeves.exe, ccapps.exe, ccapp.exe, kav.exe, nvcoas.exe,  avp32.exe, dan masih banyak lagi yang lainnya. Termasuk beberapa program  setup atau installer juga tidak dapat dijalankan pada komputer  terinfeksi.
Pencegahan dan Penanggulangan:
PC Media Antivirus  RC19 ini dapat membersihkan komputer terinfeksi secara tuntas dan akurat  100% setiap virus yang dibuat dengan menggunakan Fast Firus Generator.  Untuk menghindari aksi blok oleh virus terhadap PCMAV, silakan Anda  rename terlebih dahulu file PCMAV misalnya PCMAV-CLN.EXE menjadi  MERDEKA.EXE.
Nah. . ni cara Membuat Anti Virus Sendiri..!!
Sekarang  kehadiran para virus maker (–selanjutnya disingkat jadi VM
saja)  lokal telah membuat gerah para user komputer tanah air. Bisa
dibayangkan  bila dari sekian banyak virus lokal tidak satu-dua yang
menghancurkan  data (terutama bagi file office; word, excel, dll…).
Bagi para  vendor Anti Virus (–selanjutnya disingkat menjadi AV saja)
fenomena  ini adalah lahan bisnis untuk produk mereka. Sebut saja
NORMAN, yang  kini men-support perusahaan konsultan virus lokal
(–VAKSIN.COM) ,  Symantec, McAffe, NOD32, dan sebagainya. Dengan
menawarkan update  definisi software AV tercepat, engine scanner paling
sensitif, dan  lain-lain merupakan kiat untuk memancing para korban
virus membeli  dan menggunakan software AV mereka.
Bagi penulis sendiri hal ini  memang agak memberatkan mengingat update file definisi atau
engine AV  tsb haruslah melalui koneksi internet. Lalu bagaimana yang
tidak  mempunyai akses sama sekali? Konsekuensinya iyalah tertinggal
dalam  hal pengenalan varian virus baru yang pada ujung-ujungnya membuat
AV  yang sudah terinstall bagai 'Macan Ompong'. Kalau kita membuat AV
sendiri  bagaimana? dengan database definisi yang bisa diupdate oleh
kita  bahkan dapat saling tukar dengan teman? Bisa saja, dengan syarat
mau  mempelajari sedikit teknik pemograman.
Pertama kita harus  mengerti bagaimana cara kerja
sebuah AV sederhana, pada dasarnya  sebuah software AV mempunyai
komponen-komponen :
1. Engine  scanner, ini merupakan komponen utama AV
dalam mengenali sebuah  pattern virus. Engine ini dapat dikelompokkan
menjadi statis dan  dinamis. Statis dalam hal ini dapat disebut menjadi
spesifik terhadap  pattern tertentu dari sebuah file virus. Checksum
merupakan salah  satu contoh dari engine statis ini. Dinamis dalam
artian dia  mengenali perilaku 'umum' sebuah virus. Heuristic menjadi
salah satu  contohnya.
2. Database definition, menjadi sebuah referensi dari  sebuah pattern
file virus. Engine statis sangat bergantung kepada  komponen ini.
3. Decompress atau unpacking engine, khusus untuk  pengecekan file-file
yang terkompresi (*.rar, *.zip, dll) atau  kompresi atau packing untuk
file PE seperti UPX, MeW , dll.
Tidak  jarang hasil dari pengecekan terhadap file
suspect virus  menghasilkan false-positive bahkan false-negative (–
false-positive  berarti file yang bersih dianggap thread oleh AV, dan
false-negative  berarti file yang 100% thread akan dianggap bersih).
Semua itu dapat  diakibatkan oleh ketidak-sempurnaan dari engine scanner
itu sendiri.  Misal
pada contoh kasus Engine String scanner (–Engine scanner  yang
menyeleksi string-string dari file text-based), bila diterapkan  rule 3
out of 5 (– bila AV menemukan 3 dari daftar 5 string kategori
malicious)  maka AV akan memberikan bahwa file terindikasi sebuah thread
yang  positif. Padahal file tsb nyatanya tidak menimbulkan efek
berbahaya  bila dijalankan atau dieksekusi. Kesalahan scanning macam ini
lazim  ditemukan untuk file-file *.VBS, *.HTML, dll. Untuk penggunaan
engine  checksum sangat banyak ditemui di beberapa software AV lokal.
Checksum  yang lazim digunakan diantaranya CRC16, CRC32, MD5, dll.
Dikarenakan  mudah untuk diimplementasikan. Engine ini sendiri bukannya
tanpa  cacat, Checksum bekerja dengan memproses byte demi byte dari
sebuah  file dengan sebuah algoritma tertenu (– tergantung dari jenis
checksum  yang digunakan) sehingga menghasilkan sebuah format tertentu
dari  file tsb. Contoh checksum menggunakan CRC32 dan MD5 :
* calCrc =  CRC32(file_name_and_path)
* calMD5 = MD5(file_name_and_path)
Maka  isi dari string calCrc adalah 7AF9E376,
sedangkan untuk MD5nya  adalah 529CA8050A00180790CF88B63468826A. Perlu
diketahui bila virus  menerapkan rutin yang mengubah byte tertentu dari
badan virus tsb  setiap kali maka penggunaan engine checksum ini akan
kurang optimal  karena bila 1 byte berubah dari file maka checksum juga
akan berubah.
Mari  kita belajar membuat sebuah AV sederhana, yang diperlukan :
1.  Software Visual Basic 6.0
2. Sedikit pemahaman akan pemograman  Visual Basic 6.0
3. Sampel file bersih atau virus (– opsional)
First#
Sekarang  kita akan belajar membuat sebuah rutin sederhana untuk :
-  Memilih file yang akan dicek
- Membuka file tersebut dalam mode  binary
- Memproses byte demi byte untuk menghasilkan Checksum
Buka  MS-Visual Basic 6.0 anda, lalu buatlah sebuah
class module dan Form  dengan menambahkan sebuah objek Textbox,
CommonDialog dan Command  Button. (Objek CommonDialog dapat ditambahkan
dengan memilih Project  -> COmponent atau Ctrl-T dan memilih
Microsoft Common Dialog  Control 6.0) Ketikkan kode berikut pada class
module (kita beri nama  class module tsb clsCrc) :
◄======= START HERE ========►
Private  crcTable(0 To 255) As Long 'crc32
Public Function CRC32(ByRef  bArrayIn() As Byte, ByVal lLen As Long, Optional ByVal lcrc As Long = 0)  As Long
'bArrayIn adalah array byte dari file yang dibaca, lLen  adalah ukuran atau size file
Dim lCurPos As Long 'Current  position untuk iterasi proses array bArrayIn
Dim lTemp As Long  'variabel temp hasil perhitungan
If lLen = 0 Then Exit Function  'keluar fungsi apabila ukuran file = 0
lTemp = lcrc Xor  &HFFFFFFFF
For lCurPos = 0 To lLen
lTemp =  (((lTemp And &HFFFFFF00) \\ &H100) And &HFFFFFF) Xor  (crcTable((lTemp And 255) Xor bArrayIn(lCurPos)))
Next lCurPos
CRC32  = lTemp Xor &HFFFFFFFF
End Function
Private Function  BuildTable() As Boolean
Dim i As Long, x As Long, crc As Long
Const  Limit = &HEDB88320
For i = 0 To 255
crc = i
For  x = 0 To 7
If crc And 1 Then
crc = (((crc And  &HFFFFFFFE) \\ 2) And &H7FFFFFFF) Xor Limit
Else
crc  = ((crc And &HFFFFFFFE) \\ 2) And &H7FFFFFFF
End If
Next  x
crcTable(i) = crc
Next i
End Function
Private  Sub Class_Initialize()
BuildTable
End Sub
◄========  END HERE  ========►
Lalu ketikkan kode berikut dalam event  Command1_Click :
◄======== START HERE  ========►
Dim  namaFileBuka As String, HasilCrc As String
Dim CCrc As New clsCrc  'bikin objek baru dari class ClsCrc
Dim calCrc As Long
Dim  tmp() As Byte 'array buat file yang dibaca
Private Sub  Command1_Click()
CommonDialog1.CancelError = True 'error bila  user mengklik cancel pada CommonDialog
CommonDialog1.DialogTitle  = "Baca File" 'Caption commondialog
On Error GoTo erorhandle  'label error handle
CommonDialog1.ShowOpen
namafilbuka =  CommonDialog1.FileName
Open namafilbuka For Binary Access Read As  #1 'buka file yang dipilih dengan akses baca pada mode binary
ReDim  tmp(LOF(1) - 1) As Byte 'deklarasi ulang untuk array, # Bugs Fixed #
Get  #1, , tmp()
Close #1
calCrc = UBound(tmp) 'mengambil  ukuran file dari array
calCrc = CCrc.CRC32(tmp, calCrc) 'hitung  CRC
HasilCrc = Hex(calCrc) 'diubah ke format hexadesimal, karena  hasil perhitungan dari class CRC masih berupa numeric
Text1.Text =  HasilCrc 'tampilkan hasilnya
Exit Sub
erorhandle:
If  Err.Number <> 32755 Then MsgBox Err.Description 'error number
32755  dalah bila user mengklik tombol cancel pada saat memilih file
◄========  END HERE ========►
COba anda jalankan program diatas dengan  memencet
tombol F5, lalu klik Command1 untuk memilih dan membuka  file. Maka
program akan menampilkan CRC32nya.
Second#
Kode  diatas dapat kita buat menjadi sebuah rutin pengecekan file
suspect  virus dengan antara membandingkan hasil CRC32nya dan database
CRC  kita sendiri. Algoritmanya adalah :
- Memilih file yang akan  dicek
- Membuka file tersebut dalam mode binary
-  Memproses byte demi byte untuk menghasilkan Checksum
- Buka file  database
- Ambil isi file baris demi baris
- Samakan  Checksum hasil perhitungan dengan checksum dari file
Format  file database dapat kita tentukan sendiri, misal :
-  FluBurung.A=ABCDEFGH
- Diary.A=12345678
Dimana FluBurung.A  adalah nama virus dan ABCDEFGH dalah Crc32nya. Jika
kita mempunyai  format file seperti diatas, maka kita perlu membaca file
secara  sekuensial per baris serta memisahkan antara nama virus dan
Crc32nya.  Dalam hal ini yang menjadi pemisah adalah karakter '='.
Buat 1  module baru (– diberi nama module1) lalu isi dengan kode :
◄========  START HERE  ========►
Public namaVirus As String, CrcVirus As  String
'deklarasi variabel global untuk nama dan CRC virus Public  pathExe as
String 'deklarasi variabel penyimpan lokasi file EXE AV  kita
Public Function cariDatabase(Crc As String, namaFileDB As  String) As Boolean
Dim lineStr As String, tmp() As String  'variabel penampung untuk isi file
Open namaFileDB For Input  As #1 'buka file dengan mode input
Do
Line Input #1,  lineStr
tmp = Split(lineStr, "=") 'pisahkan isi file bedasarkan  pemisah karakter '='
namaVirus = tmp(0) 'masukkan namavirus ke  variabel dari array
CrcVirus = tmp(1) 'masukkan Crcvirus ke  variabel dari array
If CrcVirus = Crc Then 'bila CRC perhitungan  cocok/match dengan database
cariDatabase = True 'kembalikan nilai  TRUE
Exit Do 'keluar dari perulangan
End If
Loop  Until EOF(1)
Close #1
End Function
◄======== END  HERE ========►
Lalu tambahkan 1 objek baru kedalam Form, yaitu
Command  button2. lalu ketikkan listing kode berikut kedalam event
Command2_Click  :
◄======== START HERE  ========►
If Len(App.Path) <= 3  Then 'bila direktori kita adalah root direktori   pathEXE = App.Path   Else  pathEXE = App.Path & "\\"  End If  CommonDialog1.CancelError =  True 'error bila user mengklik cancel pada CommonDialog   CommonDialog1.DialogTitle = "Baca File" 'Caption commondialog  On Error  GoTo erorhandle 'label error handle  CommonDialog1.ShowOpen    namafilbuka = CommonDialog1.FileName  Open namafilbuka For Binary Access  Read As #1 'buka file yang dipilih dengan akses baca pada mode binary   ReDim tmp(LOF(1) - 1) As Byte 'deklarasi ulang untuk array # Bugs Fixed #   Get #1, , tmp()  Close #1  calCrc = UBound(tmp) 'mengambil ukuran file  dari array  calCrc = CCrc.CRC32(tmp, calCrc) 'hitung CRC  HasilCrc =  Hex(calCrc) 'diubah ke format hexadesimal, karena hasil perhitungan dari  class CRC masih berupa numeric  If cariDatabase(HasilCrc, pathEXE &  "DB.txt") Then 'bila fungsi bernilai TRUE   MsgBox "Virus ditemukan : "  & namaVirus 'tampilkan message Box  End If  Exit Sub  erorhandle:   If Err.Number <> 32755 Then MsgBox Err.Description 'error number
32755  dalah bila user mengklik tombol cancel pada saat memilih file
◄========  END HERE  ========►
Fitur AV sederhana ini dapat ditambahkan  dengan
fitur process scanner, akses registry, real-time protection  (RTP) dan
lain lain. Untuk process scanner pada dasarnya adalah  teknik enumerasi
seluruh proses yang sedang berjalan pada Sistem  Operasi, lalu mencari
letak atau lokasi file dan melakukan proses  scanning. Fitur akses
registry memungkinkan kita untuk mengedit  secara langsung registry
windows apabila akses terhadap registry  (–Regedit) diblok oleh virus.
Sedangkan fitur RTP memungkinkan AV  kita berjalan secara simultan
dengan windows explorer untuk mengscan  direktori atau file yang sedang
kita browse atau lihat. Untuk ketiga  fitur lanjutan ini akan dibahas
pada artikel selanjutnya.
Kesimpulan#
Tidak  harus membeli software AV yang mahal untuk menjaga komputer kita
dari  ancaman virus, kita bisa membuatnya sendiri dengan fitur-fitur
yang  tak kalah bagusnya. Memang terdapat ketidaksempurnaan dalam AV
buatan  sendiri ini, tetapi setidaknya dapat dijadikan pencegah dari
infeksi  virus komputer yang semakin merajalela. Software AV sederhana
ini  dilengkapi oleh engine scanner statis dan database definisi. Tidak
tertutup  kemungkinan software AV ini ditingkatkan lebih advanced dalam
hal  engine scannernya..
Selamat Mencoba... tpi inget jangan Jadikan diri  Anda Sebagai VIRUS  yaa.. :D
Rabu, 12 Januari 2011
Cara membuat virus menggunkan nama sendiri
04.16
Andy Chaerul









0 komentar:
Posting Komentar
Ayo Berkomentar