Probao sam da napravim program koji ce zabraniti priistum odedjenim sajtovima.
Program radi na onu foru upisuje zabranu u Hosts file. Naisao sam na problem sa Avira antivirus, kupljena verzija jer na onu free radi ok.
Na kupljenu verziju ima zabranu na menjanje hosts fajla tako da moram rucno da joj u firewall cekiram opciju da mom programu omoguci promenu hosts fajla.
Pogledao sam dosta programa na netu koji rade iste funkcije, tj. zabranu sajtovima neki rade sa hosts fajlovima , ali vecina rade na neki nepoznat nacin;
ili kao neka vrsta firewall-a samo sto mi nije jasno da kad se deinstalira , zabrana i dalje postoji.
Pproverio sam i sa RegSnap da skeniram promene u registry i nisam uocio nikakve promene osim to sto upisuje svoja podesavanaj.
Ima li neko ideju kako ti programi uopste rade?
Moje misljenje je da je to neka vrsta firewall-a.
I drugo pitanje je ima li neko primer firewall-a?
ja sa nesto radio i on lepo radi sa win XP , ali to meni nista ne znaci:
uses ActiveX , ComObj....
Const
NET_FW_PROFILE_DOMAIN = 0;
NET_FW_PROFILE_STANDARD = 1;
NET_FW_IP_VERSION_ANY = 2;
NET_FW_IP_PROTOCOL_UDP = 17;
NET_FW_IP_PROTOCOL_TCP = 6;
NET_FW_SCOPE_ALL = 0;
NET_FW_SCOPE_LOCAL_SUBNET = 1;
procedure addApplicationToFirewall(EntryName:string;ApplicationPathAndExe:string);
var
fwMgr,app,port:OleVariant;
profile:OleVariant;
begin
fwMgr := CreateOLEObject('HNetCfg.FwMgr');
profile := fwMgr.LocalPolicy.CurrentProfile;
app := CreateOLEObject('HNetCfg.FwAuthorizedApplication');
app.ProcessImageFileName := ApplicationPathAndExe;
app.Name := EntryName;
app.Scope := NET_FW_SCOPE_ALL;
app.IpVersion := NET_FW_IP_VERSION_ANY;
app.Enabled :=true;
profile.AuthorizedApplications.Add(app);
end;
procedure addPortToFirewall(EntryName:string;PortNumber:Cardinal);
var
fwMgr,port:OleVariant;
profile:OleVariant;
begin
fwMgr := CreateOLEObject('HNetCfg.FwMgr');
profile := fwMgr.LocalPolicy.CurrentProfile;
port := CreateOLEObject('HNetCfg.FWOpenPort');
port.Name := EntryName;
port.Protocol := NET_FW_IP_PROTOCOL_TCP;
port.Port := PortNumber;
port.Scope := NET_FW_SCOPE_ALL;
port.Enabled := true;
profile.GloballyOpenPorts.Add(port);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
CoInitialize(nil);
addApplicationToFirewall('Moja Aplicacija','C:\Moja Aplikacija.exe');
CoUninitialize;
end;