4.4 CRC32 Calculator
Untuk mendapatkan nilai CRC32 dari suatu file atau proses maka diperlukan sebuah program tambahan yang berguna untuk melakukan kalkulasi nilai CRC32 dari
suatu file. Nilai CRC32 file virus akan ditambahkan pada database virus. Fitur tambahan ini juga dibangun menggunakan VB 6.0.
Kontrol yang dibutuhkan untuk membuat program ini adalah 2 buah textbox
3 buah command button. Property untuk masing-masing kontrol adalah sebagai berikut:
Property Value
A Name cmdBrowse
Caption Browse
B Name text
Text {kosong}
C Name cmdGetCRC32
Caption Get CRC32
D Name txtCRC
Text {kosong}
E Name cmdCopy2Clipoard
Caption Copy ke clipboard
Tabel 4.2 Property dan Value Pada Kontrol CRC32 Calculator
Prosedur pada masing-masing command button adalah sebagai berikut:
a. cmdBrowse t= BrowseForFolder, “Silahkan Pilih File”, , ,
txtPath,True,True If t “” Then
TxtPath = t End If
Pada prosedur ini akan menggunakan fungsi BrowseForFolder untuk melakukan browsing path file atau virus.
Universitas Sumatera Utara
b. cmdGetCRC txtCRC.txt = CRCFromFiletxtPath
Prosedur ini akan mengambil nilai CRC32 dari file yang beralamatkan sesuai dengan txtPath dan menyalinkan hasil CRC32 nya kedalam txtCRC.
c. cmdCopy2Clipboard Clipboard.SetText txtCRC.Text
MsgBox “CRC32 berhasil disalinkan pada clipboard.”, vbinformation, “CRC32 Viewer”
Prosedur ini befungsi sebagai penyalin data kedalam clipboard sehingga nanti dapat di paste pada tempat yang lain.
Langkah-langkah untuk menghitung nilai CRC32 dari suatu file adalah sebagai
berikut:
File dirubah menjadi serangkaian bit. Selanjutnya rangkaian bit tersebut dibagi menjadi 4 segmen karena 1 byte = 8 bit, maka 4 segmen berisi 32 bit. Dalam
CRC32, berarti digunakan poly 32 bit 4 byte, akan tampak sebagai berikut:
3 2 1 0 byte
+--+--+--+--+ --| | | | |
-- bitstring
+--+--+--+--+ 1--32 bits--
poly 4 byte Poly adalah suatu bilangan polinom yang akan menjadi pembagi dari data yang akan
diolah.
4 ruang kosong pada ilustrasi diatas menggambarkan register yang akan digunakan untuk menampung hasil CRC sementara pada proses pembagian yang melibatkan
operasi XOR. Proses yang dilakukan pada register ini adalah : a. Bitstring data dimasukkan ke dalam register dari arah ke kanan shift per
byte setiap saat register tidak terisi penuh. b. Jika register sudah penuh berisi 4 byte, maka register digeser satu byte ke
arah kiri keluar register, dan register diisi dari arah kanan dengan 1 byte dari bitstring
Universitas Sumatera Utara
c. Jika register yang digeser keluar mempunyai nilai 1, maka akan dilakukan operasi XOR terhadap keseluruhan isi register termasuk yang telah
digeser keluar, dimulai dari bit tertinggi yang bernilai 1 dan nilai dari poly. Langkah ini diulang kembali sampai semua bit dari byte yang
tergeser keluar bernilai 0. d. Langkah b dan c diulang sampai semua bitstring data input selesai
diproses.
Sebagai contoh, bagaimana memproses CRC 8 bit poly hanya 1 byte. Register akan berisi 8 bit, dan pada sekali shift digeser sebanyak 4 bit.
Isi awal Register : 10110100
Kemudian 4 bit pertama 1011 akan digeser keluar, dan memasukkan 4 bit baru
misalkan 1101. Maka, 8 bit dalam register adalah : 01001101
4 bit yang digeser top bits : 1011 Poly yang digunakan W=8 : 101011100
Langkah selanjutnya yang dilakukan adalah melakukan operasi XOR terhadap isi register dengan poly
Top Register ---- --------
1011 01001101 1010 11100
------------- 0001 10101101
hasil XOR Karena Top isi register yang digeser keluar masih mengandung nilai 1, maka
langkah ini diulangi lagi. 0001 10101101
hasil XOR sebelumnya
1 01011100 -------------
0000 11110001 hasil akhir XOR
Nilai pada register: 11110001 nilai ini akan dipakai sebagai indeks tabel CRC.
Universitas Sumatera Utara
Karena semua bit pada Top Register telah bernilai 0, maka telah selesai satu putaran untuk memproses rangkaian bit yang digeser keluar. Algoritma ini dapat dituliskan
sebagai berikut: while masih_ada_bitstring
begin Top=Top_byte_of_Reg
Reg=Reg8 {geser 1 byte} Reg=Reg or new_bytestring
{tambah byte baru} Reg=Reg xor Table[Top]
{xor dengan nilai dari tabel dengan index Top}
End
Nilai Checksum CRC32 dari suatu file adalah hasil operasi XOR top register dari file tersebut dengan pendekatan nilai tabel CRC32 yang nilainya tidak sama
dengan nilai tabel CRC32 tabel nilai CRC32 terdapat pada lampiran 2. Tampilan dari CRC32 Calculator ditunjukkan oleh gambar berikut:
Gambar 4.2 Tampilan utama CRC32 Calculator 4.5 Task Manager Alternatif
Fitur ini dibutuhkan sebuah program antivirus yang berguna sebagai task manager
alternative jika task manager yang disediakan oleh windows diblokir oleh virus. Dari program tambahan ini akan terlihat semua proses yang terjadi pada system operasi.
Universitas Sumatera Utara
Program ini juga menampilkan nilai CRC32 dari setiap proses yang terjadi. Program ini juga dibangun dengan VB 6.0
Task manager alternatif ini akan memperbaiki kekurangan-kekurangan yang terdapat pada task manager Windows. Kekurangan-kekurangan itu adalah:
a. Icon proses tidak ditampilkan. Hal ini akan membuat user mengalami kesulitan untuk identifikasi proses yang akan dimatikan. Proses virus dapat dikenali dari
icon virus tersebut. b. Alamat program tidak ditampilkan. Hal ini akan mempersulit user untuk
mencari file virus, untuk kemudian dihitung nilai CRC32 nya. c. Task manager tidak dapat dibuka jika virus melakukan pemblokiran melalui
program registry. d. Task manager tidak dapat mematikan proses yang dianggap sebagai proses
penting system windows. Hal ini akan dimanfaatkan oleh virus untuk mengelabui task manager dengan menggunakan nama yang sama dengan
proses windows.
Kontrol utama pada program task manager alternatif ini adalah: 1 buah listview
2 buah image list 2 buah picture box
3 label 2 buah command button.
Property dari masing-masing kontrol adalah sebagai berikut:
Property Value
A Name
LProcess FullRowSelect
TRUE GridLines
TRUE LabelEdit
1 – lvwmanual MultiSelect
TRUE View
3 – lvwReport B
Name ImgLarge
ImageHeight 32
ImageWidth 32
Visible FALSE
Universitas Sumatera Utara
C Name ImgSmall
ImageHeight 16
ImageWidth 16
Visible FALSE
D Name picIcon32
Height 480
Width 480
Background Color H00FFFFFF
Visible FALSE
E Name
picIcon16 Height
240 Width
240 Background Color
H00FFFFFF Visible
FALSE F
Name cmdRefresh
Caption Refresh List Proses
G Name cmdMatikan
Caption Matikan Proses Terpilih
H Name lblPath
Caption -
I Name
lblSize Caption
- J
Name lblCRC32
Caption -
Tabel 4.3 Property dan Value Pada Kontrol Task Manager Alternatif
Fungsi dari masing-masing kontrol adalah sebagai berikut:
a. lprocess berfungsi untuk menampilkan list virus yang terdeteksi oleh antivirus. List
view ini akan menampilkan informasi tentang virus yang berupa: 1. icon virus
2. Proses ID virus 3. Nama Virus
4. Alamat Virus 5. Ukuran Virus
b. ImgLarge Jika program dieksekusi maka kontrol ini tidak ditampilkan. Kontrol ini
diperlukan sebagai tempat penyimpanan icon virus 32px X 32px yang terdeteksi.
Universitas Sumatera Utara
c. ImgSmall Jika program dieksekusi maka kontrol ini tidak ditampilkan. Kontrol ini
diperlukan sebagai tempat penyimpanan icon virus 16px X 16px yang terdeteksi.
d. picIcon32 Saat program dijalankan kontrol ini tidak ditampilkan. Kontrol ini
berfungsi sebagai tempat pemrosesan ekstract icon virus 32px X 32px yang terdeteksi.
e. picIcon16 Saat program dijalankan kontrol ini tidak ditampilkan. Kontrol ini
berfungsi sebagai tempat pemrosesan ekstract icon virus 16px X 16px yang terdeteksi.
f. lblPath,lblSize,lblCRC32 Berfungsi untuk menampilkan informasi proses yang dipilih pada lProcess.
Kode program pada task manager alternatif ini adalah: a. Form Form_Load
With lProcess.ColumnHeaders .Add , , , 350
.Add , , ”PID”, 800 .Add , , “Nama Proses”, 1600
.Add , , “Alamat Proses”, 4000 .Add , , “Ukuran”, 1800
End With Me.Caption = CRCFromString Now
b. cmd_Refresh Fungsi dari prosedur ini adalah untuk memasukkan proses beserta
informasinya kedalam listview lProcess.
Universitas Sumatera Utara
c. lProcess
Private Sub lProcess_Click lblPath.Caption =
lProcess.SelectedItems.SubItems 3 If IsFileExist lblPath.Caption Then
lblSize.Caption = FileLenlblPath.Caption “bytes”
LblCRC32.Caption = CRCFromFilelblPath.Caption
Else picIcon32.Cls
picIcon16.Cls lblSize.Caption = “Objek tidak
ditemukan” lblCRC32.Caption = “_”
End If End Sub
d. cmdMatikan On Error GoTo Err:
For i=1 To lProcess.ListItems.Count If
lProcess.ListItems.Itemi.Selected = True Then Kill Process
lProcess.ListItems.Itemi.SubItems1 lProcess.listItems.Remove i
i = i – 1 End If
Next i Err:
Universitas Sumatera Utara
Dibutuhkan juga kode berikut ini agar setiap proses dan detailnya ditampilkan pada kolom yang sama
Private Sub lProcess_ColumnClick ByVal ColumnHeader As MSComctlLib.ColumnHeader
lProcess.Sorted = True If lProcess.SortOrder = lvwAscending Then
lProcess.SortOrder = lvwDescending Else
lProcess.SortOrder = lvwAscending End If
lProcess.SortKey = ColumnHeader –1 End Sub
Tampilan dari task manager altenatif ditunjukkan oleh gambar berikut:
Gambar 4.3 Tampilan utama Task Manager Alternatif
Kolom pertama memberi informasi tentang icon dari setiap proses yang sedang berjalan. Hal ini akan membantu untuk mengidentifikasi suatu proses merupakan
sebuah virus atau bukan. File yang diidentifikasi sebagai sebuah virus dapat dimatikan prosesnya melalui program ini.
Universitas Sumatera Utara
Sebuah proses dapat diidentifikasi sebagai proses virus dengan melihat icon proses, alamat proses, serta ukuran virus. Icon virus biasanya berbentuk folder,
beralamat di directory sistem dan berukuran kecil.
4.6 Database Virus