Anda di halaman 1dari 8

Cara Membuat Anti Virus Sendiri Dengan

Delphi 7 Terbaru 2015


Option:

Berikut adalah informasi seputar Cara Membuat Anti Virus Sendiri Dengan Delphi 7 Terbaru 2015 dan
sebelumnya juga sudah di share seputar Download Software Program Aplikasi MDMA 2015 ok dan
berikut adalahy penampakan dari programnya dan silahkan bisa dikembangka kembali, dan berikut juga
adalah contoh listing coding program lengkapnnya, untuk contoh source code jadinya silahkan bisa
didownload dibawah.

unit zonksel_form;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Utility_AV, ComCtrls, Menus, ExtCtrls;

type
TFormUtama = class(TForm)
GroupBox1: TGroupBox;
rb_scan1: TRadioButton;
rb_scan2: TRadioButton;
edt_folder: TEdit;
edt_cari: TButton;
GroupBox2: TGroupBox;
lbl_jumlahfile: TLabel;
lbl_virus: TLabel;
mm_status: TMemo;
btn_scan: TButton;
btn_tentang: TButton;
btn_keluar: TButton;
ck_scansubdir: TCheckBox;
GroupBox3: TGroupBox;
lv_virlist: TListView;
btn_delvir: TButton;
btn_cls: TButton;
lbl_waktu: TLabel;
Label1: TLabel;
Bevel1: TBevel;

procedure btn_tentangClick(Sender: TObject);


procedure FormCreate(Sender: TObject);
procedure btn_keluarClick(Sender: TObject);
procedure btn_scanClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure edt_cariClick(Sender: TObject);
procedure rb_scan2Click(Sender: TObject);
procedure btn_clsClick(Sender: TObject);
procedure btn_delvirClick(Sender: TObject);
private
{ Private declarations }
Procedure ScanVirus(Semua:Boolean);
Procedure SaatScanFile (Path:String);
Procedure TambahList (NamaVirus,Path:String);
public
{ Public declarations }
end;

var
FormUtama: TFormUtama;
SedangDiScan:Boolean;
rStartTime : Integer;
C : Integer;

Const
DBaseCRC32Virus : Array [0..2] of String = ('DD7A0BA8','7A014FFF','BDB819EB');
DBaseNamaVirus : Array [0..2] of String = ('CodeRed','Moondlight.D','FluBurung');
MAX_SCAN : Int64 = 10 * 1024 * 1024; // Maksimal Scan 10 MB,
// Karena biasanya virus tidak lebih dari 10 MB
implementation

{$R *.dfm}
{$R WindowsXP.res} //Aktifkan Theme WinXP

function CekUkuranFile(const FileName: string): Int64;


var
SearchRec: TSearchRec;
begin
Result := -1; //-- assume worst cas
if FindFirst(FileName, faAnyFile, SearchRec) = 0 then
begin
Int64Rec(Result).Lo := SearchRec.FindData.nFileSizeLow;
Int64Rec(Result).Hi := SearchRec.FindData.nFileSizeHigh;
FindClose(SearchRec);
end;
end;

Procedure TFormUtama.TambahList (NamaVirus,Path:String);


Var
lvi : TListItem;
Begin

//Cek Apakah ada list yang sama ... ?


lvi := lv_virList.FindCaption(0,Path, false, true, false);
while Assigned(lvi) do
begin
if Lowercase(lvi.SubItems[1]) = Lowercase(Path) then exit; //Sudah ada di list, keluar
lvi := lv_virList.FindCaption(lvi.Index, Path, false, false, false);
end;

//List tidak ada yang sama, tambahkan list...


lvi := lv_virList.Items.Add;
lvi.Caption := NamaVirus;
lvi.SubItems.Add(Path);
lbl_virus.Caption := 'The number of viruses found : ' + IntToStr(Lv_VirList.Items.Count);
End;
Procedure TFormUtama.SaatScanFile (Path:String);
Var
CRC32 : Cardinal;
TB : Int64;
Err : Word;
CRC32Str : String; //CRC32 hasil string
i : Integer;
ElapsedTime : String;
Begin

ElapsedTime := Format('%.1f', [0.001*(GetTickCount-rStartTime)]);

Application.ProcessMessages; // Terima semua masukan dari program


IF (CekUkuranFile(Path) <= MAX_SCAN) Then Begin // Maksimal Scan.. Tidak Lebih dari 10 MB
HitungFileCRC32 ( Path, CRC32, TB, Err );
CRC32Str := IntToHex(Crc32,8); // Hasil CRC32 desimal di konverisi menjadi Heksadesimal
For i:=Low(DBaseCRC32Virus) to High(DBaseCRC32Virus) do
// Jika Hasil CRC32 sama dengan Database Virus, Tidak diragukan lagi maka itu virus
if (CRC32Str = DBaseCRC32Virus[i]) then TambahList(DBaseNamaVirus[i],Path);
End;

Inc(C);
lbl_jumlahfile.Caption := 'The Number of Files : ' + IntToStr(C);
lbl_waktu.Caption := 'Travel Time : ' + ElapsedTime;
mm_status.Lines.Text := Path; // Status scannya;
End;

procedure TFormUtama.btn_tentangClick(Sender: TObject);


begin
MsgBox(Handle,'Tentang Program',
'Zonksel Antivirus ' + #13#10 +
'Diprogramkan oleh Cara Apa Saja' + #13#10#13#10 +
'Web-Blog : http://aimeegracecatering.blogspot.com' + #13#10 +
'E-Mail : admin@ahmadseo.com' + #13#10#13#10 +
'Copyright © 2015 Capsa - All Rights Reserved.',
Information);
end;

procedure TFormUtama.FormCreate(Sender: TObject);


begin
SedangDiScan := False;
end;

procedure TFormUtama.btn_keluarClick(Sender: TObject);


begin

If SedangDiScan Then
If MsgBox(Handle,'Close Program',
'Do you want to exit when the program was looking for a virus?',
Question + YesNo) = No Then Exit;

Halt(0); // Keluar Program (dengan paksaan, jika terjadi error)


end;

Procedure TFormUtama.ScanVirus(Semua:Boolean);
Var
CallBack :TOnCariFile;
Drives:Array of String;
i,L:Integer;
Begin

CallBack := SaatScanFile; // Hasil scan di kembalikan ke procedure lain

If Not Semua Then


Begin
If (edt_folder.Text = '') then Begin
Msgbox(Handle,'Error','Specify the Folder or Drive him?',Critical);
exit;
End;
CariFile(edt_folder.Text,ck_scansubdir.Checked,'*.*',CallBack);
End
Else Begin
For i:=Ord('A') to Ord('Z') do
Case GetDriveType(Pchar(Chr(i) + ':\')) of
DRIVE_UNKNOWN:;
DRIVE_NO_ROOT_DIR:;
Else
Begin
L:=Length(Drives)+1;
SetLength(Drives,L);
Drives[L-1]:=Chr(i) + ':\';
End;
End;

For i:=Low(Drives) to High(Drives) do


Begin
If DriveSiap(Drives[i]) Then
CariFile(Drives[i],ck_scansubdir.Checked,'*.*',CallBack);
End;

End;

End;

procedure TFormUtama.btn_scanClick(Sender: TObject);


Label Scan,Berhenti;
begin

If Not SedangDiScan Then


Goto Scan
Else
Goto BerHenti;

Exit;

Scan: Begin
BerhentiMencari := False; // Agar bisa di scan
{Mulai men-scan file...}
rStartTime := GetTickCount;
C := 0;
try
SedangDiScan := True;
btn_scan.Caption := '&Berhenti..';
ScanVirus ( rb_scan1.Checked ) ; //......
Finally
btn_scan.Caption := '&Scan';
SedangDiScan := False;
End;
End;

Exit;
Berhenti:Begin
If MsgBox(Handle,'Scan Virus',
'Do you want to stop the process of a virus scan ?',
Question + YesNo) = Yes Then
BerhentiMencari := True;
End;

end;

procedure TFormUtama.FormCloseQuery(Sender: TObject;


var CanClose: Boolean);
begin
btn_keluarClick(Sender);
end;

procedure TFormUtama.edt_cariClick(Sender: TObject);


Var Dir:String;
begin
Try
Dir := BrowseDialog(Handle,'Search Folder / Drive');
Finally
If (Dir <> '') then
edt_folder.Text := Dir;
End;
end;

procedure TFormUtama.rb_scan2Click(Sender: TObject);


begin
edt_folder.Enabled := rb_scan2.Checked ;
edt_cari.Enabled := rb_scan2.Checked;
end;

procedure TFormUtama.btn_clsClick(Sender: TObject);


begin
If (Lv_VirList.Items.Count < 1) then Exit;
If MsgBox(Handle,'Clear List',
'Do you want to clear the list (without removing the virus) ?',
Question + YesNo) = Yes Then
lv_virlist.Items.Clear;
end;

procedure TFormUtama.btn_delvirClick(Sender: TObject);


Var i:Integer;
Ada, Bisa:Boolean;
begin
Ada := False;
For i:=0 to Lv_VirList.Items.Count -1 do
If Lv_VirList.Items[i].Checked then begin
Ada := True;
Break;
End;
If Not Ada Then
If Msgbox(Handle,'Warning','Select one of the items',Exclamation) = OK Then
Exit;

For i:=0 to Lv_VirList.Items.Count -1 do


If Lv_VirList.Items[i].Checked then begin
Bisa := DeleteFile(Lv_VirList.Items[i].SubItems[0]);
If Not Bisa Then
If Msgbox(Handle,'Error','File can not be deleted,' +
'the possibility of windows is run it',
CRITICAL) = OK Then Exit
Else Lv_VirList.Items[i].Delete;
End;
end;

end.

Bagi yang kesulitan membaca listingnnya disini kami juga sediakan contoh yang sudah jadinya dan bisa
dikembangkan lagi silahkan untuk contoh source codenya bisa anda download DISINI hanya itu saja info
seputar Cara Membuat Anti Virus Sendiri Dengan Delphi 7 Terbaru 2015 semoga bermanfaat dan
terima kasih.