anti virus 2

melanjutkan post tentang pembuatan anti virus.

kita akan membuat program dalam delphi dengan builder yang versi 7 karena delphi itu cepat😉

tingkat kesulitan: menengah.

control window utama: window ber-tab, panel, dan listview.

teknik pemograman proses: multithreading.

langkah pertama.

adalah membuah form seperti ini:

window utama anti virus sederhana

kita beri nama program ini aviku. gambar di atas diambil ketiga aviku sedang bekerja.

dalam window itu terdapat objek TTabControl yang kita namai TabControl1. ada tiga tab; Navigation, Virus List, dan About. Navigasi adalah window utama, dalam tab Virus List ada listview yang mendaftarkan database virus yang sudah diketahui, sedangkan tab About menyediakan informasi kepemilikan program. berikut adalah objek-objek yang ditampilkan pada tab Navigasi:

object GroupBox1: TGroupBox
Caption = ‘No Lame Virus’
object btStart: TButton
Caption = ‘Start’ // tombol untuk memulai scan
OnClick = btStartClick // event ketika tombol btStart ditekan
end
object btPause: TButton // tombol untuk mengentikan sementara proses yang sedang bekerja
Caption = ‘Pause’
Enabled = False // enable ketika scan dimulai
OnClick = btPauseClick // event ketika tombol btPause di klik
end
object progText: TPanel // dalam panel ini akan ada daftar file yang sedang dipindai
BevelInner = bvLowered
BevelOuter = bvLowered
end
end
object ListView1: TListView // listview ini disediakan untuk mendaftarkan kopian virus
Checkboxes = True
Columns = <
item
Caption = ‘File’
Width = 75
end
item
Caption = ‘Path’
Width = 200
end
item
Caption = ‘Known Virus Name’
end>
PopupMenu = PopupMenu1 // popup menu ketika ada klik kanan di listview ini
ViewStyle = vsReport
end
object ckCheck: TButton // tombol untuk mengecek semua elemen dalam listview1 (semua virus)
Caption = ‘Check All’
OnClick = ckCheckClick
end

ok.. sekarang bagaimana ketika tombol btStart ditekan. sebelum scan dimulai kita harus mencari tahu dulu direktori mana yang diinginkan di-scan. setelah diperoleh direktori yang akan di-scan, selanjuttnya

pada setiap direktori yang ditemukan

setiap file yang md5-nya sama dengan suatu elemen md5 di database virus maka file itu virus

ok, sekarang implementasinya dalam delphi:

procedure checkVir.CompPerDir(sCurDir: string);
var
sMdComp: string;
sr: TSearchRec;
begin
if FindFirst(sCurDir+’\*.*’, faAnyFile, sr) = 0 then
begin
repeat
if ((sr.Attr and faDirectory <> 0) and (sr.Name <> ‘.’) and
(sr.name <> ‘..’)) then
CompPerDir(sCurDir+’\’+sr.Name); // jika yang ditemukan direktori panggil lagi CompPerDir.

if (sr.Name = ‘.’) or (sr.Name = ‘..’) then
continue; // direktori current dan diatasnya, lanjut saja.

sFile:= sCurDir+’\’+sr.Name;

// malware yang terlalu besar = jelek!
if (sr.Size > 10000000) then
continue;

if iIsVirus(dlgMain.ListVirus, sFile) <> 0 then
procDum(sr.Name, sCurDir, sFile); // rutin yang mengecek apakah file yang ditemukan ada dalam database virus jika ada daftarkan dalam listview1.

until FindNext(sr) <> 0;
FindClose(sr);
end;

end;

di sini kita mengaplikasikan rutin enumarsi direktori dari delphi, yaitu FindFirst, dan FindNext

bersambung.

Satu pemikiran pada “anti virus 2

  1. Ping balik: anti virus 3 « from zer0 to infinity

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s