Aplikasi Antivirus Pada Komputer Menggunakan Visual Basic 6.0

(1)

(2)

(3)

Judul : Aplikasi Antivirus Pada Komputer Menggunakan Visual Basic 6.0

Kategori : Tugas Akhir

Nama : Eka Nurapriani

Nomor Induk Mahasiswa : 112406091

Program Studi : D3 Teknik Informatika Departemen : Matematika

Fakultas : Matematika dan Ilmu Pengetahuan Alam

Disetujui di Medan, Juli 2014

Disetujui Oleh

Program Studi D3 Teknik Informatika FMIPA USU

Ketua, Pembimbing,

Dr. Elly Rosmaini, M.Si. Dr. Pasukat Sembiring, M.Si NIP. 196005201985032002 NIP. 195311131985031002


(4)

PERNYATAAN

PERANCANGAN APLIKASI ANTIVIRUS PADA KOMPUTER MENGGUNAKAN VISUAL BASIC 6.0

TUGAS AKHIR

Saya mengakui bahwa tugas akhir ini adalah hasil kerja saya sendiri. Kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Juni 2014

EKA NURAPRIANI 112406091


(5)

Puji dan syukur penulis ucapkan atas kehadirat Allah SWT yang telah memberikan kesehatan dan kesempatan serta limpahan karunia-Nya sehingga Tugas Akhir ini dapat diselesaikan dalam waktu yang telah ditetapkan dengan judul “PERANCANGAN APLIKASI ANTIVIRUS PADA KOMPUTER MENGGUNAKAN VISUAL BASIC 6.0”. Shalawat beriring salam Penulis limpahkan kepada junjungan Nabi besar Muhammad SAW, keluarga, sababat, dan para pengikut sampai akhir zaman.

Terima kasih penulis sampaikan kepada Bapak Dr. Pasukat Sembiring, M.Si selaku dosen pembimbing yang telah meluangkan waktunya selama penyusunan Tugas Akhir ini. Terima kasih kepada Bapak Prof. Dr. Tulus, M.Si selaku Ketua Departemen Matematika FMIPA USU. Ibu Dr. Elly Rosmaini, M.Si dan Bapak Syahriol Sitorus S.Si, M.IT selaku ketua Program Studi dan Sekretaris Program Studi D3 Teknik Informatika FMIPA USU, Ibu Mardiningsih, M.Si selaku sekretaris Departemen Matematika FMIPA USU, Bapak Dr. Sutarman, M.Sc selaku Dekan FMIPA USU, seluruh staff dan Dosen Dosen Program Studi D3 Teknik Informatika FMIPA USU, dan pegawai FMIPA USU. Tidak terlupakan kepada Ayahanda Basri, Ibunda Nurhaidah Nasution yang telah memberikan banyak saran, doa dan dukungan moril dan materil kepada penulis dan juga sebagai sumber inspirasi dan semangat penulis dalam menyelesaikan Tugas Akhir ini. Terima kasih juga kepada bang Dede Suprayogi yang telah memberi semangat dan dukungan kepada penulis. Dan terakhir penulis ingin mengucapkan terima kasih kepada teman-teman: Siti Kholilah Plg, Monalisa, Harmiza Khairunnisa, Rahma Annisa, bang M. Akbar Dalimunthe, Ahmad Roy Muda, Yuda Agung Pratama, M. Luthfi Rizki, Ilham Akbar, Riko Ade Sanjaya, Rifqy Mukhlizar, M. Arie Mulyawan, Rama Azhari, Bobby Anggara dan seluruh teman-teman stambuk 2011 atas semangat dan dukungannya. InsyaAllah kita semua mendapatkan Ridho-Nya sehingga sukses dalam menggapai cita-cita yang diinginkan. Aamiin.


(6)

ABSTRAK

Penulisan Tugas Akhir ini bertujuan untuk membuat rancangan aplikasi antivirus pada komputer. Antivirus merupakan sebuah aplikasi yang digunakan untuk mendeteksi dan menghapus virus pada sistem komputer yang biasa dikenal sebagaiVirus Protection Software.

Metode dan rancangan aplikasi antivirus ini dikembangkan menggunakan perangkat lunak Visual Basic 6.0 yang berperan sebagai bahasa pemrograman, editor skrip program, dan desain visual program. Cara kerja dari aplikasi antivirus ini adalah menghapus virus yang terdapat dibagian Registry, System, dan Local Drive. Hasil rancangan dari aplikasi antivirus ini dapat menentukan apakah sebuah sistem komputer terinfeksi virus atau tidak. Target yang ingin dicapai oleh penulis adalah user mampu mendeteksi dan mengupdate virus. Kajian ini dibuat bertujuan untuk menambah wawasan dan pengetahuan tentang cara membuat antivirus sederhana.


(7)

PERSETUJUAN i

PERNYATAAN ii

PENGHARGAAN iii

ABSTRAK iv

DAFTAR ISI v

DAFTAR GAMBAR vii

BAB 1. PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metodelogi Penelitian 4

1.7 Sistematika Penulisan 5

BAB 2. LANDASAN TEORI 6

2.1 Pengertian Komputer 6

2.2 Pengertian Aplikasi 7

2.3 Pengertian Virus 9

2.3.1 Jenis-jenis Virus 10

2.3.2 Cara Penyebaran Virus 13

2.3.3 Tujuan Penciptaan Virus 15

2.4 Pengertian Antivirus 15

2.5 Microsoft Visual Basic 6.0 18

2.4.1 Dasar-Dasar Microsoft Visual Basic 6.0 20 2.4.2 Komponen-Komponen Microsoft Visual Basic 6.0 21

BAB 3. PERANCANGAN SISTEM 28

3.1 Perancangan dan Perencanaan Aplikasi Antivirus 28

3.2 Flowchart 30

3.2.1 Flowchart Scan 30

3.3 Pembuatan Form Aplikasi Antivirus 31

BAB 4. IMPLEMENTASI SISTEM DAN APLIKASI ANTIVIRUS 36

4.1 Pengertian Implementasi Sistem 36

4.2 Tujuan Implementasi Sistem 36

4.3 Aplikasi Antivirus 37

BAB 5. KESIMPULAN DAN SARAN 41

5.1 Kesimpulan 41


(8)

DAFTAR PUSTAKA LAMPIRAN

Lampiran A: Kartu Bimbingan Tugas Akhir Mahasiswa

Lampiran B: Surat Keterangan Hasil Uji Program Tugas Akhir Lampiran C: Listing Program


(9)

No Judul Halaman Gambar 2.5 Tampilan Awal Kotak Dialog Visual Basic 6.0 20 Gambar 2.5.1 Tampilan Work Sheet Microsoft Visual Basic 6.0 21

Gambar 2.5.2 Tampilan Menu Bar 21

Gambar 2.5.3 Tampilan Tool Bar 22

Gambar 2.5.4 Tampilan ToolBox 22

Gambar 2.5.5 Tampilan Form 23

Gambar 2.5.6 Tampilan Project 23

Gambar 2.5.7 Tampilan Properties 24

Gambar 2.5.8 Tampilan Form Layout 25

Gambar 2.5.9 Tampilan Form Code 25

Gambar 2.5.10 Tampilan Event 26

Gambar 2.5.11 Tampilan Method 26

Gambar 2.5.12 Tampilan Window Module 27

Gambar 3.3.1 Tampilan cara membuka Visual Basic 6.0 31

Gambar 3.3.2 Tampilan New Project di Visual Basic 6.0 32

Gambar 3.3.3 Tampilan Form di Visual Basic 6.0 32

Gambar 3.3.4 Tampilan Dialog Box Components 33

Gambar 3.3.5 Tampilan Toolbox yang akan muncul setelah ditambahkan

pada Components 34

Gambar 3.3.6 Tampilan Form Utama Antivirus 34

Gambar 3.3.7 Tampilan Dialog Box Property Pages 35

Gambar 3.3.8 Tampilan dasar antivirus setelah diRun(F5) 35

Gambar 4.3.1 Tampilan loading masuk ke Antivirus 37

Gambar 4.3.2 Tampilan Awal masuk ke Antivirus 38

Gambar 4.3.3 Tampilan Utama Antivirus 38

Gambar 4.3.4 Tampilan Dialog Box “Browse for Folder” untuk memilih

direktori yang akan di Scan 39

Gambar 4.3.5 Tampilan Proses Scan 39

Gambar 4.3.6 Tamplan Hasil Scan 40


(10)

ABSTRAK

Penulisan Tugas Akhir ini bertujuan untuk membuat rancangan aplikasi antivirus pada komputer. Antivirus merupakan sebuah aplikasi yang digunakan untuk mendeteksi dan menghapus virus pada sistem komputer yang biasa dikenal sebagaiVirus Protection Software.

Metode dan rancangan aplikasi antivirus ini dikembangkan menggunakan perangkat lunak Visual Basic 6.0 yang berperan sebagai bahasa pemrograman, editor skrip program, dan desain visual program. Cara kerja dari aplikasi antivirus ini adalah menghapus virus yang terdapat dibagian Registry, System, dan Local Drive. Hasil rancangan dari aplikasi antivirus ini dapat menentukan apakah sebuah sistem komputer terinfeksi virus atau tidak. Target yang ingin dicapai oleh penulis adalah user mampu mendeteksi dan mengupdate virus. Kajian ini dibuat bertujuan untuk menambah wawasan dan pengetahuan tentang cara membuat antivirus sederhana.


(11)

PENDAHULUAN

1.1 Latar Belakang

Seiring dengan pesatnya perkembangan penggunaan komputer sebagai alat bantu manusia di berbagai bidang, semakin banyak pula jenis software yang digunakan. Sejalan dengan hal tersebut, permasalahan yang dihadapi juga semakin rumit. Dengan kenyataan itu semua orang sebagai user dituntut untuk menyelesaikan permasalahan yang ada dengan memanfaatkan kecanggihan teknologi dalam memberi informasi sehingga dalam melaksanakan pekerjaan mendapat hasil yang maksimal.

Pada saat ini dunia teknologi, khususnya komputer mengalami permasalahan yang semakin kompleks dalam menjaga keamanan sistemnya, hal ini terkait dengan tidak pernah surutnya penyebaran virus yang dibuat oleh Virus Maker. Tidak hanya sampai disitu, keberadaan virus juga akan memperlambat kinerja atau bahkan menghilangkan beberapa fungsi dari komputer.


(12)

2

Oleh karena itu dibuatlah sebuah software yang digunakan untuk memeriksa dan mengamankan file-file dengan tujuan mengidentifikasi dan menghapus virus komputer yang dikenal sebagai Antivirus.

Berdasarkan latar belakang yang telah diuraikan, maka penulis tertarik untuk membuat aplikasi antivirus komputer dengan judul:

“Perancangan Aplikasi Antivirus Pada Komputer Menggunakan Visual Basic 6.0” .

1.2 Rumusan Masalah

Sesuai dengan latar belakang masalah di atas, permasalahan yang muncul dalam perancangan dan pembuatan antivirus ini adalah bagaimana mendeteksi dan menghapus virus dalam sistem Windows yang telah terinfeksi.

1.3 Batasan Masalah

Untuk menghindari terjadinya penyimpangan maupun pembiasan topik, maka penulis membatasi ruang lingkup pemasalahan yang akan dibahas :

a. Perancangan antivirus ini hanya dipergunakan sebagai bahan pembelajaran dan penelitian untuk mendeteksi dan menghapus virus pada sistem operasi Windows.


(13)

b. Menghapus virus yang dikenal oleh antivirus dan mengkarantina beberapa virus yang tidak dikenalnya.

1.4 Tujuan Penelitian

Adapun tujuan dari penelitian Tugas Akhir ini adalah mempelajari dan meneliti lebih jauh mengenai cara kerja antivirus pada sistem operasi Windows serta mengaplikasikan ilmu yang telah diperoleh selama perkuliahan agar dapat dikembangkan.

1.5 Manfaat Penelitian

Manfaat penelitian ini adalah untuk merancang suatu software yang dinamis sehingga dapat dimanfaatkan untuk mencegah penyebaran virus dan membantu useragar dapat mendeteksi adanya virus.Selain itu manfaatnya bagi penulis dalah menambah wawasan dan pengetahuan tentang perancangan antivirus sebagai makerbukanuser.


(14)

4

1.6 Metodelogi Penelitian

Metodelogi penelitian yang digunakan penulis untuk menyelesaikan permasalahan yang terjadi di atas adalah :

1. Studi Literatur

Pengumpulan data yang erat kaitannya dengan permasalahan dengan cara membaca buku-buku, makalah dan membaca bahan-bahan sumber lainnya di perpustakaan USU.

2. Analisis Sistem

Melakukan analisis sistem terhadap masalah yang ada mengenai aplikasi antivirus dan dapat dijalankan dengan mudah serta bisa dimanfaatkan oleh pengguna komputer.

3. Desain Sistem

Pada tahap ini dilakukan perancangan aplikasi program, membuat desain aplikasi antivirus tersebut.

4. Uji Coba

Melakukan pengujian program, mengangani dan memperbaiki kesalahan yang ada pada aplikasi antivirus tersebut agar dapat berjalan dengan baik.

5. Dokumentasi

Pada tahap ini dilakukan pembuatan laporan mulai dari studi literatur sampai dengan implementasi, serta penarikan kesimpulan dan saran. Pada tahap ini juga ada dicatat apa saja yang menjadi kelemahan dan kelebihan dalam aplikasi antivirus tersebut.


(15)

1.7 Sistematika Penulisan

Secara garis besar Tugas Akhir ini dibagi atas 5 bab dan beberapa lampiran. Adapun sistematika penulisannya adalah sebagai berikut :

BAB 1 : PENDAHULUAN

Pada bab ini penulis menguraikan latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodelogi penelitian, dan sistematika penulisan.

BAB 2 : LANDASAN TEORI

Landasan teori menjelaskan hal-hal yang berhubungan dengan perancangan aplikasi antivirus pada sistem operasi Windows, seperti : penjelasan tentang komputer, pengertian aplikasi, virus, antivirus dan Microsoft Visual Basic,.

BAB 3 : PERANCANGAN SISTEM

Pada bab perancangan sistem ini akan dibahas mengenai perancangan dan perencanaan aplikasi, flowchart, struktur rancangan, dan pembuatanform aplikasi antivirus.

BAB 4 : IMPLEMENTASI SISTEM

Dalam bab ini penulis menyajikan pembahasan tentang pengertian dan tujuan implementasi sistem, tujuan implemetasi, komponen utama dalam implementasi sistem, dan menu dalam aplikasi serta pemeliharaan sistem.

BAB 5 : KESIMPULAN DAN SARAN

Bab ini menguraikan tentang kesimpulan dan saran penulis mengenai penelitian yang dilakukan selama pengerjaan Tugas Akhir ini.


(16)

BAB 2

LANDASAN TEORI

2.1 Pengertian Komputer

Komputer merupakan serangkaian ataupun sekumpulan mesin elektronik yang terdiri dari ribuan bahkan jutaan komponen yang saling bekerja sama, serta membentuk sebuah sistem kerja yang rapi dan teliti. Sistem ini kemudian dapat digunakan untuk melaksanakan serangkaian pekerjaan secara otomatis berdasarkan urutan instruksi ataupun program yang diperintahkan.

Beberapa definisi komputer menurut beberapa buku antara lain : a. Menurut buku Computer Today (Donald H. Sanders) :

Komputer adalah sistem elektronik untuk memanipulasi data yang cepat dan tepat serta dirancang dan diorganisasikan supaya secara otomatis menerima dan menyimpan data input, memprosesnya dan menghasilkan output dibawah pengawasan suatu langkah-langkah, instruksi-instruksi program yang tersimpan dimemori (stored program).


(17)

Komputer adalah suatu alat elektronik yang mampu melakukan beberapa tugas sebagai berikut :

1. Menerima input

2. Memproses input tersebut sesuai dengan programnya 3. Menyimpan perintah-peintah dan hasil dari pengolahan 4. Menyediakan output dalam bentuk informasi

Dari penjelasan diatas dapat diambil kesimpulan secara umum bahwa komputer merupakan suatu peralatan elektronik yang dapat menerima input, mengolah input dengan menggunakan suatu program yang tersimpan di memori komputer, memberikan output yang berupa informasi dan dapat enyimpan program serta hasil pengolahan dalam suatu media penyimpanan.

2.2 Pengertian Aplikasi

Beberapa pengertian aplikasi adalah sebagai berikut :

1. Aplikasi adalah satu unit perangkat lunak yang dibuat untuk melayani kebutuhan akan beberapa aktivitas (Buyens, 2001).

2. Aplikasi adalah sistem lengkap yang mengerjakan tugas spesifik (Post, 1999).

3. Aplikasi basis data terdiri atas sekumpulan menu, formulir, laporan dan program yang memenuhi kebutuhan suatu fungsional unit/bisnis/organisasi/instansi (Kroenke, 1990).


(18)

8

Dari beberapa pengertian diatas, dapat disimpulkan bahwa pengertian aplikasi adalah sebuah program komputer yang dibuat untuk membantu pekerjaan manusia dalam mengerjakan tugas tertentu. Dalam perancangan aplikasi antivirus ini penulis menggunakan Microsoft Visual Basic 6.0 sebagai alat untuk mendesain antarmuka aplikasi yang dibuat.

Beberapa macam data yang digunakan untuk membuat aplikasi :

1. Data Sumber (Source Data) merupakan fakta yang disimpan didalam basis data. Contohnya : nama, tempat lahir, tanggal lahir, dan sebagainya.

2. Meta Data digunakan untuk menjelaskan struktur basis data, type dan format penyimpanan data item dan berbagai pembatas (constrain) pada data.

3. Data Dictionary atau Data Repository digunakan untuk menyimpan informasi katalog skema dan pembatas serta data lain. Contoh : pembakuan, deskripsi program aplikasi dan informasi pemakai.

4. Overhead Data berisi linked list, indeks dan struktur data lain yang digunakan untuk menyajikanrelationship record.

2.3 Pengertian Virus

Virus komputer pertama kalinya tercipta bersamaan dengan komputer. Pada tahun 1949, salah seorang pencipta komputer, Jhon Von Newman yang menciptakan Electronic Discrete Variable Automatic Computer (EDVAC), memaparkan


(19)

sebuah makalah yang berjudul “Theory and Organization of Complicated Automata” dengan bahasan tentang kemungkinan program yang dapat menyebar dengan sendirinya. Virus komputer adalah suatu program komputer yang dapat menduplikasi atau menggandakan diri dengan menyisipkan salinan dirinya kedalam media penyimpanan/dokumen kedalam jaringan secara tersembunyi. Akibat yang ditimbulkan virus sangat beragam mulai dari munculnya pesan-pesan, menghilangkan beberapa file, tak hanya sampai disitu keberadaan virus juga akan memperlambat kinerja atau bahkan menghilangkan beberapa fungsi dari komputer.

Secara umum virus komputer dapat diartikan sebagai suatu program komputer yang biasanya berukuran kecil dan dapat menggandakan atau menyalin dirinya sendiri dan menyebar dengan cara menyisipkan salinan dirinya ke dalam program atau dokumen lain yang mengakibatkan gangguan atau kerusakan pada sistem komputer. Perlu diketahui juga virus pada komputer pada umumnya bisa merusak Software atau perangkat lunak komputer dan tidak secara langsung merusak perangkat keras komputer, virus komputer dapat merusak perangkat keras suatu komputer dengan cara memuat program pada komputer untuk memaksa over process ke perangkat tertentu misalnya VGA, Memory, hardisc atau pun bahkan Procesor. Pengaruh buruk dari virus komputer yang paling utama adalah virus yang selalu memperbanyak diri sendiri, yang dapat membuat sumber daya pada komputer, misalnya pada penggunaan memori, menjadi berkurang.


(20)

10

2.3.1 Jenis-jenis Virus

Berdasarkan beberapa sumber baik sumber pustaka maupun internet, penulis menyimpulkan beberapa jenis virus, antara lain :

1. Virus Compiler, virus yang sudah di compile sehingga dapat dieksekusi langsung. Ini adalah virus yang pertama kali muncul di dunia komputer, dan mengalami perkembangan pesat sekarang. Virus pertama ini sangatlah sulit dibasmi karena dibuat dengan bahasa rendah yaitu assembler. Memang bahasa ini cocok untuk membuat virus namun sangatlah susah menggunakannya. Keunggulan dari virus ini adalah mampu melakukan hampir seluruh manipulasi yang mana hal ini tidak selalu dapat dilakukan oleh virus jenis lain karena lebih terbatas.

2. Virus File, adalah virus yang memanfaatkan file yang dapat diijalankan/dieksekusi secara langsung. Biasanya file *.EXE atau *.COM. Tapi bisa juga menginfeksi file *.SYS, *.DRV, *.BIN, *.OVL dan *.OVY. Jenis Virus ini dapat berpindah dari satu media ke semua jenis media penyimpanan dan menyebar dalam sebuah jaringan.

3. Virus Sistem, atau lebih dikenal sebagai virus Boot karena virus ini memanfaatkan file-file yang dipakai untuk membuat suatu sistem komputer. Sering terdapat di disket/tempat penyimpanan tanpa sepengetahuan kita. Saat akan menggunakan komputer (restart), maka virus ini akan menginfeksi Master Boot Sector dan System Boot Sector jika disket yang terinfeksi ada di drive disket/tempat penyimpanan.


(21)

4. Virus Boot Sector, virus yang memanfaatkan hubungan antar komputer dan tempat penyimpanan untuk penyebaran virus.Apabila pada boot sector terdapat suatu program yang mampu menyebarkan diri dan mampu tinggal di memory selama komputer bekerja, maka program tersebut dapat disebut virus. Virus boot sector terbagi 2 yaitu : virus yang menyerang disket dan tabel partisi. 5. Virus Macro, virus yang dibuat dengan memanfaatkan fasilitas pemrograman

modular pada suatu program aplikasi seperti Ms Word, Ms Excel, Corel WordPerfect dan sebagainya. Walaupun virus ini terdapat didalam aplikasi tertentu tetapi bahaya yang ditimbulkan tidak kalah berbahanya dari virus-virus yang lain.

6. Virus Dropper, suatu program yang dimodifikasi untuk menginstal sebuah virus komputer yang menjadi target serangan. setelah terinstal, maka virus akan menyebar tetapi Dropper tidak ikut menyebar. Dropper bisa berupa nama file seperti Readme.exe atau melalui Command.com yang menjadi aktif ketika program berjalan. Satu program Dropper bisa terdapat beberapa jenis Virus. 7. Virus Script/Batch, awalnya virus ini terkenal dengan nama virus batch

seperti yang dulu terdapat di file batch yang ada di DOS. Virus script biasanya sering didapat dari Internet karena kelebihannya yang fleksibel dan bisa berjalan pada saat kita bermain internet, virus jenis ini biasanya menumpang pada file HTML (Hype Text Markup Language) dibuat dengan menggunakan fasilitas script seperti Javascript, VBscript,4 maupun gabungan antara script yang mengaktifkan program Active-X dari Microsoft Internet Explorer.

8. Virus Bagle BC, virus ini ini termasuk salah satu jenis virus yang berbahaya dan telah masuk peringkat atas jenis virus yang paling cepat mempengaruhi


(22)

12

komputer kita. Beberapa jam sejak keluarnya virus ini, sudah terdapat 2 buah varian Bagle (Bagle BD dan BE) yang menyebar melalui e-mail, jaringan komputer dan aplikasi P2P. Virus ini menyebar melalui e-mail dengan berbagai subyek berbeda. Menurut suatu penelitian dari Panda Software virus Bagle BC ini menyusup ke dalam e-mail dengan subyek antara lain : Re:, Re:Hello, Re:Hi, Re:Thank you, Re:Thanks. Attachment-nya juga bermacam-macam, antara lain : .com, .cpl, .exe, .scr. Virus Bagle BC juga mampu untuk menghentikan kerja program-program antivirus.

9. Virus Polymorphic, dapat dikatakan virus cerdas karena virus dapat mengubah strukturnya setelah melaksanakan tugas sehingga sulit dideteksi oleh Antivirus.

10. Virus Stealth, virus ini menggunakan cara cerdik, yakni dengan memodifikasi struktur file untuk meyembunyikan kode program tambahan di dalamnya. Kode ini memungkinkan virus ini dapat menyembunyika diri. Semua jenis virus lain juga memanfaatkan kode ini. Ukuran-ukuran file tidak berubah setelah virus menginfeksi file.

11. Virus Companion, virus jenis ini mencari file *.EXE untuk membuat sebuah file *.COM dan menyalin untuk meletakkan virus. Alasannya, file *.COM berjalan sebelum file *.EXE.

12. Worm, ini adalah sebuah program yang bersifat parasit karena dapat menduplikasi diri. Akan tetapi, worm tidak menyerupai virus karena tidak menginfeksi program komputer lainnya. Oleh karena itu, Worm tidak digolongkan ke dalam virus. Mainframe adalah jenis komputer yang sering diserang Worm. Penyebarannya pada komputer lainnya melalui jaringan.


(23)

Dalam perkembangannya Worm mengalami “mutasi genetik” sehingga selain membuat suatu file baru, ia pun akan berusaha menempelkan dirinya sendiri ke suatu file, ini biasa disebut virus Hybrid.

13. Virus Hybrid, virus ini merupakan virus yang mempunyai dua kemampuan biasanya dapat masuk ke boot sector dan juga dapat masuk ke file. Salah satu contoh virus ini adalah virus Mystic yang dibuat di Indonesia.

14. Trojan horse, disebut juga kuda troya. Trojan Horse tidak menyebar seperti yang lain. Karena itu, Trojan Horse tidak tergolong virus walaupun karakteristiknya sama. Trojan menginfeksi komputer melalui file yang kelihatannya tidak berbahaya dan biasanya justru tampaknya melakukan sesuatu yang berguna. Namun akhirnya virus menjadi berbahaya, misalnya melakukan format hardisk.

15. Backdoor Alnica, virus yang juga berbahaya ini merupakan salah satu tipe virus Trojan Horse. Merupakan salah satu virus backdoor yang jika berhasil menginfeksi komputer akan mampu melakukan akses dari jarak jauh dan mengambil segala informasi yang diinginkan oleh pembuat virus. Sistem operasi yang diserang oleh virus tersebut antara lain : Windows 200, Windows 95, Windows 98, Windows Me, Windows NT dan Windows XP.

2.3.2 Cara Penyebaran Virus

Virus komputer dapat menyebar ke berbagai komputer/mesin melalui beberapa cara, diantaranya:


(24)

14

Media penyimpanan eksternal dapat menjadi sasaran bagi virus untuk dijadikan media. Baik sebagai tempat menetap ataupun sebagai media penyebarannya. Media yang bisa melakukan operasi R/W (read dan Write) sangat memungkinkan untuk ditumpangi virus dan dijadikan sebagai media penyebaran.

2. Jaringan ( LAN, WAN, dan lain-lain)

Hubungan antara beberapa komputer secara langsung sangat memungkinkan suatu virus ikut berpindah saat terjadi pengeksekusian file/program yang mengandung virus.

3. Internet (www)

Sangat mungkin suatu situs sengaja menanamkan suatu virus yang akan menginfeksi komputer-komputer yang mengaksesnya.

4. Software

Banyak sekali virus yang sengaja di tanamkan dalam suatu program yang di sebarluaskan baik secara gratis, atau trial version.

5. Attachment pada Email ( transferring file )

Hampir semua jenis penyebaran virus akhir-akhir ini menggunakan email attachment dikarenakan semua pemakai jasa internet menggunakan email untuk berkomunikasi, file-file ini sengaja dibuat menarik untuk menarik perhatian penggunanya, bahkan seringkali memiliki ekstensi ganda pada penamaan filenya.


(25)

2.3.3 Tujuan Penciptaan Virus

1. Demi kepentingan komersil, dengan cara menciptakan software antivirus kemudian menjualnya.

2. Untuk menghancurkan pihak lain, misalnya saingan bisnis dengan cara merusak situs web kompetitor dan mencuri informasi berharga.

3. Melumpuhkan jaringan atau komputer pihak lain.

4. Mencuri informasi sensitif, contohnya : data-data perbankan, password email, dan nomor kartu kredit.

2.4 Pengertian Antivirus

Antivirusadalah sebuah jenis perangkat lunak yang digunakan untuk mendeteksi dan menghapus virus komputer dari sistem komputer yang dikenal denganVirus Protection Software.

Aplikasi ini dapat menentukan apakah sebuah sistem komputer telah terinfeksi dengan sebuah virus atau tidak. Umumnya, perangkat lunak ini berjalan di latar belakang (background) dan melakukan pemindaian terhadap semua berkas yang diakses (dibuka, dimodifikasi, atau ketika disimpan).

Berdasarkan penggunanya, antivirus dapat dibagi menjadi 2, yaitu : Home User dan Network. Pada Home User antivirus berjalan seperti biasa, sedangkan pada Network antivirus melakukan pemindaian di komputer-komputer client dan


(26)

16

network drive. Selain itu, proses update komputer client jaringan tidak harus langsung dari internet tetapi dapat dilakukan dari server jaringan.

Antivirus Berdasarkan Cara Memperolehnya :

1. Free antivirus : anti virus yang diperoleh secara gratis

2. Trial antivirus : Anti virus yang diperoleh secara gratis namun diberi batasan waktu

3. Donation antivirus : Anti virus yang diperoleh dengan harus mendonasi 4. Paid antivirus : antivirus yang diperoleh dengan cara membeli

Cara Kerja Antivirus :

Beberapa cara kerja / teknik yang digunakan oleh antivirus, antara lain :

1. Pendeteksian dengan menggunakan basis datavirus signature(virus signature database): Cara kerja antivirus ini merupakan pendekatan yang banyak digunakan oleh antivirus tradisional, yang mencari tanda-tanda dari keberadaan dari virus dengan menggunakan sebagian kecil dari kode virus yang telah dianalisis oleh vendor antivirus, dan telah dikatalogisasi sesuai dengan jenisnya, ukurannya, daya hancurnya dan beberapa kategori lainnya. Cara ini terbilang cepat dan dapat diandalkan untuk mendeteksi virus-virus yang telah dianalisis oleh vendor antivirus, tapi tidak dapat mendeteksi virus yang baru hingga basis data virus signature yang baru diinstalasikan ke dalam sistem. Basis data virus signature ini dapat diperoleh dari vendor antivirus dan umumnya dapat diperoleh secara gratis melalui download atau melalui berlangganan (subscription).

2. Pendeteksian dengan melihat cara bagaimana virus bekerja: Cara kerja antivirus seperti ini merupakan pendekatan yang baru yang dipinjam dari


(27)

teknologi yang diterapkan dalam Intrusion Detection System (IDS). Cara ini sering disebut juga sebagai Behavior-blocking detection. Cara ini menggunakan policy (kebijakan) yang harus diterapkan untuk mendeteksi keberadaan sebuah virus. Jika ada kelakuan perangkat lunak yang “tidak wajar” menurut policy yang diterapkan, seperti halnya perangkat lunak yang mencoba untuk mengakses address book untuk mengirimkan e-mail secara massal terhadap daftar e-mail yang berada di dalam address book tersebut (cara ini sering digunakan oleh virus untuk menularkan virus melalui e-mail), maka antivirus akan menghentikan proses yang dilakukan oleh perangkat lunak tersebut. Antivirus juga dapat mengisolasi kode-kode yang dicurigai sebagai virus hingga administrator menentukan apa yang akan dilakukan selanjutnya. Keuntungan dari cara ini adalah antivirus dapat mendeteksi adanya virus-virus baru yang belum dikenali oleh basis data virus signature. Kekurangannya, jelas karena antivirus memantau cara kerja perangkat lunak secara keseluruhan (bukan memantau berkas), maka seringnya antivirus membuat alarm palsu atau “False Alarm” (jika konfigurasi antivirus terlalu “keras”), atau bahkan mengizinkan virus untuk berkembangbiak di dalam sistem (jika konfigurasi antivirus terlalu “lunak”), terjadi false positive. Beberapa produsen menyebut teknik ini sebagai heuristic scanning.

Antivirus yang menggunakan behavior-blocking detection ini masih sedikit jumlahnya, tapi di masa yang akan datang, kemungkinan besar semua antivirus akan menggunakan cara ini. Beberapa antivirus juga menggunakan dua metode di atas secara sekaligus.


(28)

18

Pengguna Windows dapat mencegah dan menanggulangi serangan virus komputer dengan cara menginstal perangkat lunak atau software antivirus. Cara kerja suatu perangkat lunak antivirus adalah dengan cara mendeteksi dan menghapus virus. Apabila perangkat lunak antivirus tersebut tidak dapat menghapus maka virus tersebut akan dikarantina.

2.5 Microsoft Visual Basic 6.0

Sejarah Visual Basic diawali dari perkembangan bahasa BASIC di Darthmouth College, Amerika Serikat, pada awal tahun 1960-an. Sejak semula BASIC memang dirancang untuk mudah dipelajari. Begitu sederhananya sehingga nyaris semua pakar pemrograman komputer menggunakan BASIC sebagai bahasa pemrograman pertamanya. Pada tahun 1982 IBM/PC diperkenalkan pada masyarakat, Microsoft pun membuat sistem operasi MS-DOS untuk komputer ini. Didalamnya disertakan pula bahasa BASIC yang dikenal sebagai QuickBasic (QBASIC).

Pada tahun 1990-an era DOS berlalu digantikan era Windows. Tampilan grafis windows yang sangat bagus dan lebih interaktif mengubah pemrograman dari pekerjaan yang memusingkan kepala menjadi sebuah pekerjaan yang sangat menyenangkan. Microsoft pun akhirnya membuat BASIC versi Windows yang dikenal dengan nama Microsoft Visual Basic. Visual Basic memungkinkan


(29)

pembuatan aplikasi Grapichal User Interface (GUI) atau pemrograman yang menggunakan tampilan grafis sebagai alat komunikasi dengan pemakainya. Pembuatan tampilan user interface dapat dilakukan dengan meletakkan object-object grafis ke lembar (form) yang sudah disediakan oleh Visual Basic. Visual Basic merupakan bahasa Pemrograman Visual sehingga dapat mempermudah pemakai dalam mendesain tampilan program atau lebih dikenal dengan istilah user interface. Hal ini sangat bermanfaat untuk membuat program yang bekerja dalam lingkungan windows yang tampilannya lebih rumit. Dengan Bahasa Pemrograman biasa/non visual, waktu seorang programmer lebih banyak dihabiskan untuk mendesain tampilan program dibandingkan dengan penulisan program utamanya.

Visual basic adalah suatu bahasa pemrograman visual yang merupakan pengembangan terakhir dari Basic. Bahasa Pemrograman Visual Basic 6.0 merupakan perangkat lunak yang memiliki kesamaan dengan bahasa Pemrogramman Basic dan bekerja pada lingkungan sistem operasi Windows. Pemrogramman Visual Basic 6.0 juga memberikan kemudahan bagi programmer.

Dalam membuat sebuah program, kemudahan yang ditawarkan oleh bahasa pemrograman Visual Basic 6.0 adalah telah disediakannya fasilitas-fasilitas pendukung yang mudah penggunaannya tanpa menambah syntax program yang berbelit-belit seperti pada beberapa bahasa pemrograman lainnya, yang tentunya akan lebih banyak menyita waktu dan pemikiran. Selain kemudahan tersebut, Visual Basic 6.0 juga memiliki kecepatan proses yang tinggi dan keunggulan dalam file eksekusi yang dihasilkan, yang mampu berdiri sendiri diluar software pembangunnya serta kecilnya file eksekusi yang dihasilkan.


(30)

(31)

(32)

(33)

(34)

(35)

(36)

(37)

(38)

BAB 3

PERANCANGAN SISTEM

3.1 Perancangan dan Perencanaan Aplikasi Antivirus

Tahap perancangan dan perencanaan ini merupakan tahap awal yang berisikan sistem kegiatan yang dilakukan untuk mendesain suatu sistem yang mempunyai tahapan-tahapan kerja yang tersusu dalam membangun sebuah antivirus, seperti membuat perancangan dan perencanaan, flowchart, tujuan, kelebihan, kekurangan, dan menentukan komponen yang terdapat dalam sebuah antivirus untuk menentukan batasan-batasan dari sistem yang dirancang.

Dalam merancang suatu antivirus, perencanaan dan percobaan terhadap program yang dilakukan harus lebih diperhatikan dengan teliti, hal ini dikarenakan program/software yang dirancang ini merupakan suatu aplikasi yang sangat dibutuhkan oleh user untuk memproteksi komputernya terhadap serangan virus yang dapat mengancam keamanan data-datanya. Implementasi sistem ini merupakan suatu tahapan untuk meletakkan sistem agar sistem tersebut dapat dioperasikan melalui kegiatan pemrograman, yaitu dengan mentransformasikan


(39)

hasil perancangan sistem tersebut kedalam suatu bahasa pemrograman yang telah ditentukan dengan mengikuti penulisan dari program yang dipakai.

Dalam merancang suatu implementasi sistem maka diperlukan langaka-langkah yang harus dikerjakan agar proses pengejaannya mudah untuk diselesaikan. Langkah-langkah yang dimaksud adalah sebagai berikut :

1. Menentukan jangka waktu yang diperlukan dalam melakukan implementasi dari perangkat lunak yang dirancang

2. Menentukan implementasi dari perangkat lunak dan perangkat keras yang akan dipakai

3. Perancangan program dan melakukan pengujian program. Untuk melihat sejauh mana kinerja program yang dirancang serta jangka waktu yang diperlukan untuk dapat mengimplementasikan program tersebut. Setelah ada penjelasan mengenai karateristik perangkat lunak, maka dilanjutkan dengan pembahasan bahasa pemrograman serta teknik dalam merancang suatu program.Kemudian, peyusunan program langsung disesuaikan berdasarkan prosedur yang telah direncanakan dan dilanjutkan dengan pengujian perangkat lunak ang telah dibuat. Pemrograman merupakan suatu kegiatan penulisan kode program yang harus dijalankan oleh komputer berdasarkan prosedur kerja yang direncanakan


(40)

30

3.2 Flowchart

Flowchart atau bagan alur merupakan metode untuk menggambarkan tahap-tahap penyelesaian masalah (prosedur), beserta aliran data dengan simbol-simbol standar yang mudah dipahami. Dalam kehidupan sehari-hari, flowchart banyak digunakan di pusat-pusat layanan seperti kantor pemerintahan, bank, rumah sakit, organisasi masyarakat, dan perusahaan.

Tujuan utama penggunaan flowchart adalah untuk menyederhanakan rangkaian proses atau prosedur untuk memudahkan pemahaman pengguna terhadap informasi tersebut. Oleh karena itu, design sebuah flowchart harus ringkas, jelas, dan logis.

Adapun flowchart antivirus yang dibuat oleh penulis adalah :

Start

User Input Scan

List View Check

File

Report

Looping


(41)

(42)

(43)

(44)

(45)

(46)

BAB 4

IMPLEMENTASI SISTEM DAN APLIKASI ANTIVIRUS

4.1 Pengertian Implementasi Sistem

Implementasi sistem adalah prosedur yang dilakukan untuk menyelesaikan desain sistem yang didalam dokumen, desain yang disetujui, menguji sistem, menginstal serta memulai sistem yang baru atau yang baru diperbaiki. Ada juga yang mangatakan bahwa implementasi sistem adalah proes yang dilakukan untuk menyelesaikan desain dan selanjutnya di instal, diuji, dan mulai digunakan untuk menggantikan sistem yang lama.

4.2 Tujuan Implementasi Sistem

Tujuan dari implementasi sistem adalah sebagai berikut :

1. Menyelesaikan desain sistem yang ada dalam dokumen desain sistem yang disetujui

2. Menulis, menguji, mendokumentasi program yang memiliki prosedur-prosedur yang diperlukan oleh sistem yang disetujui


(47)

(48)

(49)

(50)

(51)

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Anti viirus adalah sebuah jenis perangkat lunak yang digunakan untuk mendeteksi dan menghapus virus komputer dari sistem komputer dalam perancangan anti virus ini penulis menggunakan bahasa pemrograman visual basic yang digunakan sebagai bahan pembelajar dan penelitian untuk mendeteksi dan menghapus virus pada sistem operasi windows.

Dengan merancang perangkat lunak antivirus, dapat membantu dalam membasmi virus dan sekaligus memberikan konsep perlindungan terhadap komputer.

5.2 Saran

Diharapkan melalui perangkat lunak antivirus yang sederhana ini dapat menjadi acuan bagi saya untuk dapat mengembangkan kemampuan yang adadalam diri


(52)

42

saya, serta dapat merancang peangkat lunak khususnya dibidang utility sehingga dapat mendeteksi lebih banyak virus komputer.

Keterbatasan pengetahuan yang dimiliki penulis tentang bahasa pemrograman yang digunakan dalam pembuatan aplikasi ini dapat diminimalisir sehingga dapat menciptakan perangkat lunak yang lebih baik lagi dimasa yang akan datang.


(53)

Hirin, A.M. 2010. Cara Praktis Membuat Antivirus Komputer. Mediakita. Jakarta Selatan.

MADCOMS (Tim Divisi Penelitian dan Pengembangan). 2008. Microsoft Visual Basic 6.0. Penerbit Andi. Yogyakarta.

MADCOMS (Tim Divisi Penelitian dan Pengembangan). 2011. Aplikasi Program Terintegrasi dengan Visual Basic 6.0. Penerbit Andi. Yogyakarta.

Wahana Komputer (Tim Penelitian dan Pengembangan). 2011. Tip & Trik Pemrograman Visual Basic 6.0. Penerbit Andi. Yogyakarta.


(54)

No Tanggal Asistensi Bimbingan

Pembahasan Pada Asistensi Mengenai, Pada Bab:

Paraf Dosen Pembimbing

Keterangan

1 Pengajuan Proposal

2 Bab 1

3 Bab 2

4 Bab 3

5 Bab 4


(55)

Yang bertanda tangan dibawah ini, menerangkan bahwa Mahasiswa Tugas Akhir Program D3 Teknik Informatika :

Nama : EKA NURAPRIANI

NIM : 112406091

Program Studi : DIPLOMA (D3) TEKNIK INFORMATIKA

Judul Tugas Akhir : PERANCANGAN APLIKASI ANTIVIRUS

PADA KOMPUTER MENGGUNAKAN VISUAL BASIC 6.0

Telah melaksanakan test program Tugas Akhir Mahasiswa tersebut diatas pada tanggal ...

Dengan Hasil : Sukses / Gagal

Demikian diterangkan untuk digunakan melengkapi syarat pendaftaran Ujian Meja Hijau Tugas Akhir Mahasiswa bersangkutan di Departemen Matematika FMIPA USU Medan

Medan, Juni 2014 Dosen Pembimbing

Program Studi D3 Teknik Informatika,

Dr. Pasukat Sembiring, M.Si NIP. 195311131985031002


(56)

BAHASA PEMROGRAMAN (LISTING PROGRAM)

1. Listing Program untuk Form Splash

Option Explicit Dim efek As Integer

Private Sub Form_KeyPress(KeyAscii As Integer) Unload Me

End Sub

Private Sub Form_Load()

lblVersion.Caption = "Version " & App.Major & "." & App.Minor & "." & App.Revision

lblProductName.Caption = App.Title End Sub

Private Sub Frame1_Click() Unload Me

End Sub

Private Sub Timer1_Timer() On Error Resume Next

efek = efek + 5

ProgressBar1.Value = ProgressBar1.Value + 400 / 400 If efek > 500 Then

Timer1.Enabled = False

Screen.MousePointer = vbNormal Me.WindowState = 0

Do

Me.Left = Me.Left + 80 Me.Move Me.Left, Me.Top DoEvents


(57)

Unload Me End If End Sub

2. Listing Program untuk Form Welcome

Private Sub Command1_Click() FrAntiVirus.Show 1

End Sub

Private Sub Image1_Click() End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)

Me.Label1.ForeColor = vbBlack End Sub

Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)

Me.Label1.ForeColor = vbBlue End Sub

3. Listing Program untuk Form Utama Antivirus

Option Explicit

' Program AntiVirus Sederhana ' Oleh Eka Nurapriani ... ' Mulai


(58)

Dim f As Integer

If Check1.Value = 1 Then

For f = 1 To LvQ.ListItems.Count LvQ.ListItems(f).Checked = True Next

Else

For f = 1 To LvQ.ListItems.Count LvQ.ListItems(f).Checked = False Next

End If End Sub

Private Sub CmdAction_Click() Me.Hide

FrmQuarantine.Show End Sub

Public Function StripNulls(ByVal OriginalStr As String) As String

If (InStr(OriginalStr, Chr$(0)) > 0) Then

OriginalStr = Left$(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)

End If

StripNulls = OriginalStr End Function

Dim Pathnya As String Pathnya = ""

Pathnya = BrowseFolder("Pilih folder yang akan di Scan:", Me)

If Pathnya <> "" Then txtpath.Text = Pathnya End If


(59)

Dim BrowsePath As String bInfo.hOwner = aForm.hWnd bInfo.lpszTitle = aTitle bInfo.ulFlags = &H1

pidl& = SHBrowseForFolder(bInfo) path = Space(512)

t = SHGetPathFromIDList(ByVal pidl&, ByVal path) pos% = InStr(path$, Chr$(0))

BrowseFolder = Left(path$, pos - 1) If Right$(Browse, 1) = "\" Then BrowseFolder = BrowseFolder Else

BrowseFolder = BrowseFolder + "\" End If

If Right(BrowseFolder, 2) = "\\" Then BrowseFolder = Left(BrowseFolder, Len(BrowseFolder) - 1)

If BrowseFolder = "\" Then BrowseFolder = "" End Sub

'fungsi untuk menentukan file script atau bukan

Public Function IsScript(Filename As String) As Boolean IsScript = False

ext = Split("|vbs|vbe", "|") For i = 1 To UBound(ext)

If LCase(Right(Filename, 3)) = LCase(ext(i)) Then IsScript = True

Next

End Function


(60)

Dim Pathnya As String Pathnya = ""

Pathnya = BrowseFolder("Pilih folder yang akan di Scan:", Me)

If Pathnya <> "" Then txtpath.Text = Pathnya End If

End Sub

Private Sub CmdCleaned_Click()

If LvQ.ListItems.Count = 0 Then Exit Sub Dim Data() As String

If PathFileExists(Dat) <> 0 Then Open Dat For Input As #1

Input #1, isi Close #1

DeleteFile Dat Else

isi = "" End If

Data = Split(isi, "|") For i = 1 To UBound(Data)

namafile = LvQ.SelectedItem.SubItems(2) If namafile <> Split(Data(i), "?")(1) Then nyu = nyu & "|" & Data(i)

End If Next

DeleteFile AppPath & "Quarantine\" &

LvQ.SelectedItem.SubItems(1) Open Dat For Output As #2 Print #2, nyu

Close #2


(61)

End Sub

Private Sub CmdScan_Click() Static jum_Vir As Integer If Len(txtpath.Text) > 0 Then

If CmdScan.Caption = "Scan" Then CmdScan.Caption = "Stop" LvQ.ListItems.Clear

Scan (txtpath.Text)

CmdScan.Caption = "Scan" Else

CmdScan.Caption = "Scan" End If

jum_Vir = LvQ.ListItems.Count

MsgBox "File Discan : " & jumlah_file & Chr(13) & _ "Folder Discan: " & JumDir & Chr(13) & _

"Threat Found: " & jum_Vir & Chr(13) Else

MsgBox "Pilih Path Address Terlebih Dahulu !" End If

jumlah_file = 0 JumDir = 0

End Sub

Private Sub Cleaned_Click() Static d As Integer

If CmdScan.Caption = "Stop" Then

MsgBox "Proses Scan Sedang berjalan !" Else


(62)

If LvQ.ListItems(d).Checked = True Then _ Del (LvQ.ListItems(d))

Next End If End Sub

Function Del(mana As String) SetAttr mana, vbNormal

Kill mana End Function

Private Sub cmdViewQ_Click() Me.Hide

FrmQuarantine.Show End Sub

Private Sub lblScan_Change()

LblVir.Caption = LvQ.ListItems.Count & " virus" End Sub

Private Sub Skin1_SkinEvent(ByVal Source As

ACTIVESKINLibCtl.ISkinObject, ByVal EventName As

String) L0ad.Me End Sub

Private Sub ListView1_BeforeLabelEdit(Cancel As

Integer)

Private Sub Form_Load()

LvQ.ColumnHeaders.Clear LvQ.ListItems.Clear


(63)

LvQ.ColumnHeaders.Add , , "Virus Name" LvQ.ColumnHeaders.Add , , "Path"

LvQ.ColumnHeaders.Add , , "Status Virus"

LvQ.ColumnHeaders(1).Width = 2000 LvQ.ColumnHeaders(2).Width = 3000 LvQ.ColumnHeaders(3).Width = 1000

Me.Picture = LoadPicture("") End Sub

Private Sub Menuabout_Click() FrmAbout.Show

End Sub

Private Sub Menuquit_Click() On Error Resume Next

Me.Height = 8235 Me.Width = 10320 End Sub

4. Listing Program modAPI

Public Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long

Public Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long


(64)

Public Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long

Public Declare Function PathIsDirectory Lib

"shlwapi.dll" Alias "PathIsDirectoryA" (ByVal pszPath As String) As Long

Public Declare Function CopyFile Lib "kernel32.dll" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

Public Declare Function MoveFile Lib "kernel32.dll" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long

Public Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long

Public Declare Function PathFileExists Lib

"shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long

Public Declare Function GetSystemDirectory Lib

"kernel32.dll" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Public Declare Function GetWindowsDirectory Lib

"kernel32.dll" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Public Declare Function SHGetPathFromIDList Lib

"shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long

Public Declare Function SHBrowseForFolder Lib

"shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Private Declare Function RealizePalette Lib "gdi32" (ByVal hDC As Long) As Long

Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal


(65)

dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long

Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Public Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long Public Declare Function VirtualAlloc Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long

Public Declare Function ReadFile Lib "kernel32" (ByVal

hFile As Long, lpBuffer As Any, ByVal

nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As Any) As Long

Public Declare Function WriteFile Lib "kernel32" (ByVal

hFile As Long, lpBuffer As Any, ByVal

nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As Any) As Long

Public Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long

Public Declare Function SetEndOfFile Lib "kernel32" (ByVal hFile As Long) As Long

Public Const GENERIC_READ = &H80000000 Public Const GENERIC_WRITE = &H40000000 Public Const FILE_SHARE_READ = &H1

Public Const OPEN_EXISTING = 3


(66)

Public Const INVALID_HANDLE_VALUE = -1 Public Const FILE_END = 2

Public Const FILE_BEGIN = 0 Public Const FILE_CURRENT = 1 Public Const LWA_COLORKEY = &H1 Public Const GWL_EXSTYLE = (-20) Public Const WS_EX_LAYERED = &H80000 Public Const MAX_PATH = 260

Public Const SW_SHOWNORMAL = 1

Public Type FileTime dwLowDateTime As Long dwHighDateTime As Long End Type

Public Type WIN32_FIND_DATA dwFileAttributes As Long ftCreationTime As FileTime ftLastAccessTime As FileTime ftLastWriteTime As FileTime nFileSizeHigh As Long

nFileSizeLow As Long dwReserved0 As Long dwReserved1 As Long

cFileName As String * MAX_PATH cAlternate As String * 14

End Type

Type BROWSEINFO hOwner As Long pidlRoot As Long

pszDisplayName As String lpszTitle As String


(67)

lParam As Long iImage As Long End Type

5. Listing Program modBrowse

Public Function BrowseFolder(ByVal aTitle As String, ByVal aForm As Form) As String

Dim bInfo As BROWSEINFO

Dim rtn&, pidl&, path$, pos% Dim BrowsePath As String bInfo.hOwner = aForm.hWnd bInfo.lpszTitle = aTitle bInfo.ulFlags = &H1

pidl& = SHBrowseForFolder(bInfo) path = Space(512)

t = SHGetPathFromIDList(ByVal pidl&, ByVal path) pos% = InStr(path$, Chr$(0))

BrowseFolder = Left(path$, pos - 1) If Right$(Browse, 1) = "\" Then BrowseFolder = BrowseFolder Else

BrowseFolder = BrowseFolder + "\" End If

If Right(BrowseFolder, 2) = "\\" Then BrowseFolder = Left(BrowseFolder, Len(BrowseFolder) - 1)

If BrowseFolder = "\" Then BrowseFolder = "" End Function

Public Function StripNulls(ByVal OriginalStr As String) As String


(68)

If (InStr(OriginalStr, Chr$(0)) > 0) Then

OriginalStr = Left$(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)

End If

StripNulls = OriginalStr End Function

'fungsi untuk menentukan file script atau bukan

Public Function IsScript(Filename As String) As Boolean IsScript = False

ext = Split("|vbs|vbe", "|") For i = 1 To UBound(ext)

If LCase(Right(Filename, 3)) = LCase(ext(i)) Then IsScript = True

Next

End Function

6. Listing Program modCeksum

Option Explicit

' Ceksum Standar by : Eka Nurapriani

Dim a, b, c, d, e, f, G, h, i, j, k, l, m As Integer Public na_virus(100) As String

Public no_virus(100) As String

Public Hasil, dataX, addres As String Public Const R = 99

Public Function Cheksum(alamat As String) As String Dim Data As String

On Error Resume Next

Open alamat For Binary As #1 Data = Space(LOF(1)) Get #1, , Data


(69)

dataX = Left(Data, 5000)

dataX = Replace(dataX, Chr(0), "") dataX = Replace(dataX, Chr(255), "") 'MsgBox Len(dataX)

Else

dataX = Replace(Data, Chr(0), "") dataX = Replace(Data, Chr(255), "") End If

Call Chapter1 End Function

Private Function Chapter1() Dim x1 As Integer

If Len(dataX) >= 350 Then For x1 = R To 17 + R

a = Asc(Mid(dataX, x1, 1)) If a > 0 And a < 99 Then

a = Hex(a) Exit For End If

Next

Call chapter2 Else

terlalu_kecil ' buat fungsi yang lain End If

End Function

Private Function chapter2() Dim x2 As Integer

If Len(dataX) >= 350 Then For x2 = 17 + R To R + 25


(70)

b = Asc(Mid(dataX, x2, 1)) If b > 0 And b < 199 Then

b = Hex(b) Exit For End If Next Call chapter3 End If End Function

Private Function chapter3() Dim x3 As Integer

If Len(dataX) >= 350 Then For x3 = R + 25 To R + 70

c = Asc(Mid(dataX, x3, 1)) If c > 0 And c < 199 Then

c = Hex(c) Exit For End If Next Call chapter4 End If End Function

Private Function chapter4() Dim x4 As Integer

If Len(dataX) >= 350 Then For x4 = R + 7 To R + 87

d = Asc(Mid(dataX, x4, 1)) If d > 0 And d < 199 Then

d = Hex(d) Exit For End If


(71)

End If

End Function

Private Function chapter5() Dim x5 As Integer

If Len(dataX) >= 350 Then For x5 = 87 + R To R + 95

e = Asc(Mid(dataX, x5, 1)) If e > 0 And e < 199 Then

e = Hex(e) Exit For End If

Next

Call chapter6 End If

End Function

Private Function chapter6() Dim x6 As Integer

If Len(dataX) >= 350 Then

For x6 = R + 95 To R + 140 f = Asc(Mid(dataX, x6, 1)) If f > 0 And f < 199 Then

f = Hex(f) Exit For End If

Next

Call chapter7 End If


(72)

Private Function chapter7() Dim x7 As Integer

If Len(dataX) >= 350 Then

For x7 = R + 140 To R + 157 G = Asc(Mid(dataX, x7, 1)) If G > 0 And G < 199 Then

G = Hex(G) Exit For End If Next Call chapter8 End If End Function

Private Function chapter8() Dim x8 As Integer

If Len(dataX) >= 350 Then

For x8 = R + 157 To 165 + R h = Asc(Mid(dataX, x8, 1)) If h > 0 And h < 199 Then

h = Hex(h) Exit For End If Next Call chapter9 End If End Function

Private Function chapter9() Dim x9 As Integer

If Len(dataX) >= 350 Then

For x9 = R + 165 To R + 210 i = Asc(Mid(dataX, x9, 1)) If i > 0 And i < 199 Then


(73)

End If Next

'Hasil = CStr(a) & CStr(b) & CStr(c) & CStr(d) & CStr(e) & CStr(f) & CStr(g) & CStr(h) & CStr(i)

Call chapter10 End If

End Function

Private Function chapter10() Dim x10 As Integer

If Len(dataX) >= 350 Then

For x10 = 210 + R To R + 227 j = Asc(Mid(dataX, x10, 1)) If j > 0 And j < 199 Then

j = Hex(j) Exit For End If

Next

'Hasil = CStr(a) & CStr(b) & CStr(c) & CStr(d) & CStr(e) & CStr(f) & CStr(g) & CStr(h) & CStr(i)

Call chapter11 End If

End Function

Private Function chapter11() Dim x11 As Integer

If Len(dataX) >= 350 Then

For x11 = 227 + R To R + 235 k = Asc(Mid(dataX, x11, 1)) If k > 0 And k < 199 Then


(74)

k = Hex(k) Exit For End If Next Call chapter12 End If End Function

Private Function chapter12() Dim x12 As Integer

If Len(dataX) >= 350 Then

For x12 = 235 + R To 285 + R l = Asc(Mid(dataX, x12, 1)) If l > 0 And l < 199 Then

l = Hex(l) Exit For End If

Next End If

Hasil = CStr(a) & CStr(b) & CStr(c) & CStr(d) _ & CStr(e) & CStr(f) & CStr(G) & CStr(h) _

& CStr(i) & CStr(j) & CStr(k) & CStr(l) End Function

Public Function terlalu_kecil()

Dim a1, b1, c1, d1, e1, f1, g1, h1, i1, j1 As String If Len(dataX) >= 15 Then

a1 = CStr(Asc(Mid(dataX, 1, 1))) b1 = CStr(Asc(Mid(dataX, 2, 1))) c1 = CStr(Asc(Mid(dataX, 3, 1))) d1 = CStr(Asc(Mid(dataX, 4, 1)))

e1 = CStr(Asc(Mid(dataX, Len(dataX) / 2, 1))) f1 = CStr(Asc(Mid(dataX, Len(dataX) - 4, 1)))


(75)

i1 = CStr(Asc(Mid(dataX, Len(dataX) - 1, 1)))

Hasil = a1 & b1 & c1 & d1 & e1 & f1 & g1 & h1 & i1 Else

Hasil = "FileNya Terlalu Kecil !" End If

End Function

Public Sub nama_virus() na_virus(0) = "word" na_virus(1) = "M@ma Mia" na_virus(2) = "Sipilis" na_virus(3) = "Papa Tofa" End Sub

Public Sub ceksum_virus()

no_virus(0) = "4C6510F24B464646464646" no_virus(1) = "21767512AD5325344BD546E" no_virus(2) = "261402252508C502261437" no_virus(3) = "358F8F31919C292969295EAF" End Sub

7. Listing Program modDatabase

Public VirusDB(5), IconDB(48), Bahaya(5) As String Public Sub BuildDatabase()

Call Checksum_DB Call IconCompare_DB Call Script_DB

End Sub

Private Sub Checksum_DB()

VirusDB(1) = "Alman.A|8911D290F723" VirusDB(2) = "Malingsi.A|A6292EA60230"


(76)

VirusDB(3) = "Conficker.A|9EC112ABB2F3" VirusDB(4) = "N4B3.A|B5CCD36CDB98"

VirusDB(5) = "N4B3.B|A1FE6D6DBE07" End Sub

Public Sub IconCompare_DB() On Error Resume Next

IconDB(1) = "20938B2" IconDB(2) = "19F4ED6" IconDB(3) = "133BE0B" IconDB(4) = "18EDEAE" IconDB(5) = "1EF89C2" IconDB(6) = "1C915FF" IconDB(7) = "24563C4" IconDB(8) = "1B2DB74" IconDB(9) = "208EA72" IconDB(10) = "22A064D" IconDB(11) = "19B64EE" IconDB(12) = "1D4B7E1" IconDB(13) = "2087762" IconDB(14) = "29C7258" IconDB(15) = "1B18705" IconDB(16) = "1B5FCAB" IconDB(17) = "126D4CF" IconDB(18) = "1C58E5C" IconDB(19) = "15D7730" IconDB(20) = "1FB82B7" IconDB(21) = "112763E" IconDB(22) = "2165AF9" IconDB(23) = "25F46BE" IconDB(24) = "206556B" IconDB(25) = "22A8D69" IconDB(26) = "19237F8" IconDB(27) = "15022B4"


(77)

IconDB(30) = "2333F5D" IconDB(31) = "1F37C2F" IconDB(32) = "1C9CCA4" IconDB(33) = "1DFDFB4" IconDB(34) = "1C1283E" IconDB(35) = "1F6598C" IconDB(36) = "27F4C1A" IconDB(37) = "22F92E0" IconDB(38) = "191DBDC" IconDB(39) = "27BFE4A" IconDB(40) = "20E0907" IconDB(46) = "2FA4C88" IconDB(47) = "25AA630" IconDB(48) = "1DE28E2" End Sub

Public Sub Script_DB() On Error Resume Next

Bahaya(1) =

"Scripting.FileSystemObject|Wscript.ScriptFullName|WScr ipt.Shell|.regwrite|.copy"

Bahaya(2) =

"Wscript.ScriptFullName|createobject|strreverse|.regwri te"

Bahaya(3) =

"createobject|Wscript.ScriptFullName|.regwrite|[autorun ]"

Bahaya(4) =

"createobject|Wscript.ScriptFullName|specialfolder|.reg write"


(78)

Bahaya(5) = "chr(asc(mid(|createobject|Wscript.ScriptFullName|.GetF older|.RegWrite"

End Sub

8. Listing Program modHeuristic

Private Const DI_MASK = &H1 Private Const DI_IMAGE = &H2 Private Const DI_NORMAL = &H3 Private Const DI_COMPAT = &H4

Private Const DI_DEFAULTSIZE = &H8

Private Const SHGFI_DISPLAYNAME = &H200 Private Const SHGFI_EXETYPE = &H2000

Private Const SHGFI_SYSICONINDEX = &H4000 Private Const SHGFI_LARGEICON = &H0

Private Const SHGFI_SMALLICON = &H1 Private Const ILD_TRANSPARENT = &H1 Private Const SHGFI_SHELLICONSIZE = &H4 Private Const SHGFI_TYPENAME = &H400

Private Const BASIC_SHGFI_FLAGS = SHGFI_TYPENAME Or

SHGFI_SHELLICONSIZE Or SHGFI_SYSICONINDEX Or

SHGFI_DISPLAYNAME Or SHGFI_EXETYPE Private SIconInfo As SHFILEINFO

Dim i As Integer Dim j As Integer

Public Function CekHeuristic(Filename As String) CekHeuristic = “”

On Error GoTo hError

Dim hFile As Long, bRW As Long Dim DOSheader As IMAGE_DOS_HEADER Dim NTHeaders As IMAGE_NT_HEADERS


(79)

NT_HEADERS_INFO = “”

hFile = CreateFile(Filename, ByVal (GENERIC_READ Or

GENERIC_WRITE), FILE_SHARE_READ, ByVal 0&,

OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, ByVal 0)

ReadFile hFile, DOSheader, Len(DOSheader), bRW, ByVal 0&

SetFilePointer hFile, DOSheader.e_lfanew, 0, 0

ReadFile hFile, NTHeaders, Len(NTHeaders), bRW, ByVal 0&

If NTHeaders.Signature <> IMAGE_NT_SIGNATURE Then If IsScript(Filename) = True Then

Open Filename For Binary As #1 Filedata = Space$(LOF(1))

Get #1, , Filedata Close #1

CekHeuristic = CekHeur(Filedata) End If

Exit Function End If

CekHeuristic = CekIconBinary(Filename) hError:

End Function

Private Function CekHeur(Data As String) Dim hsl, asl As Integer

strasli = LCase(Replace(Data, vbNewLine, “$”)) For i = 1 To UBound(Bahaya)

hsl = 0

strData = Split(Bahaya(i), “|”) asl = 0

For k = 0 To UBound(strData) xxx = LCase(strData(k))


(80)

If InStr(strasli, xxx) > 0 Then hsl = hsl + 1 asl = asl + 1

Next

If hsl = asl Then

CekHeur = “Malicious - Script” Exit Function

End If Next

CekHeur = “” End Function

Private Function CekIconBinary(PathFile As String) Dim q As Integer

Dim IconIDNow As String CekIconBinary = “”

IconIDNow = CalcIcon(PathFile)

If IconIDNow = “” Then Exit Function For q = 1 To UBound(IconDB)

If IconDB(q) = IconIDNow Then

CekIconBinary = “Malicious - Icon” Exit Function

End If Next q

End Function

Private Function CalcBinary(ByVal lpFileName As String, ByVal lpByteCount As Long, Optional ByVal StartByte As Long = 0) As String

Dim Bin() As Byte Dim ByteSum As Long Dim i As Long

ReDim Bin(lpByteCount) As Byte Open lpFileName For Binary As #1 If StartByte = 0 Then


(81)

End If Close #1

For i = 0 To lpByteCount

ByteSum = ByteSum + Bin(i) ^ 2 Next i

CalcBinary = Hex$(ByteSum) End Function

Private Function CalcIcon(ByVal lpFileName As String) As String

Dim PicPath As String Dim ByteSum As String Dim IconExist As Long Dim hIcon As Long

IconExist = ExtractIconEx(lpFileName, 0, ByVal 0&, hIcon, 1)

If IconExist <= 0 Then IconExist =

ExtractIconEx(lpFileName, 0, hIcon, ByVal 0&, 1) If

IconExist <= 0 Then Exit Function End If

frmUtama.sIcon.BackColor = vbWhite DrawIconEx

frmUtama.sIcon.hDC, 0, 0, hIcon, 0, 0, 0, 0, DI_NORMAL DestroyIcon hIcon PicPath = Environ$("windir") & "\tmp.tmp" SavePicture frmUtama.sIcon.Image, PicPath

ByteSum = CalcBinary(PicPath, FileLen(PicPath))

DeleteFile PicPath CalcIcon = ByteSum End Function

Fungsi di atas adalah fungsi untuk mengecek suatu file dengan metode heuristic icon + heuristic untuk virus VBS

Buat 1 module dengan nama modIconCompare lalu masukan code di bawah ini

‘Code:


(82)

Private Const SHGFI_DISPLAYNAME = &H200, SHGFI_EXETYPE = &H2000, SHGFI_SYSICONINDEX = &H4000, SHGFI_LARGEICON = &H0, SHGFI_SMALLICON = &H1, SHGFI_SHELLICONSIZE = &H4, SHGFI_TYPENAME = &H400, ILD_TRANSPARENT = &H1,

BASIC_SHGFI_FLAGS = SHGFI_TYPENAME Or

SHGFI_SHELLICONSIZE Or SHGFI_SYSICONINDEX Or

SHGFI_DISPLAYNAME Or SHGFI_EXETYPE Public Type SHFILEINFO

hIcon As Long: iIcon As Long: dwAttributes As Long: szDisplayName As String * MAX_PATH: szTypeName As String * 80

End Type

Private Declare Function SHGetFileInfo Lib

“shell32.dll” Alias “SHGetFileInfoA” (ByVal pszPath As String, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbSizeFileInfo As Long, ByVal uFlags As Long) As Long

Private Declare Function ImageList_Draw Lib

“comctl32.dll” (ByVal himl As Long, ByVal i As Long, ByVal hdcDest As Long, ByVal x As Long, ByVal y As Long, ByVal flags As Long) As Long

Private shinfo As SHFILEINFO, sshinfo As SHFILEINFO Private Declare Function DrawIconEx Lib “user32.dll” (ByVal hDC As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long

Private SIconInfo As SHFILEINFO Public Enum IconRetrieve

ricnLarge = 32 ricnSmall = 16 End Enum


(83)

Dim hImgSmall, hImgLarge As Long Debug.Print fName

Select Case icnSize Case ricnSmall

hImgSmall = SHGetFileInfo(fName$, 0&, shinfo,

Len(shinfo), BASIC_SHGFI_FLAGS Or SHGFI_SMALLICON)

Call ImageList_Draw(hImgSmall, shinfo.iIcon, DC.hDC, 0, 0, ILD_TRANSPARENT)

Case ricnLarge

hImgLarge& = SHGetFileInfo(fName$, 0&, shinfo, Len(shinfo), BASIC_SHGFI_FLAGS Or SHGFI_LARGEICON)

Call ImageList_Draw(hImgLarge, shinfo.iIcon, DC.hDC, 0, 0, ILD_TRANSPARENT)

End Select End Sub

Public Function ExtractIcon(Filename As String,

AddtoImageList As ImageList, PictureBox As PictureBox, PixelsXY As IconRetrieve, iKey As String) As Long

Dim SmallIcon As Long Dim NewImage As ListImage Dim IconIndex As Integer On Error GoTo Load_New_Icon

If iKey <> “Application” And iKey <> “Shortcut” Then ExtractIcon = AddtoImageList.ListImages(iKey).Index Exit Function

End If

Load_New_Icon:

On Error GoTo Reset_Key

RetrieveIcon Filename, PictureBox, PixelsXY IconIndex = AddtoImageList.ListImages.Count + 1


(84)

Set NewImage = AddtoImageList.ListImages.Add(IconIndex, iKey, PictureBox.Image)

ExtractIcon = IconIndex Exit Function

Reset_Key: iKey = “” Resume

End Function

Public Sub GetLargeIcon(icPath$, pDisp As PictureBox) Dim hImgLrg&: hImgLrg = SHGetFileInfo(icPath$, 0&,

SIconInfo, Len(SIconInfo), BASIC_SHGFI_FLAGS Or

SHGFI_LARGEICON)

ImageList_Draw hImgLrg, SIconInfo.iIcon, pDisp.hDC, 0, 0, ILD_TRANSPARENT

End Sub

9. Listing Program modIconCompare

Option Explicit

Private Const SHGFI_DISPLAYNAME = &H200, SHGFI_EXETYPE = &H2000, SHGFI_SYSICONINDEX = &H4000, SHGFI_LARGEICON = &H0, SHGFI_SMALLICON = &H1, SHGFI_SHELLICONSIZE = &H4, SHGFI_TYPENAME = &H400, ILD_TRANSPARENT = &H1,

BASIC_SHGFI_FLAGS = SHGFI_TYPENAME Or

SHGFI_SHELLICONSIZE Or SHGFI_SYSICONINDEX Or

SHGFI_DISPLAYNAME Or SHGFI_EXETYPE Public Type SHFILEINFO

hIcon As Long: iIcon As Long: dwAttributes As Long: szDisplayName As String * MAX_PATH: szTypeName As String * 80

End Type

Private Declare Function SHGetFileInfo Lib


(85)

As Long) As Long

Private Declare Function ImageList_Draw Lib

"comctl32.dll" (ByVal himl As Long, ByVal i As Long, ByVal hdcDest As Long, ByVal X As Long, ByVal Y As Long, ByVal flags As Long) As Long

Private shinfo As SHFILEINFO, sshinfo As SHFILEINFO Private Declare Function DrawIconEx Lib "user32.dll" (ByVal hDC As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long

Private SIconInfo As SHFILEINFO

Public Enum IconRetrieve ricnLarge = 32

ricnSmall = 16 End Enum

Public Sub RetrieveIcon(fName As String, DC As

PictureBox, icnSize As IconRetrieve) Dim hImgSmall, hImgLarge As Long Debug.Print fName

Select Case icnSize Case ricnSmall

hImgSmall = SHGetFileInfo(fName$, 0&, shinfo,

Len(shinfo), BASIC_SHGFI_FLAGS Or SHGFI_SMALLICON)

Call ImageList_Draw(hImgSmall, shinfo.iIcon, DC.hDC, 0, 0, ILD_TRANSPARENT)


(86)

hImgLarge& = SHGetFileInfo(fName$, 0&, shinfo, Len(shinfo), BASIC_SHGFI_FLAGS Or SHGFI_LARGEICON)

Call ImageList_Draw(hImgLarge, shinfo.iIcon, DC.hDC, 0, 0, ILD_TRANSPARENT)

End Select End Sub

Public Function ExtractIcon(Filename As String,

AddtoImageList As ImageList, PictureBox As PictureBox, PixelsXY As IconRetrieve, iKey As String) As Long

Dim SmallIcon As Long Dim NewImage As ListImage Dim IconIndex As Integer On Error GoTo Load_New_Icon

If iKey <> "Application" And iKey <> "Shortcut" Then ExtractIcon = AddtoImageList.ListImages(iKey).Index Exit Function

End If

Load_New_Icon:

On Error GoTo Reset_Key

RetrieveIcon Filename, PictureBox, PixelsXY IconIndex = AddtoImageList.ListImages.Count + 1

Set NewImage = AddtoImageList.ListImages.Add(IconIndex, iKey, PictureBox.Image)

ExtractIcon = IconIndex Exit Function

Reset_Key: iKey = "" Resume

End Function

Public Sub GetLargeIcon(icPath$, pDisp As PictureBox) Dim hImgLrg&: hImgLrg = SHGetFileInfo(icPath$, 0&,

SIconInfo, Len(SIconInfo), BASIC_SHGFI_FLAGS Or


(87)

End Sub

10. Listing Program modMD5

Public Function GET_MD5(Filename As String) As String On Error GoTo Salah

Dim MD5 As New clsMD5 Dim Buff As String

Buff = ReadUniCodeFile(Filename, False) Buff = Left(Buff, 2000)

MD5.MD5Init

MD5.DiegestStrToHexStr Buff GET_MD5 = MD5.GetValues Set MD5 = Nothing

Exit Function Salah:

End Function

11. Listing Program modQuar

Option Explicit

Public Function EncodeFile(SourceFile As String,

DestFile As String)

Dim ByteArray() As Byte, Filenr As Integer Filenr = FreeFile

Open SourceFile For Binary As #Filenr ReDim ByteArray(0 To LOF(Filenr) - 1) Get #Filenr, , ByteArray()


(88)

Call Coder(ByteArray())

If (PathFileExists(DestFile)) <> 0 Then DeleteFile DestFile

Open DestFile For Binary As #Filenr Put #Filenr, , ByteArray()

Close #Filenr End Function

Public Function DecodeFile(SourceFile As String,

DestFile As String)

Dim ByteArray() As Byte, Filenr As Integer Filenr = FreeFile

Open SourceFile For Binary As #Filenr ReDim ByteArray(0 To LOF(Filenr) - 1) Get #Filenr, , ByteArray()

Close #Filenr

Call DeCoder(ByteArray())

If (PathFileExists(DestFile)) <> 0 Then DeleteFile DestFile

Open DestFile For Binary As #Filenr Put #Filenr, , ByteArray()

Close #Filenr End Function

Private Sub Coder(ByteArray() As Byte) Dim X As Long

Dim Value As Integer Value = 0

For X = 0 To UBound(ByteArray) Value = Value + ByteArray(X)

If Value > 255 Then Value = Value - 256 ByteArray(X) = Value

Next End Sub


(89)

Dim newValue As Integer newValue = 0

For X = 0 To UBound(ByteArray) Value = newValue

newValue = ByteArray(X)

Value = ByteArray(X) - Value

If Value < 0 Then Value = Value + 256 ByteArray(x) = Value Next End Sub

12. Listing Program modScan

Option Explicit

Dim Total_size As Double

Public jumlah_file, JumDir As Single

Declare Function GetLogicalDrives Lib "kernel32" () As Long

Private Declare Function FindFirstFile Lib "kernel32" Alias _

"FindFirstFileA" (ByVal lpFileName As String, lpFindFileData _

As WIN32_FIND_DATA) As Long

Private Declare Function FindNextFile Lib "kernel32" Alias _

"FindNextFileA" (ByVal hFindFile As Long,

lpFindFileData As _

WIN32_FIND_DATA) As Long

Private Declare Function GetFileAttributes Lib


(90)

Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long

Private Declare Function FindClose Lib "kernel32" _ (ByVal hFindFile As Long) As Long

Private Declare Function GetSystemDirectory Lib

"kernel32" _

Alias "GetSystemDirectoryA" _

(ByVal lpBuffer As String, ByVal nSize As Long) As Long

Private Declare Function GetWindowsDirectory Lib

"kernel32" _

Alias "GetWindowsDirectoryA" _

(ByVal lpBuffer As String, ByVal nSize As Long) As Long

Const MAX_PATH = 260 Const MAXDWORD = &HFFFF

Const INVALID_HANDLE_VALUE = -1 Const FILE_ATTRIBUTE_ARCHIVE = &H20 Const FILE_ATTRIBUTE_DIRECTORY = &H10 Const FILE_ATTRIBUTE_HIDDEN = &H2 Const FILE_ATTRIBUTE_NORMAL = &H80 Const FILE_ATTRIBUTE_READONLY = &H1 Const FILE_ATTRIBUTE_SYSTEM = &H4

Const FILE_ATTRIBUTE_TEMPORARY = &H100

Private Type FileTime dwLowDateTime As Long dwHighDateTime As Long End Type

Private Type WIN32_FIND_DATA dwFileAttributes As Long ftCreationTime As FileTime ftLastAccessTime As FileTime


(91)

nFileSizeLow As Long dwReserved0 As Long dwReserved1 As Long

cFileName As String * MAX_PATH cAlternate As String * 14

End Type

'---Function StripNulls(OriginalStr As String) As String If (InStr(OriginalStr, Chr(0)) > 0) Then

OriginalStr = Left(OriginalStr,

InStr(OriginalStr, Chr(0)) - 1) End If

StripNulls = OriginalStr End Function

Function Scan(path As String) Dim Filename As String Dim DirName As String Dim dirNames() As String Dim nDir As Integer

Dim i As Integer Dim hSearch As Long

Dim WFD As WIN32_FIND_DATA Dim Cont As Integer

On Error Resume Next

If FrAntiVirus.CmdScan.Caption = "Scan" Then Exit Function

If Right(path, 1) <> "\" Then path = path & "\" nDir = 0


(92)

Cont = True

hSearch = FindFirstFile(path & "*", WFD) If hSearch <> INVALID_HANDLE_VALUE Then

Do While Cont

DirName = StripNulls(WFD.cFileName)

If (DirName <> ".") And (DirName <> "..") Then If GetFileAttributes(path & DirName) And _ FILE_ATTRIBUTE_DIRECTORY Then

dirNames(nDir) = DirName nDir = nDir + 1

JumDir = JumDir + 1

ReDim Preserve dirNames(nDir) End If

End If

Cont = FindNextFile(hSearch, WFD) 'Get next subdirectory.

DoEvents Loop

Cont = FindClose(hSearch) End If

hSearch = FindFirstFile(path & "*.*", WFD) Cont = True

If hSearch <> INVALID_HANDLE_VALUE Then

While Cont And FrAntiVirus.CmdScan.Caption = "Stop"

Filename = StripNulls(WFD.cFileName)

If (Filename <> ".") And (Filename <> "..") Then

'perhatikan pada code daerah ini [ penting ]

Scan = Scan + (WFD.nFileSizeHigh * MAXDWORD) + _


(93)

Filename

addres = path & Filename

If UCase(Right(addres, 3)) = "EXE" Or UCase(Right(addres, 3)) = "SCR" And Len(addres) <= 2000000 Then

Cheksum (addres) ' cek nilai

filenya

cek_virus ' ambil info di data_base End If

Total_size = Total_size + FileLen(path & Filename)

FrAntiVirus.LblFile.Caption =

jumlah_file & " [ " & JumDir _ & " ]"

' taruh aksi-aksi diatas z End If

Cont = FindNextFile(hSearch, WFD) ' Get next file

DoEvents Wend

Cont = FindClose(hSearch) End If

If nDir > 0 Then

For i = 0 To nDir - 1

Scan = Scan + Scan(path & dirNames(i) & "\")

DoEvents Next i

End If End Function


(94)

Function WinDir() As String

Dim sSave As String, Ret As Long sSave = Space(255)

Ret = GetWindowsDirectory(sSave, 255) WinDir = Left$(sSave, Ret)

End Function

Public Sub cek_virus() Static num As Integer Static G As ListItem Static V_name As String On Error Resume Next

For num = 0 To 3

If Hasil = "" Then Exit Sub If Hasil = no_virus(num) Then

V_name = na_virus(num)

Set G = FrAntiVirus.LvQ.ListItems.Add(, , addres)

G.SubItems(1) = V_name

G.SubItems(2) = "Waiting User" Exit For

Else

' do Nothing aja End If Next End Sub 13. modUniList '****************************************************** *******************************************

'* UniListModule.bas - IOLEInPlaceActiveObject handler for UniList


(95)

'* By Vesa Piittinen aka Merri, http://vesa.piittinen.name/ <vesa@piittinen.name>

'*

'* REQUIREMENTS '*

---'* Note: TLBs are compiled to your program so you don't need to distribute the files

'* - OleGuids3.tlb = Ole Guid and interface definitions 3.0

'*

'* VERSION HISTORY '*

---'* Version 1.0.0 (2008-06-11)

'* - Customized and simplified version for UniList

control '*

'* mIOleInPlaceActivate.bas (1999-01-09)

'* - Author: Mike Gainer, Matt Curland and Bill Storage '* - WWW: http://vbaccelerator.com

'*

'****************************************************** *******************************************

Option Explicit

Private Type GUID Data1 As Long Data2 As Integer Data3 As Integer

Data4(0 To 7) As Byte End Type


(96)

Public Type UniList_IPAOHook lpVTable As Long

ThisPointer As Long End Type

Private Const S_FALSE As Long = 1 Private Const S_OK As Long = 0

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Private Declare Function IsEqualGUID Lib "ole32" (iid1 As GUID, iid2 As GUID) As Long

Private IID_IOleInPlaceActiveObject As GUID Private m_IPAOVTable(9) As Long

Private Function AddOf(ByVal AddressOfProcedure As Long) As Long

AddOf = AddressOfProcedure End Function

Private Function IPAO_AddRef(This As UniList_IPAOHook) As Long

IPAO_AddRef = This.IPAOReal.AddRef End Function

Private Function IPAO_ContextSensitiveHelp(This As

UniList_IPAOHook, ByVal fEnterMode As Long) As Long

IPAO_ContextSensitiveHelp =


(97)

Private Function IPAO_EnableModeless(This As UniList_IPAOHook, ByVal fEnable As Long) As Long

IPAO_EnableModeless =

This.IPAOReal.EnableModeless(fEnable) End Function

Private Function IPAO_GetWindow(This As

UniList_IPAOHook, phwnd As Long) As Long

IPAO_GetWindow = This.IPAOReal.GetWindow(phwnd) End Function

Private Function IPAO_OnDocWindowActivate(This As

UniList_IPAOHook, ByVal fActivate As Long) As Long

IPAO_OnDocWindowActivate =

This.IPAOReal.OnDocWindowActivate(fActivate) End Function

Private Function IPAO_OnFrameWindowActivate(This As UniList_IPAOHook, ByVal fActivate As Long) As Long

IPAO_OnFrameWindowActivate =

This.IPAOReal.OnFrameWindowActivate(fActivate) End Function

Private Function IPAO_QueryInterface(This As

UniList_IPAOHook, riid As GUID, pvObj As Long) As Long

If IsEqualGUID(riid, IID_IOleInPlaceActiveObject)

Then

pvObj = This.ThisPointer IPAO_AddRef This

IPAO_QueryInterface = 0 Else


(98)

IPAO_QueryInterface = This.IPAOReal.QueryInterface(ByVal VarPtr(riid), pvObj)

End If End Function

Private Function IPAO_Release(This As UniList_IPAOHook) As Long

IPAO_Release = This.IPAOReal.Release End Function

IPAO_ResizeBorder =

This.IPAOReal.ResizeBorder(VarPtr(prcBorder), puiWindow, fFrameWindow)

End Function

Dim CtlText As UniList

If TypeOf This.Ctl Is UniList Then Set CtlText = This.Ctl

If CtlText.TranslateAccel(lpMsg) Then

IPAO_TranslateAccelerator = S_OK: Exit Function End If

IPAO_TranslateAccelerator =

This.IPAOReal.TranslateAccelerator(ByVal VarPtr(lpMsg)) End Function

Dim IPAO As IOleInPlaceActiveObject If m_IPAOVTable(0) = 0 Then

m_IPAOVTable(0) = AddOf(AddressOf

IPAO_QueryInterface)


(99)

IPAO_GetWindow)

m_IPAOVTable(4) = AddOf(AddressOf

IPAO_ContextSensitiveHelp)

m_IPAOVTable(5) = AddOf(AddressOf

IPAO_TranslateAccelerator)

m_IPAOVTable(6) = AddOf(AddressOf

IPAO_OnFrameWindowActivate)

m_IPAOVTable(7) = AddOf(AddressOf

IPAO_OnDocWindowActivate)

m_IPAOVTable(8) = AddOf(AddressOf

IPAO_ResizeBorder)

m_IPAOVTable(9) = AddOf(AddressOf

IPAO_EnableModeless)

With IID_IOleInPlaceActiveObject .Data1 = &H117&

.Data4(0) = &HC0 .Data4(7) = &H46 End With

End If

With UniList_IPAOHook Set IPAO = Ctl

CopyMemory .IPAOReal, IPAO, 4 CopyMemory .Ctl, Ctl, 4

.lpVTable = VarPtr(m_IPAOVTable(0)) .ThisPointer = VarPtr(UniList_IPAOHook) End With

End Sub

Public Sub UniList_Terminate(UniList_IPAOHook As

UniList_IPAOHook)

With UniList_IPAOHook


(100)

CopyMemory .Ctl, 0&, 4 End With


(1)

'* ---

---'* By Vesa Piittinen aka Merri, http://vesa.piittinen.name/ <vesa@piittinen.name>

'*

'* REQUIREMENTS '*

---'* Note: TLBs are compiled to your program so you don't need to distribute the files

'* - OleGuids3.tlb = Ole Guid and interface definitions 3.0

'*

'* VERSION HISTORY '*

---'* Version 1.0.0 (2008-06-11)

'* - Customized and simplified version for UniList control

'*

'* mIOleInPlaceActivate.bas (1999-01-09)

'* - Author: Mike Gainer, Matt Curland and Bill Storage '* - WWW: http://vbaccelerator.com

'*

'****************************************************** *******************************************

Option Explicit

Private Type GUID Data1 As Long Data2 As Integer Data3 As Integer

Data4(0 To 7) As Byte End Type


(2)

Public Type UniList_IPAOHook lpVTable As Long

ThisPointer As Long End Type

Private Const S_FALSE As Long = 1 Private Const S_OK As Long = 0

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Private Declare Function IsEqualGUID Lib "ole32" (iid1 As GUID, iid2 As GUID) As Long

Private IID_IOleInPlaceActiveObject As GUID Private m_IPAOVTable(9) As Long

Private Function AddOf(ByVal AddressOfProcedure As Long) As Long

AddOf = AddressOfProcedure End Function

Private Function IPAO_AddRef(This As UniList_IPAOHook) As Long

IPAO_AddRef = This.IPAOReal.AddRef End Function

Private Function IPAO_ContextSensitiveHelp(This As UniList_IPAOHook, ByVal fEnterMode As Long) As Long

IPAO_ContextSensitiveHelp =


(3)

End Function

Private Function IPAO_EnableModeless(This As UniList_IPAOHook, ByVal fEnable As Long) As Long

IPAO_EnableModeless =

This.IPAOReal.EnableModeless(fEnable) End Function

Private Function IPAO_GetWindow(This As UniList_IPAOHook, phwnd As Long) As Long

IPAO_GetWindow = This.IPAOReal.GetWindow(phwnd) End Function

Private Function IPAO_OnDocWindowActivate(This As UniList_IPAOHook, ByVal fActivate As Long) As Long

IPAO_OnDocWindowActivate =

This.IPAOReal.OnDocWindowActivate(fActivate) End Function

Private Function IPAO_OnFrameWindowActivate(This As UniList_IPAOHook, ByVal fActivate As Long) As Long

IPAO_OnFrameWindowActivate =

This.IPAOReal.OnFrameWindowActivate(fActivate) End Function

Private Function IPAO_QueryInterface(This As UniList_IPAOHook, riid As GUID, pvObj As Long) As Long

If IsEqualGUID(riid, IID_IOleInPlaceActiveObject) Then

pvObj = This.ThisPointer IPAO_AddRef This

IPAO_QueryInterface = 0 Else


(4)

IPAO_QueryInterface = This.IPAOReal.QueryInterface(ByVal VarPtr(riid), pvObj)

End If End Function

Private Function IPAO_Release(This As UniList_IPAOHook) As Long

IPAO_Release = This.IPAOReal.Release End Function

IPAO_ResizeBorder =

This.IPAOReal.ResizeBorder(VarPtr(prcBorder), puiWindow, fFrameWindow)

End Function

Dim CtlText As UniList

If TypeOf This.Ctl Is UniList Then Set CtlText = This.Ctl

If CtlText.TranslateAccel(lpMsg) Then IPAO_TranslateAccelerator = S_OK: Exit Function

End If

IPAO_TranslateAccelerator =

This.IPAOReal.TranslateAccelerator(ByVal VarPtr(lpMsg)) End Function

Dim IPAO As IOleInPlaceActiveObject If m_IPAOVTable(0) = 0 Then

m_IPAOVTable(0) = AddOf(AddressOf IPAO_QueryInterface)


(5)

m_IPAOVTable(2) = AddOf(AddressOf IPAO_Release) m_IPAOVTable(3) = AddOf(AddressOf IPAO_GetWindow)

m_IPAOVTable(4) = AddOf(AddressOf IPAO_ContextSensitiveHelp)

m_IPAOVTable(5) = AddOf(AddressOf IPAO_TranslateAccelerator)

m_IPAOVTable(6) = AddOf(AddressOf IPAO_OnFrameWindowActivate)

m_IPAOVTable(7) = AddOf(AddressOf IPAO_OnDocWindowActivate)

m_IPAOVTable(8) = AddOf(AddressOf IPAO_ResizeBorder)

m_IPAOVTable(9) = AddOf(AddressOf IPAO_EnableModeless)

With IID_IOleInPlaceActiveObject .Data1 = &H117&

.Data4(0) = &HC0 .Data4(7) = &H46 End With

End If

With UniList_IPAOHook Set IPAO = Ctl

CopyMemory .IPAOReal, IPAO, 4 CopyMemory .Ctl, Ctl, 4

.lpVTable = VarPtr(m_IPAOVTable(0)) .ThisPointer = VarPtr(UniList_IPAOHook) End With

End Sub

Public Sub UniList_Terminate(UniList_IPAOHook As UniList_IPAOHook)

With UniList_IPAOHook


(6)

CopyMemory .Ctl, 0&, 4 End With