Sekarang kehadiran para virus maker (–selanjutnya disingkat jadi VM
saja) lokal telah membuat gerah para user komputer tanah air. Bisa
dibayangkan 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 saja
NORMAN, yang kini men-support perusahaan konsultan virus lokal
(–VAKSIN.COM) , Symantec, McAffe, NOD32, dan sebagainya. Dengan
menawarkan update definisi software AV tercepat, engine scanner paling
sensitif, dan lain-lain merupakan kiat untuk memancing para korban
virus membeli dan menggunakan software AV mereka. Bagi penulis sendiri
hal ini memang agak memberatkan mengingat update file definisi atau
engine AV tsb haruslah melalui koneksi internet. Lalu bagaimana yang
tidak mempunyai akses sama sekali? Konsekuensinya iyalah tertinggal
dalam 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 oleh
kita bahkan dapat saling tukar dengan teman? Bisa saja, dengan syarat
mau mempelajari sedikit teknik pemograman.
Pertama kita harus mengerti bagaimana cara kerja
sebuah AV sederhana, pada dasarnya sebuah software AV mempunyai
komponen-komponen :
1. Engine scanner, ini merupakan komponen utama AV
dalam mengenali sebuah pattern virus. Engine ini dapat dikelompokkan
menjadi statis dan dinamis. Statis dalam hal ini dapat disebut menjadi
spesifik terhadap pattern tertentu dari sebuah file virus. Checksum
merupakan 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 pattern
file virus. Engine statis sangat bergantung kepada komponen ini.
3. Decompress atau unpacking engine, khusus untuk pengecekan file-file
yang terkompresi (*.rar, *.zip, dll) atau kompresi atau packing untuk
file PE seperti UPX, MeW , dll.
Tidak jarang hasil dari pengecekan terhadap file
suspect virus menghasilkan false-positive bahkan false-negative (–
false-positive berarti file yang bersih dianggap thread oleh AV, dan
false-negative berarti file yang 100% thread akan dianggap bersih).
Semua itu dapat diakibatkan oleh ketidak-sempurnaan dari engine scanner
itu sendiri. Misal
pada contoh kasus Engine String scanner (–Engine scanner yang
menyeleksi string-string dari file text-based), bila diterapkan rule 3
out of 5 (– bila AV menemukan 3 dari daftar 5 string kategori
malicious) maka AV akan memberikan bahwa file terindikasi sebuah thread
yang positif. Padahal file tsb nyatanya tidak menimbulkan efek
berbahaya bila dijalankan atau dieksekusi. Kesalahan scanning macam ini
lazim ditemukan untuk file-file *.VBS, *.HTML, dll. Untuk penggunaan
engine 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 bukannya
tanpa cacat, Checksum bekerja dengan memproses byte demi byte dari
sebuah file dengan sebuah algoritma tertenu (– tergantung dari jenis
checksum yang digunakan) sehingga menghasilkan sebuah format tertentu
dari 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. Perlu
diketahui bila virus menerapkan rutin yang mengubah byte tertentu dari
badan virus tsb setiap kali maka penggunaan engine checksum ini akan
kurang optimal karena bila 1 byte berubah dari file maka checksum juga
akan berubah.
Mari kita belajar membuat sebuah AV sederhana, yang diperlukan :
1. Software Visual Basic 6.0
2. Sedikit pemahaman akan pemograman Visual Basic 6.0
3. 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 Checksum
Buka MS-Visual Basic 6.0 anda, lalu buatlah sebuah
class module dan Form dengan menambahkan sebuah objek Textbox,
CommonDialog dan Command Button. (Objek CommonDialog dapat ditambahkan
dengan memilih Project -> COmponent atau Ctrl-T dan memilih
Microsoft Common Dialog Control 6.0) Ketikkan kode berikut pada class
module (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 &HFFFFFFFF
For lCurPos = 0 To lLen
lTemp = (((lTemp And &HFFFFFF00) \\ &H100) And &HFFFFFF) Xor (crcTable((lTemp And 255) Xor bArrayIn(lCurPos)))
Next lCurPos
CRC32 = lTemp Xor &HFFFFFFFF
End Function
Private Function BuildTable() As Boolean
Dim i As Long, x As Long, crc As Long
Const Limit = &HEDB88320
For i = 0 To 255
crc = i
For x = 0 To 7
If crc And 1 Then
crc = (((crc And &HFFFFFFFE) \\ 2) And &H7FFFFFFF) Xor Limit
Else
crc = ((crc And &HFFFFFFFE) \\ 2) And &H7FFFFFFF
End If
Next x
crcTable(i) = crc
Next i
End Function
Private Sub Class_Initialize()
BuildTable
End 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.ShowOpen
namafilbuka = CommonDialog1.FileName
Open namafilbuka For Binary Access Read As #1 'buka file yang dipilih dengan akses baca pada mode binary
ReDim tmp(LOF(1) - 1) As Byte 'deklarasi ulang untuk array, # Bugs Fixed #
Get #1, , tmp()
Close #1
calCrc = UBound(tmp) 'mengambil ukuran 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 Sub
erorhandle:
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 memencet
tombol F5, lalu klik Command1 untuk memilih dan membuka file. Maka
program akan menampilkan CRC32nya.
Second#
Kode diatas dapat kita buat menjadi sebuah rutin pengecekan file
suspect virus dengan antara membandingkan hasil CRC32nya dan database
CRC 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 file
Format file database dapat kita tentukan sendiri, misal :
- FluBurung.A=ABCDEFGH
- Diary.A=12345678
Dimana FluBurung.A adalah nama virus dan ABCDEFGH dalah Crc32nya. Jika
kita mempunyai format file seperti diatas, maka kita perlu membaca file
secara sekuensial per baris serta memisahkan antara nama virus dan
Crc32nya. Dalam hal ini yang menjadi pemisah adalah karakter '='.
Buat 1 module baru (– diberi nama module1) lalu isi dengan kode :
================= START HERE ====================
Public namaVirus As String, CrcVirus As String
'deklarasi variabel global untuk nama dan CRC virus Public pathExe as
String 'deklarasi variabel penyimpan lokasi file EXE AV kita
Public Function cariDatabase(Crc As String, namaFileDB As String) As Boolean
Dim lineStr As String, tmp() As String 'variabel penampung untuk isi file
Open namaFileDB For Input As #1 'buka file dengan mode input
Do
Line Input #1, lineStr
tmp = Split(lineStr, "=") 'pisahkan isi file bedasarkan pemisah karakter '='
namaVirus = tmp(0) 'masukkan namavirus ke variabel dari array
CrcVirus = tmp(1) 'masukkan Crcvirus ke variabel dari array
If CrcVirus = Crc Then 'bila CRC perhitungan cocok/match dengan database
cariDatabase = True 'kembalikan nilai TRUE
Exit Do 'keluar dari perulangan
End If
Loop Until EOF(1)
Close #1
End Function
================= END HERE ====================
Lalu tambahkan 1 objek baru kedalam Form, yaitu
Command button2. lalu ketikkan listing kode berikut kedalam event
Command2_Click :
================= START HERE ====================
If Len(App.Path) <= 3 Then 'bila direktori kita adalah root direktori
pathEXE = App.Path
Else
pathEXE = App.Path & "\\"
End If
CommonDialog1.CancelError = True 'error bila user mengklik cancel pada CommonDialog
CommonDialog1.DialogTitle = "Baca File" 'Caption commondialog
On Error GoTo erorhandle 'label error handle
CommonDialog1.ShowOpen
namafilbuka = CommonDialog1.FileName
Open namafilbuka For Binary Access Read As #1 'buka file yang dipilih dengan akses baca pada mode binary
ReDim tmp(LOF(1) - 1) As Byte 'deklarasi ulang untuk array # Bugs Fixed #
Get #1, , tmp()
Close #1
calCrc = UBound(tmp) 'mengambil ukuran 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
If cariDatabase(HasilCrc, pathEXE & "DB.txt") Then 'bila fungsi bernilai TRUE
MsgBox "Virus ditemukan : " & namaVirus 'tampilkan message Box
End If
Exit Sub
erorhandle:
If Err.Number <> 32755 Then MsgBox Err.Description 'error number
32755 dalah bila user mengklik tombol cancel pada saat memilih file
================= END HERE ====================
Fitur AV sederhana ini dapat ditambahkan dengan
fitur process scanner, akses registry, real-time protection (RTP) dan
lain lain. Untuk process scanner pada dasarnya adalah teknik enumerasi
seluruh proses yang sedang berjalan pada Sistem Operasi, lalu mencari
letak atau lokasi file dan melakukan proses scanning. Fitur akses
registry memungkinkan kita untuk mengedit secara langsung registry
windows apabila akses terhadap registry (–Regedit) diblok oleh virus.
Sedangkan fitur RTP memungkinkan AV kita berjalan secara simultan
dengan windows explorer untuk mengscan direktori atau file yang sedang
kita browse atau lihat. Untuk ketiga fitur lanjutan ini akan dibahas
pada artikel selanjutnya.
Kesimpulan#
Tidak harus membeli software AV yang mahal untuk menjaga komputer kita
dari ancaman virus, kita bisa membuatnya sendiri dengan fitur-fitur
yang tak kalah bagusnya. Memang terdapat ketidaksempurnaan dalam AV
buatan sendiri ini, tetapi setidaknya dapat dijadikan pencegah dari
infeksi virus komputer yang semakin merajalela. Software AV sederhana
ini dilengkapi oleh engine scanner statis dan database definisi. Tidak
tertutup kemungkinan software AV ini ditingkatkan lebih advanced dalam
hal engine scannernya.
Artikel ini diambil dari sini ......
Untuk source code antivirusnya bisa dilihat di bagian sini
Sumber : http://mrpanick.blogspot.com/
saja) lokal telah membuat gerah para user komputer tanah air. Bisa
dibayangkan 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 saja
NORMAN, yang kini men-support perusahaan konsultan virus lokal
(–VAKSIN.COM) , Symantec, McAffe, NOD32, dan sebagainya. Dengan
menawarkan update definisi software AV tercepat, engine scanner paling
sensitif, dan lain-lain merupakan kiat untuk memancing para korban
virus membeli dan menggunakan software AV mereka. Bagi penulis sendiri
hal ini memang agak memberatkan mengingat update file definisi atau
engine AV tsb haruslah melalui koneksi internet. Lalu bagaimana yang
tidak mempunyai akses sama sekali? Konsekuensinya iyalah tertinggal
dalam 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 oleh
kita bahkan dapat saling tukar dengan teman? Bisa saja, dengan syarat
mau mempelajari sedikit teknik pemograman.
Pertama kita harus mengerti bagaimana cara kerja
sebuah AV sederhana, pada dasarnya sebuah software AV mempunyai
komponen-komponen :
1. Engine scanner, ini merupakan komponen utama AV
dalam mengenali sebuah pattern virus. Engine ini dapat dikelompokkan
menjadi statis dan dinamis. Statis dalam hal ini dapat disebut menjadi
spesifik terhadap pattern tertentu dari sebuah file virus. Checksum
merupakan 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 pattern
file virus. Engine statis sangat bergantung kepada komponen ini.
3. Decompress atau unpacking engine, khusus untuk pengecekan file-file
yang terkompresi (*.rar, *.zip, dll) atau kompresi atau packing untuk
file PE seperti UPX, MeW , dll.
Tidak jarang hasil dari pengecekan terhadap file
suspect virus menghasilkan false-positive bahkan false-negative (–
false-positive berarti file yang bersih dianggap thread oleh AV, dan
false-negative berarti file yang 100% thread akan dianggap bersih).
Semua itu dapat diakibatkan oleh ketidak-sempurnaan dari engine scanner
itu sendiri. Misal
pada contoh kasus Engine String scanner (–Engine scanner yang
menyeleksi string-string dari file text-based), bila diterapkan rule 3
out of 5 (– bila AV menemukan 3 dari daftar 5 string kategori
malicious) maka AV akan memberikan bahwa file terindikasi sebuah thread
yang positif. Padahal file tsb nyatanya tidak menimbulkan efek
berbahaya bila dijalankan atau dieksekusi. Kesalahan scanning macam ini
lazim ditemukan untuk file-file *.VBS, *.HTML, dll. Untuk penggunaan
engine 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 bukannya
tanpa cacat, Checksum bekerja dengan memproses byte demi byte dari
sebuah file dengan sebuah algoritma tertenu (– tergantung dari jenis
checksum yang digunakan) sehingga menghasilkan sebuah format tertentu
dari 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. Perlu
diketahui bila virus menerapkan rutin yang mengubah byte tertentu dari
badan virus tsb setiap kali maka penggunaan engine checksum ini akan
kurang optimal karena bila 1 byte berubah dari file maka checksum juga
akan berubah.
Mari kita belajar membuat sebuah AV sederhana, yang diperlukan :
1. Software Visual Basic 6.0
2. Sedikit pemahaman akan pemograman Visual Basic 6.0
3. 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 Checksum
Buka MS-Visual Basic 6.0 anda, lalu buatlah sebuah
class module dan Form dengan menambahkan sebuah objek Textbox,
CommonDialog dan Command Button. (Objek CommonDialog dapat ditambahkan
dengan memilih Project -> COmponent atau Ctrl-T dan memilih
Microsoft Common Dialog Control 6.0) Ketikkan kode berikut pada class
module (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 &HFFFFFFFF
For lCurPos = 0 To lLen
lTemp = (((lTemp And &HFFFFFF00) \\ &H100) And &HFFFFFF) Xor (crcTable((lTemp And 255) Xor bArrayIn(lCurPos)))
Next lCurPos
CRC32 = lTemp Xor &HFFFFFFFF
End Function
Private Function BuildTable() As Boolean
Dim i As Long, x As Long, crc As Long
Const Limit = &HEDB88320
For i = 0 To 255
crc = i
For x = 0 To 7
If crc And 1 Then
crc = (((crc And &HFFFFFFFE) \\ 2) And &H7FFFFFFF) Xor Limit
Else
crc = ((crc And &HFFFFFFFE) \\ 2) And &H7FFFFFFF
End If
Next x
crcTable(i) = crc
Next i
End Function
Private Sub Class_Initialize()
BuildTable
End 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.ShowOpen
namafilbuka = CommonDialog1.FileName
Open namafilbuka For Binary Access Read As #1 'buka file yang dipilih dengan akses baca pada mode binary
ReDim tmp(LOF(1) - 1) As Byte 'deklarasi ulang untuk array, # Bugs Fixed #
Get #1, , tmp()
Close #1
calCrc = UBound(tmp) 'mengambil ukuran 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 Sub
erorhandle:
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 memencet
tombol F5, lalu klik Command1 untuk memilih dan membuka file. Maka
program akan menampilkan CRC32nya.
Second#
Kode diatas dapat kita buat menjadi sebuah rutin pengecekan file
suspect virus dengan antara membandingkan hasil CRC32nya dan database
CRC 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 file
Format file database dapat kita tentukan sendiri, misal :
- FluBurung.A=ABCDEFGH
- Diary.A=12345678
Dimana FluBurung.A adalah nama virus dan ABCDEFGH dalah Crc32nya. Jika
kita mempunyai format file seperti diatas, maka kita perlu membaca file
secara sekuensial per baris serta memisahkan antara nama virus dan
Crc32nya. Dalam hal ini yang menjadi pemisah adalah karakter '='.
Buat 1 module baru (– diberi nama module1) lalu isi dengan kode :
================= START HERE ====================
Public namaVirus As String, CrcVirus As String
'deklarasi variabel global untuk nama dan CRC virus Public pathExe as
String 'deklarasi variabel penyimpan lokasi file EXE AV kita
Public Function cariDatabase(Crc As String, namaFileDB As String) As Boolean
Dim lineStr As String, tmp() As String 'variabel penampung untuk isi file
Open namaFileDB For Input As #1 'buka file dengan mode input
Do
Line Input #1, lineStr
tmp = Split(lineStr, "=") 'pisahkan isi file bedasarkan pemisah karakter '='
namaVirus = tmp(0) 'masukkan namavirus ke variabel dari array
CrcVirus = tmp(1) 'masukkan Crcvirus ke variabel dari array
If CrcVirus = Crc Then 'bila CRC perhitungan cocok/match dengan database
cariDatabase = True 'kembalikan nilai TRUE
Exit Do 'keluar dari perulangan
End If
Loop Until EOF(1)
Close #1
End Function
================= END HERE ====================
Lalu tambahkan 1 objek baru kedalam Form, yaitu
Command button2. lalu ketikkan listing kode berikut kedalam event
Command2_Click :
================= START HERE ====================
If Len(App.Path) <= 3 Then 'bila direktori kita adalah root direktori
pathEXE = App.Path
Else
pathEXE = App.Path & "\\"
End If
CommonDialog1.CancelError = True 'error bila user mengklik cancel pada CommonDialog
CommonDialog1.DialogTitle = "Baca File" 'Caption commondialog
On Error GoTo erorhandle 'label error handle
CommonDialog1.ShowOpen
namafilbuka = CommonDialog1.FileName
Open namafilbuka For Binary Access Read As #1 'buka file yang dipilih dengan akses baca pada mode binary
ReDim tmp(LOF(1) - 1) As Byte 'deklarasi ulang untuk array # Bugs Fixed #
Get #1, , tmp()
Close #1
calCrc = UBound(tmp) 'mengambil ukuran 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
If cariDatabase(HasilCrc, pathEXE & "DB.txt") Then 'bila fungsi bernilai TRUE
MsgBox "Virus ditemukan : " & namaVirus 'tampilkan message Box
End If
Exit Sub
erorhandle:
If Err.Number <> 32755 Then MsgBox Err.Description 'error number
32755 dalah bila user mengklik tombol cancel pada saat memilih file
================= END HERE ====================
Fitur AV sederhana ini dapat ditambahkan dengan
fitur process scanner, akses registry, real-time protection (RTP) dan
lain lain. Untuk process scanner pada dasarnya adalah teknik enumerasi
seluruh proses yang sedang berjalan pada Sistem Operasi, lalu mencari
letak atau lokasi file dan melakukan proses scanning. Fitur akses
registry memungkinkan kita untuk mengedit secara langsung registry
windows apabila akses terhadap registry (–Regedit) diblok oleh virus.
Sedangkan fitur RTP memungkinkan AV kita berjalan secara simultan
dengan windows explorer untuk mengscan direktori atau file yang sedang
kita browse atau lihat. Untuk ketiga fitur lanjutan ini akan dibahas
pada artikel selanjutnya.
Kesimpulan#
Tidak harus membeli software AV yang mahal untuk menjaga komputer kita
dari ancaman virus, kita bisa membuatnya sendiri dengan fitur-fitur
yang tak kalah bagusnya. Memang terdapat ketidaksempurnaan dalam AV
buatan sendiri ini, tetapi setidaknya dapat dijadikan pencegah dari
infeksi virus komputer yang semakin merajalela. Software AV sederhana
ini dilengkapi oleh engine scanner statis dan database definisi. Tidak
tertutup kemungkinan software AV ini ditingkatkan lebih advanced dalam
hal engine scannernya.
Artikel ini diambil dari sini ......
Untuk source code antivirusnya bisa dilihat di bagian sini
Sumber : http://mrpanick.blogspot.com/
1 komentar
RARE DROPS + JEWELRY
Vampiric Earring +0
Lakeside : Bloody Orcs
Volcanic Citadel : Dark Phallanx
Vampiric Earring +1
Lakeside : Bloody Orcs
Vampiric Earring +2
Lakeside : Bloody Orc Mage
Mutant Forest : Mossites, Viant
Forgotten Temple B1F : Any chest of the dungeon
Vampiric Earring +3 / +4
B2F : Random chest in B2F (Vamp +4)
Lakeside : Dark Troll (+3), Berderk Faello (+3 and +4)
Forgotten Temple B1F : Random mobs (+4), Key Quest Chest
Volcanic Citadel : Force Archer Boss
Life Absorb Bracelet +0
Forgotten Ruin : Fire Beetle
Bracelet of Fighter +1
Lakeside : Bloody Orc Mage
Bracelet of Brute +2
Lakeside : Bloody Orc
Volcanic Citadel : Flame Hounds (Bracelet of Brute +2 with Sword amp 3%)
Bracelet of Sage +2 / of Fighter +2
Lakeside : Bloody Harpy Warrior
Forgotten Temple B1F : Key Quest Chest
Mutant Forest : Mossites
Bracelet of Sage +3 / of Fighter +3
Lakeside : Berderk Faello (both), Bloody Orcs (BoF3), Bloody Orc Mage(BoF3)
Forgotten Temple B1F : All mobs/chests of the dungeon
B2F : Any mob inside the dungeon
Bracelet of Sage +4 / of Fighter +4
B2F : Death Soldier (BoF+4)
Forgotten Temple B1F : Key Quest Chest, Random mob (could be any mob i think)
Volcanic Citadel : Any mob of the land (random drop)
Lakeside : Berderk Faello
Bracelet of Fighter/Sage +2 – Slotted
Pontus Ferrum : Any mob of the land
Mutant Forest : Branny, Ectoflowers (BoF)
Bracelet of Serenity +1
Lakeside : Bloody Orc Mage
Evasion Earring +0
Forgotten Ruin : Giant Scorpion
Evasion Earring +1
Lakeside : Bloody Orc mage
Protection Earring +2
Mutant Forest : Mossites
Mana Absorb Bracelet +1
Lakeside : Bloody Orc, Bloody Orc Mage
Extortion Bracelet +4
Volcanic Citadel : Paaks chest (last phalanx boss)
Vital Earring +1
Forgotten Ruin : Blade Peryton
Vital Earring +2
Lakeside : Bloody Orc, Dark Gnoll Mage, Dark Gnolls
Earring of Guard +2
Mutant Forest :Mossites
Forgotten Temple B1F : Any chest of the dungeon
Lakeside : Bloody Orc
Earring of Guard +3 / +4
Volcanic_Citadel : Wizard Boss Chest (EoG+4)
Lakeside : Bloody Orc, Berderk Faello
Forgotten Temple B1F : Any mob/chest of the dungeon (both earrings)
B2F : Any mob of the dungeon
Astral Core : Blue Mithril
Pontus Ferrum : Penna, Pluma, Quadra, Gravis
Forgotten Temple B1F : First Chest in B1F and the Key Quest chests
Shapes/Discs LVL4Undead_Ground : Vampire Steward+ (shape lvl 4)
Forgotten Ruin : Giant Scorpions, Fire Beetles
Mutant Forest : Ectoleafs, Branny
Lakeside : All the mobs of the land
Astral Skull
B1F : Any mob of the dungeon
B2F : Any mob of the dungeon
Forgotten Temple B1F : Any mob/chest of the dungeon
Volcanic Citadel : Any mob of the dungeon
Force Core Highest / Upgrade Core Highest
Chaos Arena
Pontus Ferrum : PF Bosses
Mutant Forest : Branny, Ectoleafs
Forgotten Temple B1F : All chests in FT : B1F
Amulet of Guard +6
Fort Ruina : Mechzards+
Amulet of Guard +7 – Requirement for Circuits Level 6
Undead Ground : Wraiths, Spectors, Death Soldiers
Forgotten Ruin : Giant Scorpions, Hexacyther, Cockatrice
B1F : Any mob of the dungeon
Ruina Station : Any mob of the dungeon
Forgotten Temple B1F : All mobs in the dungeon
Ring of Luck +2
Forgotten Ruin : All the mobs of the land
Mutant Forest : Ectoflower
Astral Boards
Fort Ruina : Auto Cannon-Ex
Plates of Honor
Forgotten Ruin : All the mobs of the land
Astral Board X2 – Green
Fort Ruina : Hound S-01
Astral Board Card : Type Zero Black
Port Lux : Crag Turtle, Stone Golem, Dark Blader, Flame Hounds
Fort Ruina : Hound S-01, Mechamender, Mechazard, Auto Cannons-Ex
Undead Ground : Zombie Slater
Forgotten Ruin : Ancient Cocatrice
Astral Board Card : Type Zero Silver
Port Lux : Peryton, Peryton+
Fort Ruina : Mechzards+
Undead Ground : Ghost Blader, Wraith
Blue Bike
B1F : Legacy chest in B1F (last one), Mergaheph’s Chest
Ruina Station : Any chest of the dungeon.
Bike RW-3
Ruina Station : Any chest of the dungeon.
Lakeside : Berderk Faello
Forgotten Ruin : Monakus Karion
Volcanic Citadel : Force Archer Boss
B1F : Vampire chest (Pertz)
Slot extender (High)
Lakeside : Bloody Harpy Slave, Bloody Harpy Warrior, Berderk Faello
B1F : Pertz’s Chest, Megaherph’s Chest
Slot Extender (Medium)
B1F : Last Legacy Chest of the Dungeon.
Volcanic Citadel : Last chest of the Dungeon
Lake in Dusk : Zigdris Faello
Slot extender (Low)
Fort Ruina : Mechzard
Volcanic Citadel : Paaks (chest), Jakkr (chest)
DT Dungeons 60+ : Any mob of the dungeon
Volcanic Citadel : @the Blader Boss
Plasma Coating Kit
Lake in Dusk : Troll
Ruina Station : Any mob inside the dungeon
B1F : Any mob or chest
Forgotten Temple B1F : Any mob in the dungeon
Chaos Arena : Pluma (lvl 125-170)
B2F : Andreas Schultz Chest, Prinz Verzen Chest
Powerless Core
Mutant Forest : Branny, Ectoleafs, Ectoflowers, Mushed, Mossites
Powerful_Core
Undead Ground : Lihorns, Vampire Servant+
Port_Lux : Dark Bladers, Golems
Mutant Forest : Mossites
Upgrade Core Highest
Pontus Ferrum : ARM-01 Assassin, UMD-02 Cornus
Common Metal Fragment
Ruina Station : Mecha Ape Archer, Mecha Buffalo
Illusion Coral
Lake in Dusk : Venom Toads, All bosses inside LiD
Volcanic Citadel : @FA Boss
CHAOS LAMPS DROPS
50x Hp Potion(Lv3)
50x MP Potion(Lv3)
50x Return Stone
Upgrade Core(Low)
Upgrade Core(Medium)
Upgrade Core(High)
Force Core(High)
Slot Extender(Low)
Slot Extender(Medium)
Slot Extender(High)
Map Part
Muster Card Ruina Station
Epaulette of the Dead
Epaulette of the Dead(B2F)
Plates of Honor
Astral Board – All types
Astral Bike RW-3
Plasma Coating Kit
Epaulette of Fighter/Sage/Guardian +6
Any Extract potions
Shining Yellow Powder
Tapi drop item ini masih belum tentu bro. Soalnya yang awak tulis di atas cuma presentase terbesar supaya dapat item yang kalian inginkan. KE KE KE KE KE selamat berjuang all!!!!!
RANK UP
BattleStyle LEVEL UP Rewards:
-----------------------------
* Level 40 (Class Rank 5) : Buff Time 50% UP. Battle Mode 1 + Aura Mode Possible
* Level 50 (Class Rank 6) : Board Chain Attack Skill Level 1
* Level 60 (Class Rank 7) : Battle Mode 2 + Aura Mode Possible. Board Chain Attack
Skill Level 2.
* Level 70 (Class Rank Cool: HP Boost. Max HP UP (Values may vary depending on the
attle Style). Board Chain Attack Skill Level 3
* Level 80 (Class Rank 9) : Buff Time 100% UP. Board Chain Attack Skill Level 4
* Level 90 (Class Rank 10) : Combo accessible in Aura Mode. Bike Chain Attack Skill Level 1
* Level 100 (Class Rank 11): Bike Chain Attack Skill Level
New Promotional Quests:
-----------------------
Promotional Quest for Lv. 110 or higher can be played only by those who completed the War
Clouds Quest group.
* Level 110 BSLV UP Special Training #1.
Defeat 200 Bloody Orcs in LakeSide and 30 Blaze Hounds in Volcanic Citadel
Reward Class Rank 12: Battle Mode 1 (Combo accessible). Bike Chain Attack Skill Level 3
* Level 120 BSLV UP Special Training #2.
Defeat 100 Bloody Ogres in LakeSide and 50 Dark Phlanaxs in Volcanic Citadel
Reward Class Rank 13: Buff Time 150% UP. Buff Quantity Limit increased to 6. Bike Chain Attack
Skill Level 4
* Level 130 BSLV UP Special Training #3.
Defeat 70 Flame Zombie Warriors in Tower Of Dead (B2F) and 150 Ectoleafs in Mutant Forest
Reward Class Rank 14: Battle Mode 1 + Aura Mode (Combo accessible). Buff Quantity Limit
increased to 7
* Level 140 BSLV UP Special Training #4.
Defeat 80 Durahans in Tower Of Dead (B2F) and 100 Viants in Mutant Forest
Reward Class Rank 15: 2 Identical series of Buffs can be used and overlapped. Buff Quantity
Limit increased to 8
* Level 150 BSLV UP Special Training #5.
Defeat 80 Death Knights in Tower Of Dead (B2F) and 150 Armaps in Mutant Forest
Reward Class Rank 16: Buff Time 200% UP. Buff Quantity Limit increased to 9
* Level 160 BSLV UP Special Training #6.
Defeat 40 Vice Felichras in Forgotten Temple (B1f) and 60 Lobatums in Mutant Forest
Reward Class Rank 17: Buff Quantity Limit increased to 10
* Level 170 BSLV UP Special Training #7.
Defeat 30 Groga in Forgotten Temple (B1f) and 50 UMD-02 Cornus in Pontus Ferrum
Reward Class Rank 18: 3 Identical series of Buffs can be used and overlapped.
NAAAAAHH.. ini nih yang nyebabkan muntah buat naikin rank char kita. Apa lagi kalian wajib nyelesaikan misi2 di tiap rank 11-18 berurutan gak boleh loncat2. Kalo loe FB,sangat cocok kalo dah rank 18. Soalnya loe bisa gabungin lightning blade sama ice blade. KE KE KE KE selamat berjuang caballer.
Langganan:
Postingan (Atom)