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,
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
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.
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.
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
DAFTAR PUSTAKA LAMPIRAN
Lampiran A: Kartu Bimbingan Tugas Akhir Mahasiswa
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
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.
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.
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 :
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
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
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 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).
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).
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
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.
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.
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.
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.
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:
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 )
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).
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).
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.
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).
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.
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.
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
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
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
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
42
saya, serta dapat merancang peangkat lunak khususnya dibidang utility sehingga dapat mendeteksi lebih banyak virus komputer.
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.
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
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,
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
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 ...
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
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
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
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
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.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,
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
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
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
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)
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))
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
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
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
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))
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))
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)))
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(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(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
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
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)
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
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:
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
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
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
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)
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
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)
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
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
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
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
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) + _
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
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