Kali saya akan berbagi cara Memanfaatkan Engine Antivirus ClamAV
untuk membuat Antivirus sendiri. Langsung saja ke tutorial berikut ya :)
ClamAV adalah sebuah Antivirus open source yang cukup ampuh dalam
mendeteksi malware (Virus,Worm dan teman-temannya) dan dengan jumlah
database malware yang dimiliki ClamAV sangat besar,kira-kira satu juta
tiga ratus ribu lebih saat ini.
Banyak Antivirus Lokal (Antivirus Indonesia) yang ingin menggabungkan
Antivirusnya dengan ClamAV namun banyak juga yang memikirkan lisensi
ClamAV yang bersifat open-source tersebut. Tidak masalah jika Antivirus
yang ingin digabungkan dengan ClamAV tersebut ingin open source, tapi
bagaimana jika tidak mau ikut-ikutan open source?
Dalam dokumentasi ClamAV (clamdoc.pdf) tertulis bahwa: “Segala program
yang menggunakan library ClamAV haruslah bersifat open source“, namun
jika kita memakai trik dibawah ini, mudah-mudahan Antivirus kita tidak
harus terlibat lisensi open source tersebut :)
Catatan: Trik ini hanya trik sederhana agar
Antivirus yang anda buat dapat melakukan scan bersamaan dengan ClamAV,
anda juga tidak harus mempelajari engine ClamAV untuk trik ini.. just a
simple trick :)
Untuk project ini, kita harus mempersiapkan:
1. File pendukung ClamAV seperti clamscan.exe, libClamAV.dll, database
ClamAV seperti main.cvd dan sebagainya.
2. Sebelumnya, kita harus tahu parameter clamscan.exe, tapi apa itu
clamscan.exe? clamscan.exe adalah scanner ClamAV yang mempunyai
parameter-parameter yang bisa kita gunakan pada Antivirus kita dalam
mendeteksi malware, parameter-parameter tersebut adalah:
ClamAV Antivirus Help Command
–help -h Print this help screen
–version -V Print version number
–verbose -v Be verbose
–debug Enable libClamAV’s debug messages
–quiet Only output error messages
–stdout Write to stdout instead of stderr
–no-summary Disable summary at end of scanning
–infected -i Only print infected files
–bell Sound bell on virus detection
–show-progress Print progress indicator for each file
–tempdir=DIRECTORY Create temporary files in DIRECTORY
–leave-temps Do not remove temporary files
–database=FILE/DIR -d FILE/DIR Load virus database from FILE or load
all .cvd and .db[2] files from DIR
–log=FILE -l FILE Save scan report to FILE
–recursive -r Scan subdirectories recursively
–remove Remove infected files. Be careful!
–move=DIRECTORY Move infected files into DIRECTORY
–copy=DIRECTORY Copy infected files into DIRECTORY
–exclude=PATT Don’t scan file names containing PATT
–exclude-dir=PATT Don’t scan directories containing PATT
–include=PATT Only scan file names containing PATT
–include-dir=PATT Only scan directories containing PATT
–detect-pua Detect Possibly Unwanted Applications
–exclude-pua=CAT Skip PUA sigs of category CAT
–include-pua=CAT Load PUA sigs of category CAT
–detect-structured Detect structured data (SSN, Credit Card)
–structured-ssn-format=X SSN format (0=normal,1=stripped,2=both)
–structured-ssn-count=N Min SSN count to generate a detect
–structured-cc-count=N Min CC count to generate a detect
–no-mail Disable mail file support
–keep-mbox Don’t delete/rename mailboxes
–memory Scan loaded executable modules
–kill -k Kill/Unload infected loaded modules
–unload -u Unload infected modules from processes
–no-phishing-sigs Disable signature-based phishing detection
–no-phishing-scan-urls Disable url-based phishing detection
–heuristic-scan-precedence Stop scanning as soon as a heuristic match is
found
–phishing-ssl Always block SSL mismatches in URLs (phishing module)
–phishing-cloak Always block cloaked URLs (phishing module)
–no-algorithmic Disable algorithmic detection
–no-pe Disable PE analysis
–no-elf Disable ELF support
–no-ole2 Disable OLE2 support
–no-pdf Disable PDF support
–no-html Disable HTML support
–no-archive Disable archive support
–detect-broken Try to detect broken executable files
–block-encrypted Block encrypted archives
–mail-follow-urls Download and scan URLs
–max-filesize=#n Files larger than this will be skipped and assumed
clean
–max-scansize=#n The maximum amount of data to scan for each container
file (*)
–max-files=#n The maximum number of files to scan for each container
file (*)
–max-recursion=#n Maximum archive recursion level for container file (*)
–max-dir-recursion=#n Maximum directory recursion level
Pada project Antivirus anda, anda hanya perlu menggunakan
parameter-parameter tersebut supaya Antivirus anda dapat bergabung dan
bekerja sama dengan ClamAV saat proses scanning file.
Contoh codingnya dalam bahasa C adalah:
/*membuat variabel konstanta untuk menampung parameter clamscan
parameter tersebut berarti : -r kita melakukan scan secara recursive
(scan folder dan sub foldernya, -i menampilkan file yang diduga
terinfeksi,dan –log membuat log laporan hasil scan ClamAV pada drive C
dengan nama clamreport.txt */
const char parameters[] = “-r -i –log=C:\\clamreport.txt”;
Pada engine Scan Antivirus anda tambahkan fungsi ShellExecute berikut
ini:
ShellExecute(NULL,”open”,”C:\\Program
Files\\Antivirus_Anda\\ClamAV\\clamscan.exe”, (parameters), (ScanPath),
SW_SHOWNORMAL);
Arti perintah shell execute diatas adalah melakukan eksekusi
clamscan.exe yang berada di direktori C:\Program
Files\Antivirus_Anda\ClamAV kemudian mengatur parameternya dan
menentukan lokasi folder yang akan discan (scanpath).
Pada Antivirus yang saya buat, fungsi scanpath adalah fungsi untuk
melakukan scanning pada folder dan subfolder.
Jadi ketika Antivirus yang kita buat melakukan scan pada folder misalkan
C:\WINDOWS, maka secara otomatis ClamAV akan ikut melakukan scanning di
folder C:\WINDOWS tersebut.
Ini hasilnya pada Antivirus saya:
Pada Antivirus yang saya coba diatas, saya menampilkan hasil log scan
ClamAV pada sebuah textbox, sehingga “terlihat duet enginenya“.
Semoga bisa menjadi referensi anda dan selamat mencoba^^

0 komentar:
Posting Komentar