XP Firewall Tool

Started by whit3_sh4rk, 05 de February , 2006, 12:31:38 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

whit3_sh4rk

É uma ferramenta para manusear o firewall do WinXP SP2..







Na época q eu desenvolvi, eu tinha usado o componente VCL Skin eu axo e tb usei os componentes "Flat"... ae por isso vo disponibilizar somente o código da unit, pq nem todos tem esse componente, mas ja da pra ter uma noção, se alguém quiser o source mesmo assim, é só falar q eu upo ele, a unit ae :
unit uFirewall;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Registry, TFlatListBoxUnit, StdCtrls, WinSkinData, Clipbrd,
  TFlatHintUnit, TFlatTitlebarUnit, ShellAPI, ImgList, CoolTrayIcon, Menus,
  ExtCtrls, Buttons;

type
  TForm1 = class(TForm)
    ListR: TFlatListBox;
    bExc: TButton;
    SkinData1: TSkinData;
    bAddExc: TButton;
    edNome: TEdit;
    lbNome: TLabel;
    edDir: TEdit;
    lbDir: TLabel;
    rad1: TRadioButton;
    rad2: TRadioButton;
    FlatHint1: TFlatHint;
    bAdicionar: TButton;
    FStatus: TFlatTitlebar;
    bStatus: TButton;
    lb1: TLabel;
    lb2: TLabel;
    lb3: TLabel;
    lbF: TLabel;
    lbN: TLabel;
    lbE: TLabel;
    imglist: TImageList;
    Tray: TCoolTrayIcon;
    PMenu: TPopupMenu;
    minimizar1: TMenuItem;
    restaurar1: TMenuItem;
    N1: TMenuItem;
    ativarfirewall1: TMenuItem;
    destivarfirewall1: TMenuItem;
    N2: TMenuItem;
    fechar1: TMenuItem;
    bAti: TButton;
    bDes: TButton;
    bRefresh: TButton;
    tIcon: TTimer;
    bAbrir: TBitBtn;
    bCentral: TBitBtn;
    bNoti: TButton;
    procedure bExcClick(Sender: TObject);
    procedure ListRClick(Sender: TObject);
    procedure bAddExcClick(Sender: TObject);
    procedure bExcMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure bAddExcMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure bAdicionarClick(Sender: TObject);
    procedure bStatusClick(Sender: TObject);
    procedure bAbrirMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure bStatusMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure minimizar1Click(Sender: TObject);
    procedure restaurar1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure fechar1Click(Sender: TObject);
    procedure TrayDblClick(Sender: TObject);
    procedure FormClick(Sender: TObject);
    procedure bDesMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure bAtiMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure bAtiClick(Sender: TObject);
    procedure bDesClick(Sender: TObject);
    procedure bRefreshClick(Sender: TObject);
    procedure tIconTimer(Sender: TObject);
    procedure ativarfirewall1Click(Sender: TObject);
    procedure destivarfirewall1Click(Sender: TObject);
    procedure bAbrirClick(Sender: TObject);
    procedure bCentralMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure bCentralClick(Sender: TObject);
    procedure bNotiClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.bExcClick(Sender: TObject);
label
carregar;
var
Reg: TRegistry;
Val:TStringList;
i: integer;
begin
if bExc.Caption = 'Exceções' then begin
bAddExc.Enabled:=false;
bStatus.Enabled:=false;
bExc.Caption:='[Exceções]';
ListR.Visible:=true;
ListR.Height:=157;
ListR.Width:=520;
ListR.Top:=40;
ListR.Left:=15;
goto Carregar;
end;
if bExc.Caption = '[Exceções]' then begin
bAddExc.Enabled:=true;
bStatus.Enabled:=true;
bExc.Caption:='Exceções';
ListR.Visible:=false;
ListR.Height:=24;
ListR.Width:=17;
ListR.Top:=8;
ListR.Left:=120;
Exit;
end;
Carregar:
Reg:=TRegistry.Create;
Val:=TStringList.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List',false);
Reg.GetValueNames(Val);
for I:=0 to Val.Count-1 do
begin
ListR.Items.Add(Val.Strings[i]);
end;
end;

procedure TForm1.ListRClick(Sender: TObject);
begin
if ListR.ItemIndex > 0 then
begin
Clipboard.AsText:=ListR.Items[ListR.ItemIndex];
end;
end;

procedure TForm1.bAddExcClick(Sender: TObject);
begin
if bAddExc.Caption = '+ Exceções' then begin
bExc.Enabled:=false;
bStatus.Enabled:=false;
bAddExc.Caption:='[+ Exceções]';
bAdicionar.Top:=122;
bAdicionar.Left:=328;
bAdicionar.Visible:=true;
lbNome.Top:=56;
lbNome.Left:=34;
lbNome.Visible:=true;
lbDir.Top:=104;
lbDir.Left:=34;
lbDir.Visible:=true;
edNome.Top:=72;
edNome.Left:=32;
edNome.Visible:=true;
edDir.Top:=120;
edDir.Left:=32;
edDir.Visible:=true;
rad1.Top:=176;
rad1.Left:=32;
rad1.Visible:=true;
rad2.Top:=176;
rad2.Left:=112;
rad2.Visible:=true;
Exit;
end;
if bAddExc.Caption = '[+ Exceções]' then begin
bExc.Enabled:=true;
bStatus.Enabled:=true;
bAddExc.Caption:='+ Exceções';
bAdicionar.Top:=0;
bAdicionar.Left:=200;
bAdicionar.Visible:=false;
lbNome.Top:=0;
lbNome.Left:=200;
lbNome.Visible:=false;
lbDir.Top:=0;
lbDir.Left:=200;
lbDir.Visible:=false;
edNome.Top:=0;
edNome.Left:=200;
edNome.Visible:=false;
edDir.Top:=0;
edDir.Left:=200;
edDir.Visible:=false;
rad1.Top:=0;
rad1.Left:=200;
rad1.Visible:=false;
rad2.Top:=0;
rad2.Left:=200;
rad2.Visible:=false;
end;

end;

procedure TForm1.bExcMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
FStatus.Caption:='Mostrar arquivos autorizados à acessar a internet através de seu computador.';
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
FStatus.Caption:='XP Firewall Tool - por whit3_sh4rk';
end;

procedure TForm1.bAddExcMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
FStatus.Caption:='Autorizar um programa acessar a internet (adicionar exceção).';
end;

procedure TForm1.bAdicionarClick(Sender: TObject);
label
adicionar;
var
Reg: TRegistry;
son: string;
begin
Reg:=TRegistry.Create;
begin
if rad1.Checked then
begin
son:='Enabled';
end
else begin
son:='Disabled';
end;
adicionar:
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List',false);
Reg.WriteString(edDir.Text,edDir.Text+':*:'+son+':'+edNome.Text);
Reg.CloseKey;
Reg.Free;
FStatus.Caption:='Exceção adicionada com sucesso! Execute o firewall para vizualizar.';
//bAbrir.SetFocus;
end;
end;

procedure TForm1.bStatusClick(Sender: TObject);
label
mostra;
var
Reg: TRegistry;
fire:boolean;
noti:boolean;
exce:boolean;
begin
if bStatus.Caption = 'Status' then begin
bExc.Enabled:=false;
bAddExc.Enabled:=false;
bStatus.Caption:='[Status]';
bRefresh.Top:=176;
bRefresh.Left:=64;
bRefresh.Visible:=true;
bAti.Top:=144;
bAti.Left:=32;
bAti.Visible:=true;
bDes.Top:=144;
bDes.Left:=120;
bDes.Visible:=true;
lb1.Top:=72;
lb1.Left:=32;
lb1.Visible:=true;
lb2.Top:=96;
lb2.Left:=32;
lb2.Visible:=true;
lb3.Top:=120;
lb3.Left:=32;
lb3.Visible:=true;
lbF.Top:=72;
lbF.Left:=152;
lbF.Visible:=true;
lbN.Top:=96;
lbN.Left:=176;
lbN.Visible:=true;
lbE.Top:=120;
lbE.Left:=162;
lbE.Visible:=true;
goto mostra;
end else
begin
bExc.Enabled:=true;
bAddExc.Enabled:=true;
bStatus.Caption:='Status';
bRefresh.Top:=0;
bRefresh.Left:=200;
bRefresh.Visible:=false;
bAti.Top:=0;
bAti.Left:=200;
bAti.Visible:=false;
bDes.Top:=0;
bDes.Left:=200;
bDes.Visible:=false;
lb1.Top:=0;
lb1.Left:=200;
lb1.Visible:=false;
lb2.Top:=0;
lb2.Left:=200;
lb2.Visible:=false;
lb3.Top:=0;
lb3.Left:=200;
lb3.Visible:=false;
lbF.Top:=0;
lbF.Left:=200;
lbF.Visible:=false;
lbN.Top:=0;
lbN.Left:=200;
lbN.Visible:=false;
lbE.Top:=0;
lbE.Left:=200;
lbE.Visible:=false;
end;
if bAddExc.Caption = '[+ Exceções]' then begin
bExc.Enabled:=true;
bAddExc.Caption:='+ Exceções';
bAdicionar.Top:=0;
bAdicionar.Left:=200;
bAdicionar.Visible:=false;
lbNome.Top:=0;
lbNome.Left:=200;
lbNome.Visible:=false;
lbDir.Top:=0;
lbDir.Left:=200;
lbDir.Visible:=false;
edNome.Top:=0;
edNome.Left:=200;
edNome.Visible:=false;
edDir.Top:=0;
edDir.Left:=200;
edDir.Visible:=false;
rad1.Top:=0;
rad1.Left:=200;
rad1.Visible:=false;
rad2.Top:=0;
rad2.Left:=200;
rad2.Visible:=false;
end;
mostra:
Reg:= TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile',false);
fire:=Reg.ReadBool('EnableFirewall');
noti:=Reg.ReadBool('DisableNotifications');
exce:=Reg.ReadBool('DoNotAllowExceptions');
if fire then
begin
lbF.Font.Color:=clGreen;
lbF.Caption:='SIM';
Tray.Hint:='Firewall ATIVADO';
Tray.IconIndex:=1;
bAti.Enabled:=false;
bDes.Enabled:=true;
tIcon.Enabled:=true;
end else
begin
lbF.Font.Color:=clRed;
Tray.Hint:='Firewall DESATIVADO';
lbF.Caption:='NÃO';
Tray.IconIndex:=2;
bAti.Enabled:=true;
bDes.Enabled:=false;
tIcon.Enabled:=true;
end;
if not noti then
begin
lbN.Font.Color:=clGreen;
lbN.Caption:='SIM';
end else
begin
lbN.Font.Color:=clRed;
lbN.Caption:='NÃO';
end;
if not exce then
begin
lbE.Font.Color:=clGreen;
lbE.Caption:='SIM';
end else
begin
lbE.Font.Color:=clRed;
lbE.Caption:='NÃO';
end;
end;

procedure TForm1.bStatusMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
FStatus.Caption:='Mostrar o status atual do firewall.';
end;

procedure TForm1.minimizar1Click(Sender: TObject);
begin
Tray.HideMainForm;
end;

procedure TForm1.restaurar1Click(Sender: TObject);
begin
Tray.ShowMainForm;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;

procedure TForm1.fechar1Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.TrayDblClick(Sender: TObject);
begin
Tray.ShowMainForm;
end;

procedure TForm1.FormClick(Sender: TObject);
begin
Tray.Hint:='XP Firewall Tool';
end;

procedure TForm1.bDesMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
FStatus.Caption:='Desativa o Firewall do Windows...';
end;

procedure TForm1.bAtiMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
FStatus.Caption:='Ativa o Firewall do Windows...';
end;

procedure TForm1.bAtiClick(Sender: TObject);
var
Reg: TRegistry;
begin
PMenu.Items[3].Enabled:=false;
PMenu.Items[4].Enabled:=true;
bAti.Enabled:=false;
bDes.Enabled:=true;
Reg:= TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile',false);
Reg.WriteBool('EnableFirewall',true);
Reg.CloseKey;
bRefresh.Click;
end;

procedure TForm1.bDesClick(Sender: TObject);
var
Reg: TRegistry;
begin
PMenu.Items[4].Enabled:=false;
PMenu.Items[3].Enabled:=true;
bDes.Enabled:=false;
bAti.Enabled:=true;
Reg:= TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile',false);
Reg.WriteBool('EnableFirewall',false);
Reg.CloseKey;
bRefresh.Click;
end;

procedure TForm1.bRefreshClick(Sender: TObject);
var
Reg: TRegistry;
fire:boolean;
noti:boolean;
exce:boolean;
begin
Reg:= TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile',false);
fire:=Reg.ReadBool('EnableFirewall');
noti:=Reg.ReadBool('DisableNotifications');
exce:=Reg.ReadBool('DoNotAllowExceptions');
Reg.CloseKey;
if fire then
begin
lbF.Font.Color:=clGreen;
lbF.Caption:='SIM';
Tray.Hint:='Firewall ATIVADO';
Tray.IconIndex:=1;
bAti.Enabled:=false;
bDes.Enabled:=true;
tIcon.Enabled:=true;
end else
begin
lbF.Font.Color:=clRed;
Tray.Hint:='Firewall DESATIVADO';
lbF.Caption:='NÃO';
Tray.IconIndex:=2;
bAti.Enabled:=true;
bDes.Enabled:=false;
tIcon.Enabled:=true;
end;
if not noti then
begin
lbN.Font.Color:=clGreen;
lbN.Caption:='SIM';
end else
begin
lbN.Font.Color:=clRed;
lbN.Caption:='NÃO';
end;
if not exce then
begin
lbE.Font.Color:=clGreen;
lbE.Caption:='SIM';
end else
begin
lbE.Font.Color:=clRed;
lbE.Caption:='NÃO';
end;
end;

procedure TForm1.tIconTimer(Sender: TObject);
begin
Tray.IconIndex:=0;
Tray.Hint:='XP Firewall Tool';
tIcon.Enabled:=false;
end;

procedure TForm1.ativarfirewall1Click(Sender: TObject);
begin
PMenu.Items[3].Enabled:=false;
PMenu.Items[4].Enabled:=true;
bAti.Click;
end;

procedure TForm1.destivarfirewall1Click(Sender: TObject);
begin
PMenu.Items[4].Enabled:=false;
PMenu.Items[3].Enabled:=true;
bDes.Click;
end;

procedure TForm1.bAbrirClick(Sender: TObject);
begin
ShellExecute(0,nil,'firewall.cpl' ,nil, nil, SW_SHOWNORMAL);
end;

procedure TForm1.bAbrirMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
FStatus.Caption:='Abrir o Firewall...';
end;

procedure TForm1.bCentralMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
FStatus.Caption:='Abre a Central de Segurança do Windows...';
end;

procedure TForm1.bCentralClick(Sender: TObject);
begin
ShellExecute(0,nil,'wscui.cpl' ,nil, nil, SW_SHOWNORMAL);
end;

procedure TForm1.bNotiClick(Sender: TObject);
var
Reg: TRegistry;
begin
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SOFTWARE\Microsoft\Security Center\',false);
Reg.WriteBool('FirewallDisableNotify',true);
Reg.WriteBool('AntiVirusDisableNotify',true);
Reg.WriteBool('UpdatesDisableNotify',true);
Reg.CloseKey;
Reg.Free;
end;

end.

Quem tem uma noção de delphi, ja mexe a algum tempo, não irá ter dificuldades para entender, mas quem nunca mexeu, ou está começando agora, vai ficar bem confuso hehe.. Mas nada que um pouco de prática e uns tutoriais não resolva..

Download

[]s

rodweb

vlw...ja da pra da uma estudada com esse code  ;D

Fox

nooo...que loucura cara.... muito bom esse programa pra estudar!
vlw peixinho branco de aguario...hahaha..zueira! T+

shake

Nossa que massa cara.
Eu fiquei um tempo atrás pra fazer um batch file que adicionasse um programa a lista de autorização do firewall do windows XP discretamente.
Que pena não saber Delphi pra estudar esse code, mas nada que uns 5 anos de estudo para aprender né? hehe
É pensando bem acho que vou comecar a estudar Delphi.

Abracos