Anda di halaman 1dari 15

Cara Membuat Virus

Ingin mengetahui Cara Membuat Virus baik itu virus komputer maupun handphone mudah kok
karena Cara kerjanya Membuat Virus hampir sama. Hanya saja perbedaannya pada kode
pemrograman dan cara kerja virus yg telah jadi nantinya.

Kalian ingat gak dengan virus Aksika, Virus “open source” satu itu sungguh mempunyai banyak
sekali jenisnya. Tidak heran karena source code-nya memang disediakan gratis di Internet, jadi
siapa saja bisa dengan mudah mengubah dan merobah source codenya dan jadilah jenis baru dari
Cara Membuat Virus.

Berawal dari kemudahan itulah, banyak Cara Membuat Virus atau programer newbi mencoba–
coba untuk membuat virus tanpa perlu usaha extra. Cuma dibutuhkan hanya pengetahuan seputar
operating system dan programming Komputer saja.

Namun kemudahan itu belum seberapa, bila dibandingkan dengan menggunakan aplikasi Virus
Generator. Dari namanya saja, kita sudah dapat mengira kegunaan dari aplikasi tersebut. Ya,
Virus Generator merupakan aplikasi untuk dapat membuat virus secara mudah dan instan.

Bermula dari contoh sebuah virus lumayan banyak dikirimkan oleh pembaca kepada kami. PC
Media Antivirus mengenalnya dengan nama Gen.FFE-Fajar, tetapi antivirus lain ada juga
menyebutnya dengan nama Brontok.D. Dengan penyelidikan sederhana akhirnya diketahui
bahwa virus tersebut dibuat dari Virus Generator.

Fast Firus Engine (FFE)


Pembuat Cara Membuat Virus Generator tersebut menamakan aplikasi buatannya itu dengan
nama Fast Firus Engine. Seperti terlihat pada aplikasi ataupun situs pembuatnya, ia
memberitahukan bahwa aplikasi ini hanya untuk tujuan pembelajaran dan tidak untuk tindakan
merusak. Namun tetap saja, bila aplikasi ini sudah jatuh ke tangan yang salah, pasti akan
digunakan untuk melakukan perusakan.

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 aplikasi utama dalam pembuatan virusnya dan
sementara file data.exe. Sebenarnya merupakan badan virus asli belum sebelum dirobah.

Ketika file Fast Firus Engine.exe dijalankan, maka Cara Membuat Virus 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 Membuat Virus dari Generator tersebut sebenarnya sangat sederhana. Ia hanya
menambahkan data yg Anda masukkan tadi ke bagian akhir file virus asli (data.ex_). Nantinya
informasi tersebut digunakan oleh virus dalam proses infeksi.

Bagaimana Cara Membuat Virus Menginfeksi?


Virus hasil ciptaan FFE memang terlihat sederhana. Sama seperti Generatornya, ia juga dibuat
menggunakan bahasa Visual Basic 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 diisikan oleh sang pembuatnya pada
Generator). Di \%WINDOWS%\ %system32%\ akan terdapat file copy.pif, _default.pif, dan
surif.bin. Selain itu, Cara Membuat Virus juga mengubah atau membuat file Oeminfo.ini
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 menggunakan


nama 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 akan terdapat sebuah file dengan nama “baca euy.txt” 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
Cara Membuat Virus, Name of the virus, dan Messages. Nah, isi dari kotak messages ini
nantinya ditampilkan pada file “baca euy.txt” tersebut.

Setelah virus berhasil memindahkan 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 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 yg running
biasanya berasal dari direktori System32.

Cara Membuat Virus 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 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 ketika mengakses aplikasi dengan nama file
seperti itu, maka akan di-bypass oleh Windows dan dialihkan ke file induk si virus.

Bagaimana Cara Membuat Virus Virus Menyebar?


Virus ini dapat menyebar melalui media penyimpan data seperti flash disk. Saat kita
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 dapatrunning 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.

Cara Virus Beraksi?


Untuk dapat bertahan hidup, virus ini pun akan mencoba untuk memblok setiap aplikasi yang
tidak ia inginkan seperti tools atau aplikasi antivirus termasuk PCMAV. Sama seperti halnya
dataregistry yang diubah, data mengenai aplikasi apa saja yang diblok olehnya juga terdapat
dalam tubuhnya dalam kondisi terenkripsi.
Jadi, saat virus komputer sudah berada di memory, ia akan memantau setiap aplikasi yang
diakses oleh user, yakni dengan membaca nama file dan juga caption Window. Beberapa nama
program 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 aplikasi setup atau installer juga tidak dapat dijalankan pada komputer
terinfeksi.
Membuat Antivirus 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.

Anda mungkin juga menyukai