Mengenali Virus Lewat Checksum Error dengan metode CRC32

Melanjutkan pembahasan metode CRC32 dari Artorex Antivirus. Sebelum melangkah ke pendeteksian virus sebaiknya kita mengenali istilah – istilah yang akan dipergunakan dalam teori berikut ini :

(CHECKSUM)
Checksum adalah jumlah yang telah dikalkulasikan sebagai fungsi dari suatu message.

(MESSAGE)
Message dalam konteksnya adalah input data yang telah melewati proses checksum. Message biasanya adalah urutan bytes.

(CRC32)
CRC32 adalah kepanjangan dari ” Cyclic Redundancy Code” dan 32 melambangkan panjang checksum dalam bit. Bentuk CRC yang disediakan untuk algoritma sesuai dengan ide pembagian ”polynomial”. Dan hal ini digunakan untuk memperhitungkan checksum yang sama dari seluruh algoritma CRC.
Algoritma CRC adalah cara yang bagus dan teruji untuk pengecekan byte dalam jumlah besar dari suatu file yang telah termodifikasi maupun tidak. Algoritma ini mencari lewat seluruh jumlah byte dan menghasilkan angka 32 bit untuk menggambarkan isi file. Dan sangat kecil sekali kemungkinan dua stream dari byte yang berbeda mempunyai CRC yang sama. Algoritma CRC32 dapat diandalkan juga untuk mengecek error yang terjadi dalam urutan byte. Dengan CRC32 kemungkinan perubahan standar (penyimpangan dari penghitungan CRC terhadap file) yang terjadi dapat dikendalikan. Untuk menghitung dengan metode CRC32 dilakukan dengan beberapa cara, yaitu :


1. Perhitungan Tabel Lookup
Cara pertama kita harus menghitung kalkulasi tabel lookup yang berguna untuk menentukan standar isi dari tabel CRC32, yaitu dengan membandingkan nilai 255 yang heksanya FFFFFFFF dengan polynomial file yang telah distandarkan yaitu EDB88320 menggunakan Xor. Kemudian hasil dari perbandingan disimpan di tiap array ’F’ yang berjumlah 255 array.

2. Menghitung CRC32
Untuk menghitung CRC32 suatu file kita perlu ukuran dari file tersebut dan mengeset standar perbandingan untuk CRC32 ke heksa FFFFFFFF. Kemudian untuk mengecek nilai yang ada tiap byte nya dapat dipergunakan modul sbb :
Do While (count > 0)
For i = 0 To count – 1
iLookup = (crc32Result And &HFF) Xor buffer(i) ‘FF = 255
crc32Result = ((crc32Result And &HFFFFFF00) \ &H100) And
crc32Result = crc32Result Xor crc32Table(iLookup)
Next i
count = stream.Read(buffer, readSize)
Loop
Kemudian hasil yang didapat dibandingkan dengan output dari tabel Lookup yang telah dihitung dengan metode Xor. Dan nilai CRC32 diambil yang hasilnya tidak sama dari perbandingan tersebut.
3. Membuat proses tadi ke dalam class di VB
Setelah proses di atas tadi dibuat, kita harus menjadikan proses-proses tersebut ke dalam kelas di VB. Untuk itu kita menggunakan class cBinaryFileStream yang disediakan dari source data file untuk memecah-mecah file ke dalam bentuk binary. Sehingga file dapat dibaca ke dalam potongan-potongan kecil dan mempercepat proses penghitungan.
Dim cStream As New cBinaryFileStream
cStream.File = txtFileName.Text

Dim cCRC32 As New cCRC32
Dim lCRC32 As Long

lCRC32 = cCRC32.GetFileCrc32(cStream)

Sepeti kode di atas kita dapat menggunakan metode GetFileCrc32 untuk menghitung Crc32 dari byte tiap aray.

Implementasi CRC32 ke Pendeteksian Virus
Virus dapat dikenali melalui banyak cara, mulai dari nama file, ukuran atau dengan membongkar isi file dan menemukan penandanya. Ada beberapa kelemahan jika kita hanya mengenalinya dari nama file. Terkadang program virus tidak memakai nama asli dari virus itu sendiri. Misalnya virus Hallo.roro.htt memakai nama program pemicunya syssrv.exe. Sehingga mau tidak mau untuk mendeteksi program itu kita melihatnya melalui ukuran file. Ukuran file pun belum menjamin bahwa file tersebut adalah virus. Bisa saja ukuran filenya sama tetapi programnya berbeda. Sehingga diperlukan metode lain untuk mengenali file virus. Dengan membongkar isi file hal tersebut membutuhkan waktu yang banyak. Jika hanya satu atau dua file saja yang dibongkar tidak masalah. Tetapi jika enam ratus, seribu atau seribu lima ratus file, pasti sangat memerlukan waktu yang tidak singkat. Memakai metode checksum error dapat menjadi pilihan yang tepat.

Cara – cara mengenali sebuah virus melalui metode checksum error akan dijelaskan sebagai berikut :
1. Memilih file yang akan diperiksa
2. Mengambil informasi dari file tersebut, yaitu nama, ukuran
3. Menghitung checksum file yang diambil dari ukuran file dengan metode crc32.
4. Menggunakan hasil checksum tersebut untuk mengenali bahwa program tersebut adalah virus.

untuk implemantasinya anda dapat mencoba WAV 2005 pada sub menu cek dengan crc, nah itulah implementasinya, sekarang terserah anda mau ditaruh di mana implementasi tersebut.

1 Response to "Mengenali Virus Lewat Checksum Error dengan metode CRC32"

  1. Cara mendapatkan Kode checksum erorr pada sebuah file gimana??
    maksudnya gini , Saya baru saja membuat sebuah antivirus , tapi belum memiliki database signature virusnya :( .
    Saya masih bingung , cara menambahkan database signature pada antivirus (VB 6.0) bagaimana ?? Saya sudah menemukan Nilai MD5 maupun CRC32 , tapi saya masih pusing , Nilai Ceksumnya dimasukkan dimana ??
    Terima kasih

    ReplyDelete