![]() |
Netzwerkports auffinden und sperren ?????
Ich hab vor ein kleines Tool zu programmieren das beim Starten des Systems alle Netzwerkports dicht macht. :drunken: Leichter gesagt als getan...
-Autostart über registry. = klar -Auffinden der Ports = keine Ahnung -Sperren und freigeben der Ports = keine Ahnung Was auch noch gut wäre ist das man die Anwendung nicht unter Anwendungen im TastManager sieht. Wenn jemand erfahrnung hat wäre echt nett... |
Re: Netzwerkports auffinden und sperren ?????
Der ganz einfache Weg wäre: Nutze 'ne Firewall. Die macht alles dicht, was du nicht offen haben möchtest.
Wenn du unbedingt selber programmieren möchtest: Unter "Anwendungen" taucht nur das auf, was ein Fenster hat. Ansonsten beschäftige dich mal mit Sockets (oder Treiberprogrammierung, wenn's nicht anders geht.) |
Re: Netzwerkports auffinden und sperren ?????
also eine krumme Methode wäre, einfach zu versuchen auf allen Ports nen Server zu öffnen, und die jeweils alle eingehenden Verbindungen disconnecten.
Aber pauschal hätte ich auch keine andere Idee zur Lösung. |
Re: Netzwerkports auffinden und sperren ?????
:cry: doch so schwer.
Es muss halt n Tool sein das alle eingehenden und ausgehenden verbindungen blockiert. (Gegen kleine Kinder) |
Re: Netzwerkports auffinden und sperren ?????
Blockieren aller eingehenden Verbindungen: Windows-Firewall.
Blockieren aller ausgehenden Verbindungen: eine andere Personal-Firewall die das unterstützt. z.B. Kerio. Das Problem an der Geschichte ist dass die ganzen Tools die sowas können in aller Regel Treiber sind, die sich zwischen TCP/IP Stack und allen Anwendungen legen, die darauf zugreifen wollen. Und Treiberprogrammierung mit Delphi: vergiss es einfach. Das hatten wir schon mehrfach, dafür ist Delphi einfach nicht ausgelegt. Ich würde Dir echt raten auf eine Personal Firewall zurückzugreifen. Ist das einfachste und sicherste. Die Jungs die das Programmiert haben haben nämlich ne gute Ahnung davon was sie machen :) |
Re: Netzwerkports auffinden und sperren ?????
Warum nicht einfach alle Netzwerkkarten deaktivieren? Müsste doch über API-Funktionen gehen?!?
|
Re: Netzwerkports auffinden und sperren ?????
Zitat:
|
Re: Netzwerkports auffinden und sperren ?????
na ueber api funktionen, wenn die das koennen
|
Re: Netzwerkports auffinden und sperren ?????
Zitat:
|
Re: Netzwerkports auffinden und sperren ?????
Guck dir mal hier:
![]() |
Re: Netzwerkports auffinden und sperren ?????
gut schau ich mir mal an
|
Re: Netzwerkports auffinden und sperren ?????
Moin moin,
wenn du wirklich alles sperren willst, dann ist es sogar relativ einfach. Es reicht, per API ein Interface zu erstellen, welches per Default alles dropt... Wenn du mehr zum Thema wissen willst, suche mal über Google nach folgenden Units: fltdefs.pas, iphlpapi.pas bzw. bei MSDN ![]() Du hast oben irgendwo nach einem Beispiel gefragt, hier ist ein ganz simples...
Delphi-Quellcode:
{
Aufruf: InstallFW('192.168.0.2'); und zum schluss: RemoveFW; } unit DropAllU; interface procedure InstallFW(MyIP: String); procedure RemoveFW; implementation uses Windows; const IPHLPAPI = 'IPHLPAPI.DLL'; type PFFORWARD_ACTION = Integer; PPFFORWARD_ACTION = ^PPFFORWARD_ACTION; // INTERFACE_HANDLE = Pointer; // PFADDRESSTYPE = Integer; PPFADDRESSTYPE = ^PFADDRESSTYPE; // TByteArray = Array [0..Pred(MaxInt)] of Byte; PByteArray = ^TByteArray; TIpBytes = Array [0..3] of Byte; const PF_ACTION_DROP = 1; const PF_IPV4 = 0; function PfCreateInterface( dwName: DWORD; inAction: PFFORWARD_ACTION; outAction: PFFORWARD_ACTION; bUseLog: BOOL; bMustBeUnique: BOOL; var ppInterface: INTERFACE_HANDLE): DWORD; stdcall; external IPHLPAPI name '_PfCreateInterface@24'; function PfDeleteInterface( pInterface: INTERFACE_HANDLE): DWORD; stdcall; external IPHLPAPI name '_PfDeleteInterface@4'; function PfBindInterfaceToIPAddress( pInterface: INTERFACE_HANDLE; pfatLinkType: PFADDRESSTYPE; IPAddress: PByteArray): DWORD; stdcall; external IPHLPAPI name '_PfBindInterfaceToIPAddress@12'; function PfUnBindInterface( pInterface: INTERFACE_HANDLE): DWORD; stdcall; external IPHLPAPI name '_PfUnBindInterface@4'; var Handle_Interface : INTERFACE_HANDLE = nil; function StrToInt(S: PChar): Integer; begin Result := 0; if S = '' then Exit; while S^ in ['0'..'9'] do begin Result := Result * 10 + Integer(S^) - Integer('0'); Inc( S ); end; end; function StrToIpBytes( IpStr: String ): TIpBytes; var N : Integer; begin N := 0; while Pos('.', IpStr)>0 do begin Result[N] := StrToInt(@Copy(IpStr, 1, Pos('.', IpStr) - 1)[1]); Delete(IpStr, 1, Pos('.', IpStr)); Inc(N); end; Result[N] := StrToInt(@IpStr[1]); end; procedure InstallFW(MyIP: String); var IpLocal : TIpBytes; begin if (MyIP <> '') and Not Assigned(Handle_Interface) then begin FillChar(IpLocal, 4, #0); IpLocal := StrToIpBytes(MyIP); PfCreateInterface(0, PF_ACTION_DROP, PF_ACTION_DROP, False, False, Handle_Interface); PfBindInterfaceToIPAddress(Handle_Interface, PF_IPV4, @ipLocal); end; end; procedure RemoveFW; begin if Assigned(Handle_Interface) then begin PfUnBindInterface(Handle_Interface); PfDeleteInterface(Handle_Interface); Handle_Interface := nil; end; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz