Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
1Activity
0 of .
Results for:
No results containing your search query
P. 1
Cara Membuat Anti Virus

Cara Membuat Anti Virus

Ratings: (0)|Views: 34 |Likes:
Published by epultura

More info:

Published by: epultura on May 17, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/17/2011

pdf

text

original

 
Cara buat ANTIVIRUS pakai VB 6.0 
Sekarang kehadiran para virus maker (
 –
selanjutnya disingkat jadi VMsaja) lokal telah membuat gerah para user komputer tanah air. Bisadibayangkan bila dari sekian banyak virus lokal tidak satu-dua yang
menghancurkan data (terutama bagi file office; word, excel, dll…). Bagi
 para vendor Anti Virus (
 –
selanjutnya disingkat menjadi AV saja)fenomena ini adalah lahan bisnis untuk produk mereka.Sebut sajaNORMAN, yang kini men-support perusahaan konsultan virus lokal(
 –
VAKSIN.COM) , Symantec, McAffe, NOD32, dan sebagainya. Denganmenawarkan update definisi software AV tercepat, engine scanner palingsensitif, dan lain-lain merupakan kiat untuk memancing para korbanvirus membeli dan menggunakan software AV mereka. Bagi penulis sendirihal ini memang agak memberatkan mengingat update file definisi atauengine AV tsb haruslah melalui koneksi internet.Lalu bagaimana yangtidak mempunyai akses sama sekali? Konsekuensinya iyalah tertinggaldalam hal pengenalan varian virus baru yang pada ujung-ujungnya membuat
AV yang sudah terinstall bagai „Macan Ompong‟. Kalau kita membuat AV
 sendiri bagaimana? dengan database definisi yang bisa diupdate olehkita bahkan dapat saling tukar dengan teman? Bisa saja, dengan syaratmau mempelajari sedikit teknik pemograman.Pertama kita harus mengerti bagaimana cara kerjasebuah AV sederhana, pada dasarnya sebuah software AV mempunyaikomponen-komponen :1. Engine scanner, ini merupakan komponen utama AVdalam mengenali sebuah pattern virus. Engine ini dapat dikelompokkanmenjadi statis dan dinamis. Statis dalam hal ini dapat disebut menjadispesifik terhadap pattern tertentu dari sebuah file virus. Checksummerupakan salah satu contoh dari engine statis ini. Dinamis dalam
artian dia mengenali perilaku „umum‟ sebuah virus. Heuristic menjadi
 salah satu contohnya.2. Database definition, menjadi sebuah referensi dari sebuah patternfile virus. Engine statis sangat bergantung kepada komponen ini.3. Decompress atau unpacking engine, khusus untuk pengecekan file-fileyang terkompresi (*.rar, *.zip, dll) atau kompresi atau packing untukfile PE seperti UPX, MeW , dll.Tidak jarang hasil dari pengecekan terhadap filesuspect virus menghasilkan false-positive bahkan false-negative (
 –
 false-positive berarti file yang bersih dianggap thread oleh AV, danfalse-negative berarti file yang 100% thread akan dianggap bersih).Semua itu dapat diakibatkan oleh ketidak-sempurnaan dari engine scanneritu sendiri. Misalpada contoh kasus Engine String scanner (
 –
Engine scanner yangmenyeleksi string-string dari file text-based), bila diterapkan rule 3out of 5 (
 –
bila AV menemukan 3 dari daftar 5 string kategori
 
malicious) maka AV akan memberikan bahwa file terindikasi sebuah threadyang positif. Padahal file tsb nyatanya tidak menimbulkan efekberbahaya bila dijalankan atau dieksekusi. Kesalahan scanning macam inilazim ditemukan untuk file-file *.VBS, *.HTML, dll. Untuk penggunaanengine checksum sangat banyak ditemui di beberapa software AV lokal.Checksum yang lazim digunakan diantaranya CRC16, CRC32, MD5, dll.Dikarenakan mudah untuk diimplementasikan. Engine ini sendiri bukannyatanpa cacat, Checksum bekerja dengan memproses byte demi byte darisebuah file dengan sebuah algoritma tertenu (
 –
tergantung dari jenischecksum yang digunakan) sehingga menghasilkan sebuah format tertentudari file tsb. Contoh checksum menggunakan CRC32 dan MD5 :* calCrc = CRC32(file_name_and_path)* calMD5 = MD5(file_name_and_path)Maka isi dari string calCrc adalah 7AF9E376,sedangkan untuk MD5nya adalah 529CA8050A00180790CF88B63468826A. Perludiketahui bila virus menerapkan rutin yang mengubah byte tertentu daribadan virus tsb setiap kali maka penggunaan engine checksum ini akankurang optimal karena bila 1 byte berubah dari file maka checksum jugaakan berubah.Mari kita belajar membuat sebuah AV sederhana, yang diperlukan :1. Software Visual Basic 6.02. Sedikit pemahaman akan pemograman Visual Basic 6.03. Sampel file bersih atau virus (
 –
opsional)First#Sekarang kita akan belajar membuat sebuah rutin sederhana untuk :- Memilih file yang akan dicek- Membuka file tersebut dalam mode binary- Memproses byte demi byte untuk menghasilkan ChecksumBuka MS-Visual Basic 6.0 anda, lalu buatlah sebuahclass module dan Form dengan menambahkan sebuah objek Textbox,CommonDialog dan Command Button. (Objek CommonDialog dapat ditambahkandengan memilih Project -> COmponent atau Ctrl-T dan memilihMicrosoft Common Dialog Control 6.0) Ketikkan kode berikut pada classmodule (kita beri nama class module tsb clsCrc) :================= START HERE ====================
Private crcTable(0 To 255) As Long „crc32
 Public Function CRC32(ByRef bArrayIn() As Byte, ByVal lLen As Long, Optional ByVal lcrc As Long = 0)As Long
„bArrayIn adalah array byte dari file yang dibaca, lLen adalah ukuran atau size file
 
Dim lCurPos As Long „Current position untuk iterasi proses array bArrayIn
 
Dim lTemp As Long „variabel temp
hasil perhitungan
If lLen = 0 Then Exit Function „keluar fungsi apabila ukuran file = 0
 lTemp = lcrc Xor &HFFFFFFFFFor lCurPos = 0 To lLenlTemp = (((lTemp And &HFFFFFF00) \\ &H100) And &HFFFFFF) Xor (crcTable((lTemp And 255) XorbArrayIn(lCurPos)))Next lCurPosCRC32 = lTemp Xor &HFFFFFFFFEnd FunctionPrivate Function BuildTable() As BooleanDim i As Long, x As Long, crc As LongConst Limit = &HEDB88320For i = 0 To 255crc = iFor x = 0 To 7If crc And 1 Then
 
crc = (((crc And &HFFFFFFFE) \\ 2) And &H7FFFFFFF) Xor LimitElsecrc = ((crc And &HFFFFFFFE) \\ 2) And &H7FFFFFFFEnd IfNext xcrcTable(i) = crcNext iEnd FunctionPrivate Sub Class_Initialize()BuildTableEnd Sub================= END HERE ====================Lalu ketikkan kode berikut dalam event Command1_Click :================= START HERE ====================Dim namaFileBuka As String, HasilCrc As String
Dim CCrc As New clsCrc „bikin objek baru dari class ClsCrc
 Dim calCrc As Long
Dim tmp() As Byte „array buat file yang dibaca
 Private Sub Command1_Click()
CommonDialog1.CancelError = True „error bila user mengklik cancel pada CommonDialog
 
CommonDialog1.DialogTitle = “Baca File” „Caption commondialog
 
On Error GoTo erorhandle „label error handle
 CommonDialog1.ShowOpennamafilbuka = CommonDialog1.FileName
Open namafilbuka For Binary Access Read As #1 „buka file yang dipilih dengan akses baca pada mode
binaryReDim tmp(LOF(1)
 –
 
1) As Byte „deklarasi ulang untuk array, # Bugs Fixed #
 Get #1, , tmp()Close #1
calCrc = UBound(tmp) „mengambil u
kuran file dari array
calCrc = CCrc.CRC32(tmp, calCrc) „hitung CRC
 
HasilCrc = Hex(calCrc) „diubah ke format hexadesimal, karena hasil perhitungan dari class CRC masih
berupa numeric
Text1.Text = HasilCrc „tampilkan hasilnya
 Exit Suberorhandle:
If Err.Number <> 32755 Then MsgBox Err.Description „error number 
 32755 dalah bila user mengklik tombol cancel pada saat memilih file================= END HERE ====================COba anda jalankan program diatas dengan memencettombol F5, lalu klik Command1 untuk memilih dan membuka file. Makaprogram akan menampilkan CRC32nya.Second#Kode diatas dapat kita buat menjadi sebuah rutin pengecekan filesuspect virus dengan antara membandingkan hasil CRC32nya dan databaseCRC kita sendiri. Algoritmanya adalah :- Memilih file yang akan dicek- Membuka file tersebut dalam mode binary- Memproses byte demi byte untuk menghasilkan Checksum- Buka file database- Ambil isi file baris demi baris- Samakan Checksum hasil perhitungan dengan checksum dari fileFormat file database dapat kita tentukan sendiri, misal :- FluBurung.A=ABCDEFGH- Diary.A=12345678

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->