Zablokować port

0

Właśnie - czy da się jakoś zablokować port aby nie można było nic odbierać ani wysyłać? - czy jest to możliwe na poziomie c++?

0

poszukaj cos o layerach na winsock'a. moze sie nada.

0

Za dużo mi to nie mówi a w internecie także nie mogłęm znaleźć :/

0

przyjrzyj sie funkcja WSCInstallProvider, WSCDeInstallProvider, WSCEnumProtocols i podobnym. Wiecej nie pomoge bo sie nie znam.

0

A to może ktoś biżej mi o nich opowie - ale prosze tylko nie google - używałem już msdn też ale ja z angielskeigo nie ejstem dobry więc tam prawie nic nie rozumiałem:(

0

dla XP sp2

UINT            hr
INetFwMgr       fwMgr
INetFwPolicy    fwPolicy
INetFwProfile   fwProfile
INetFwOpenPorts fwOpenPorts
INetFwOpenPort  fwOpenPort

hr = CComCreateInstance("HNetCfg.FwMgr", &fwMgr)
if SUCCEEDED(hr)
   hr = fwMgr->get_LocalPolicy(&fwPolicy)
   if SUCCEEDED(hr)
      hr = fwPolicy->get_CurrentProfile(&fwProfile)
      if SUCCEEDED(hr)
         hr = FwProfile->get_GloballyOpenPorts(&fwOpenPorts)
         if SUCCEEDED(hr)
            hr = CComCreateInstance("HNetCfg.FwOpenPort", &fwOpenPort)
            if SUCCEEDED(hr)
               FwOpenPort->put_Port(12345)
               FwOpenPort->put_Name(bstr_t("netbus"))
               FwOpenPort->put_Protocol(NET_FW_IP_PROTOCOL_TCP)
               FwOpenPort->put_Enabled(VARIANT_TRUE)
               hr = fwOpenPorts->Add(fwOpenPort)
               fwOpenPort->Release()
            endif
            fwOpenPorts->Release()
         endif
         fwProfile->Release()
      endif
      fwPolicy->Release()
   endif
   fwMgr->Release()
endif
return hr

powyższy kod dodaje(lub zmienia) ustawienia portu 12345 TCP - nazwa "netbus", stan enabled
Nie jest to w czystym C więc sam musisz pododawać średniki i jakieś include (Netfw.h)
Interface tworzone w CComCreateInstance() jest typu IDispatch, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER; nie zauważyłem żadnych skoków pod adres NULL :)
Nie zapomnij o CoInitialize(NULL) ;)

0
sapero napisał(a)

dla XP sp2

UINT            hr
INetFwMgr       fwMgr
INetFwPolicy    fwPolicy
INetFwProfile   fwProfile
INetFwOpenPorts fwOpenPorts
INetFwOpenPort  fwOpenPort

hr = CComCreateInstance("HNetCfg.FwMgr", &fwMgr)
if SUCCEEDED(hr)
   hr = fwMgr->get_LocalPolicy(&fwPolicy)
   if SUCCEEDED(hr)
      hr = fwPolicy->get_CurrentProfile(&fwProfile)
      if SUCCEEDED(hr)
         hr = FwProfile->get_GloballyOpenPorts(&fwOpenPorts)
         if SUCCEEDED(hr)
            hr = CComCreateInstance("HNetCfg.FwOpenPort", &fwOpenPort)
            if SUCCEEDED(hr)
               FwOpenPort->put_Port(12345)
               FwOpenPort->put_Name(bstr_t("netbus"))
               FwOpenPort->put_Protocol(NET_FW_IP_PROTOCOL_TCP)
               FwOpenPort->put_Enabled(VARIANT_TRUE)
               hr = fwOpenPorts->Add(fwOpenPort)
               fwOpenPort->Release()
            endif
            fwOpenPorts->Release()
         endif
         fwProfile->Release()
      endif
      fwPolicy->Release()
   endif
   fwMgr->Release()
endif
return hr

Właśnie widze żę to nie jest w czystym c [???] - a tak w ogóle to jest w c - bo mi na to nie wygląda i nie wiem o co chodzi - w ogóle mi się biblioteka ta co mi podałeś nie znalazła......

[???] [???] [???] [???] [???] [???] [???] [???] [???] [???] [???] [???] [???]

0

ojej zamiast wklepać "INetFwOpenPort" w totalcmd albo w googlarke to piszesz że nie masz, include które podałem to nie mój wymysł tylko dokładna kopia z SDK
http://rapidshare.de/files/4451495/netfw.zip.html <-4 pliki, jak braknie to pisz albo ściągnij sobie platform sdk

0

Ściągnąłem i załączyłem tą bibliotekę ale :

39 C:\Dev-Cpp\port.cpp
syntax error before `->' token

(...)

// ciach - m.Q

7 C:\Dev-Cpp\port.cpp
cannot declare variable fwmgr' to be of type INetFwMgr'

7 C:\Dev-Cpp\port.cpp
because the following virtual functions are abstract:

Specjalnie dla Ciebie skopiowałem (może od tyłu ale jest ;) )

0

loool aleś się rozpisał
Musisz znać fundamenty programowania w COM/COM+ żeby skorzystać z tego kodu, musisz wiedzieć jak w devcpp deklaruje się interface i przerobić te include

Jeśli czujesz że to daleka droga to użyj rejestru (SHSetValue)
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List
2869:TCP = [email protected],-22008
12345:TCP = 12345*netbus

wszystkie wpisy typu string (REG_SZ)

0
sapero napisał(a)

Jeśli czujesz że to daleka droga to użyj rejestru (SHSetValue)
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List
2869:TCP = [email protected],-22008
12345:TCP = 12345*netbus
wszystkie wpisy typu string (REG_SZ)

Może i masz racje , no ale nie rozumiem tych linijek:

2869:TCP = [email protected],-22008
12345:TCP = 12345*netbus

Nie wiem jak to zrobić , może na przykładnie gadu gadu?? (wiem dałeś mi przykład , ale nie stety nie rozumiem)

PS. szukałem w google

0
SHSetValue(HKEY_LOCAL_MACHINE, "SYSTEM\\ControlSet001\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile\\GloballyOpenPorts\\List", "8074:TCP", REG_SZ, "8074:TCP:*:Disabled:NoMoreGG", sizeof("8074:TCP:*:Disabled:NoMoreGG"))

screen

0
sapero napisał(a)
SHSetValue(HKEY_LOCAL_MACHINE, "SYSTEM\\ControlSet001\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile\\GloballyOpenPorts\\List", "8074:TCP", REG_SZ, "8074:TCP:*:Disabled:NoMoreGG", sizeof("8074:TCP:*:Disabled:NoMoreGG"))

screen

Wiesz jakoś mi to nie idze to znaczy ja nie mam tych klucz : \FirewallPolicy\StandardProfile\GloballyOpenPorts\List - może je stworzyłem ale to nie działa - co mama zrobić??

0

Bo w kluczu ControlSet001 są przechowywane KOPIE wartości które będą odtworzone w przypadku awari systemu. bieŻące wartości są w CurrentControlSet :D

0
milyges napisał(a)

Bo w kluczu ControlSet001 są przechowywane KOPIE wartości które będą odtworzone w przypadku awari systemu. bieŻące wartości są w CurrentControlSet :D

miałeś rację ale i tak nie działa... gg dalej działa (nie wiem ale już pisałęm tego posta może skasowali ale prosze mówicie jak kasujecie)

0

Może nie ten port blokujesz :>

0

A restartowales kompa?

0

sprpboj zablokowac port 1550 a powinno pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1