Memproteksi Flashdisk dari virus

Kadang ketika saya dari warnet untuk mengupload file, setibanya di rumah flashdisk terdapat tamu tak diundang, klo ga virus sality ya virus alman. Padahal antivirus di warnet sudah pake salah satu antivirus lokal yang suka mengeluarkan updatean, kok ga terdeteksi ya . Akhirnya capek lagi untuk mengcopy file2 program yang saya wajibkan di flashdisk Pikir2, cuma warnet itu yang dekat rumah saya . Masak cuma upload file mesti jauh2 sih

Akhirnya terpikir untuk membuat flashdisk menjadi read-only. Tapi flashdisk saya murahan jadi ga ada switch buat hal tersebut . Terpikir untuk manipulasi registry, mengingat registry buat protek drive aja ada, masak buat flashdisk ga ada ?!

Loading...

Loading...

Ketemu juga di registry :
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies",
dengan dword valuenya "WriteProtect"
Cukup ubah saja nilai dari "WriteProtect" menjadi 1 maka flashdisk tidak dapat "digerayangi"

Sudah ketemu caranya maka tinggal ubah aja registrnya abis itu ntar dinormlin lagi ya.. Tapi klo regeditnya diprotect, ya kita buat aja programnya, upload programmnya, pas di warnet download kemudian buka tuh program, jadi klo ke warnet buat upload data ga perlu bawa oleh2 lagi. Terutama buat cewek2 yang kerjaannya upload foto di FS mulu :P

Disini saya membuatnya menggunakan Delphi 7, berikut source codenya :

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, registry, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Label2: TLabel;
Label3: TLabel;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure showCurrentStatus;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

const
regKey = '\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies';
regValue = 'WriteProtect';
var
Form1: TForm1;
currentVal: integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
try
with TRegistry.Create do
begin
try
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey(regKey, true) then
begin
if currentVal = 0 then
WriteInteger(regValue, 1)
else
WriteInteger(regValue, 0);
end;
finally
free;
end;
end;
except
on E:Exception do
begin
showmessage('Error updating registry');
end;
end;
showCurrentStatus;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
showCurrentStatus;
end;


procedure TForm1.showCurrentStatus;
begin
try
with TRegistry.Create do
begin
try
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey(regKey, false) then
begin
currentVal := ReadInteger(regValue);
if currentVal = 0 then
label1.caption := 'Current status: Your USB disk is now WRITEABLE'
else
label1.caption := 'Current status: Your USB disk is now READ ONLY';
end
else
begin
label1.caption := 'There is no current setting for your USB disk.';
currentVal := 0;
end;
finally
free;
end;
end;
except
on E:Exception do
begin
showmessage('Error reading current status from registry');
label1.caption := 'There is no current setting for your USB disk.';
currentVal := 0;
end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
WinExec('explorer.exe http://anggiawan.web.id',SW_NORMAL);
end;

end.

0 komentar:

Posting Komentar