Witam
Jeden z moich starychhhh artów tym razem na temat obsługi wbudowanego firewall'a systemowego znajdującego się w Windows XP z zainstalowanym Service Pack 2.
Życzę miłej lektury
1.Rejestr :
1.1. Wyjątki
Oto przykładowy wyeksportowany klucz z rejestru dla wyjątku Gadu-Gadu :
odrazu widać iż aby dodać program do wyjątku w pomocy pliku *.reg należy go zapisać w następującej formie w gałęzi :
"lokalizacja(podwójny slash)"="lokalizacja(podwojny slash):*:dostep_badz_nie:wyswietlana_nazwa"
1.2. Wyłączenie bądź włączenie firewall'a
Wartości pozwalające na włączenie bądź wyłączenie firewall'a zmieniami w tej oto gałęzi :
Aby włączyć należy ustawić dla "EnableFirewall" wartość 1 zaś by wyłączyć wartość 0 :
"EnableFirewall"=dword:00000001
lub
"EnableFirewall"=dword:00000000
1.3. Wyłączenie bądź włączenie obsługi wyjątków
Lokalizacja klucza jest identyczna jak w punkcie poprzednim, z tą różnicą iż wartość 1 dla "DoNotAllowExceptions" wyłącza obsługę wyjątków natomiast 0 włącza , należy pamietać aby firewall był włączony gdyż wówczas aktywacja obsługi wyjątków mija sie z celem :
"DoNotAllowExceptions"=dword:00000001
lub wyłaczenie
"DoNotAllowExceptions"=dword:00000000
2. Delphi :
Należy pamietać iż do każdego unitu do uses dodajemy Registry, dzięki któremu możemy obsługiwać rejestr przy pomocy Delphi.
2.1 Dodanie i usuwanie wyjątków :
Można zrobić to na 2 sposoby, oto 1 z nich :
Procedura ta jest wywoływana w nastepujący sposób :
WyjatekSP2(true) - wówczas nasz program jest dodany wyjątków
WyjatekSP2(false) - wówczas jest usuniety z wyjątków
Druga metoda jest ciut podobna, a polega na rozłożeniu dodawania i usuwania wyjątków na 2 procedury, które należy zadeklarowaa w naszym programie , dlatego też nie będe opisywać poszczególnych linii :
Aby dodać nasz program do wyjątków wystarczy odwołać sie do procedury : wyjatekdodaj;
Aby usunąć nasz program z wyjątków wystarczy odwołać sie do procedury : wyjatekusun;
Natomiast jeśli chcemy do wyjątków dodać inny program niż nasz uruchomiony wówczas wystarczy zmienić w danej procedurze zmienną sp2 z Application.ExeName na lokalizacje pliku który sobie życzymy np: 'c:windowstrojan.exe'
2.2 Włącz , wyłącz firewall
Opiszę tu tylko 1 metodę gdyż uważam że jest łatwiesza, ale oczywiście można zrobić to na ten 2 sposób zmieniając odpowiednie gałęzie i klucze wg. metody 1, ale to już wedle uznania :
Procedura ta jest wywoływana w następujący sposób :
WylaczSP2(true) - wyłączenie FW
WylaczSP2(false) - włączenie FW
Należy zwrócić uwage iż wartości w tym kluczu nie są już REG_SZ (stringiem) a DWORD (integer) dlatego są ciut inaczej zapisywane tzn. poprzez WriteInteger, a nie jak w punkcie 2.1 (WriteString).
2.3 Włącz , wyłącz obsługe wyjątków
Przyszedł czas na ostatni punkt tego artykułu, procedura będzie identyczna jak w punkcie poprzednim jedynie z tą różnicą iż nazwe wartości EnableFirewall zamieniamy na DoNotAllowExceptions, dla true można ustawia wartość 1 aby nie zezwalać na wyjątki natomiast dla false wartość 0 aby wyjątki były możliwe. Dodatkowo można ustawić dla false aby firewall był włączony bo wkońcu po co włączać obsługę wyjątków skoro FW jest niedostępny ;-)
ThE End
Jeden z moich starychhhh artów tym razem na temat obsługi wbudowanego firewall'a systemowego znajdującego się w Windows XP z zainstalowanym Service Pack 2.
Życzę miłej lektury
1.Rejestr :
1.1. Wyjątki
Oto przykładowy wyeksportowany klucz z rejestru dla wyjątku Gadu-Gadu :
Kod:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesSharedAccessParametersFirewallP
olicyStandardProfileAuthorizedApplicationsList] "C:Program FilesGadu-Gadugg.exe"="C:Program FilesGadu-Gadugg.exe:*:Enabled:Gadu-Gadu - program glowny"
odrazu widać iż aby dodać program do wyjątku w pomocy pliku *.reg należy go zapisać w następującej formie w gałęzi :
"lokalizacja(podwójny slash)"="lokalizacja(podwojny slash):*:dostep_badz_nie:wyswietlana_nazwa"
1.2. Wyłączenie bądź włączenie firewall'a
Wartości pozwalające na włączenie bądź wyłączenie firewall'a zmieniami w tej oto gałęzi :
Kod:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesSharedAccessParametersFirewallP
olicyStandardProfile]
"EnableFirewall"=dword:00000001
lub
"EnableFirewall"=dword:00000000
1.3. Wyłączenie bądź włączenie obsługi wyjątków
Lokalizacja klucza jest identyczna jak w punkcie poprzednim, z tą różnicą iż wartość 1 dla "DoNotAllowExceptions" wyłącza obsługę wyjątków natomiast 0 włącza , należy pamietać aby firewall był włączony gdyż wówczas aktywacja obsługi wyjątków mija sie z celem :
"DoNotAllowExceptions"=dword:00000001
lub wyłaczenie
"DoNotAllowExceptions"=dword:00000000
2. Delphi :
Należy pamietać iż do każdego unitu do uses dodajemy Registry, dzięki któremu możemy obsługiwać rejestr przy pomocy Delphi.
2.1 Dodanie i usuwanie wyjątków :
Można zrobić to na 2 sposoby, oto 1 z nich :
Kod:
procedure WyjatekSP2(aktywuj: Boolean);
var
reg: TRegistry;
sp2 : string;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE; //rozpoczynamy otwieranie każdej gałęzi z osobna sp2:=Application.ExeName; //pobranie lokalizacji w której uruchomiono nasz program reg.OpenKey('System', True);
reg.OpenKey('ControlSet001', True);
reg.OpenKey('Services', True);
reg.OpenKey('SharedAccess', True);
reg.OpenKey('Parameters', True);
reg.OpenKey('FirewallPolicy', True);
reg.OpenKey('StandardProfile', True);
reg.OpenKey('AuthorizedApplications', True);
reg.OpenKey('List', True);
if aktywuj = True then
begin
reg.WriteString(sp2,sp2+':*:Enabled:'+ExtractFileName(sp2)); // zapisanie wyjątku wg. opisu z punktu 1.1, natomiast nazwą własną będzie nazwa naszego projektu
end
else if aktywuj = False then
begin
reg.DeleteValue(sp2); //usunięcie wyjątku
end;
reg.CloseKey;
end;
WyjatekSP2(true) - wówczas nasz program jest dodany wyjątków
WyjatekSP2(false) - wówczas jest usuniety z wyjątków
Druga metoda jest ciut podobna, a polega na rozłożeniu dodawania i usuwania wyjątków na 2 procedury, które należy zadeklarowaa w naszym programie , dlatego też nie będe opisywać poszczególnych linii :
Kod:
procedure TForm1.wyjatekdodaj; //dodanie wyjątku
var
rejestr: TRegistry;
sp2: string;
begin
sp2:=Application.ExeName;
rejestr:=TRegistry.Create;
rejestr.RootKey:=HKEY_LOCAL_MACHINE;
rejestr.OpenKey('SYSTEMControlSet001Services SharedAccessParametersFirewallPolicy
StandardProfileAuthorizedApplicationsList',False);
rejestr.WriteString(sp2,sp2+':*:Enabled:'+ExtractFileName(sp2));
rejestr.Free;
end;
Kod:
procedure TForm1.wyjatekusun; //usuwanie wyjątku
var
usunrej: TRegistry;
sp2: string;
begin
sp2:=Application.ExeName;
usunrej:=TRegistry.Create;
usunrej.RootKey:=HKEY_LOCAL_MACHINE;
usunrej.OpenKey('SYSTEMControlSet001Services SharedAccessParametersFirewallPolicy
StandardProfileAuthorizedApplicationsList',true);
usunrej.DeleteValue(sp2);
usunrej.DeleteValue(sp2+':*:Enabled:'+ExtractFileName(sp2));
usunrej.CloseKey;
usunrej.Free;
end;
Natomiast jeśli chcemy do wyjątków dodać inny program niż nasz uruchomiony wówczas wystarczy zmienić w danej procedurze zmienną sp2 z Application.ExeName na lokalizacje pliku który sobie życzymy np: 'c:windowstrojan.exe'
2.2 Włącz , wyłącz firewall
Opiszę tu tylko 1 metodę gdyż uważam że jest łatwiesza, ale oczywiście można zrobić to na ten 2 sposób zmieniając odpowiednie gałęzie i klucze wg. metody 1, ale to już wedle uznania :
Kod:
procedure WylaczSP2(aktywuj: Boolean);
var
reg: TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.OpenKey('System', True);
reg.OpenKey('ControlSet001', True);
reg.OpenKey('Services', True);
reg.OpenKey('SharedAccess', True);
reg.OpenKey('Parameters', True);
reg.OpenKey('FirewallPolicy', True);
reg.OpenKey('StandardProfile', True);
if aktywuj = True then
begin
reg.WriteInteger('EnableFirewall',0); //wartość 0 wyłącza firewall'a
end
else if aktywuj = False then
begin
reg.WriteInteger('EnableFirewall',1); //wartość 1 włącza firewall'a
end;
reg.CloseKey;
end;
Procedura ta jest wywoływana w następujący sposób :
WylaczSP2(true) - wyłączenie FW
WylaczSP2(false) - włączenie FW
Należy zwrócić uwage iż wartości w tym kluczu nie są już REG_SZ (stringiem) a DWORD (integer) dlatego są ciut inaczej zapisywane tzn. poprzez WriteInteger, a nie jak w punkcie 2.1 (WriteString).
2.3 Włącz , wyłącz obsługe wyjątków
Przyszedł czas na ostatni punkt tego artykułu, procedura będzie identyczna jak w punkcie poprzednim jedynie z tą różnicą iż nazwe wartości EnableFirewall zamieniamy na DoNotAllowExceptions, dla true można ustawia wartość 1 aby nie zezwalać na wyjątki natomiast dla false wartość 0 aby wyjątki były możliwe. Dodatkowo można ustawić dla false aby firewall był włączony bo wkońcu po co włączać obsługę wyjątków skoro FW jest niedostępny ;-)
ThE End