NetFilter SDK is a framework for
transparent filtering the data packets transmitted via network. This
is a high performance proxy-less solution, compatible with all
antiviruses/firewalls/other network filters. It perfectly suits for
developing the content filters, basic application level firewalls,
traffic analyzers/shapers, other software that requires viewing and
modifying TCP/UDP traffic on Windows.
SDK consists of kernel mode and user mode parts. TDI level kernel
driver works on the top of TCP/IP stack and filters TCP and UDP
protocols. It has a simple user level API, which can be used from
C/C++/.NET/Delphi code.
Key features:
- The solution allows filtering incoming/outgoing TCP
connections and UDP datagrams in user mode application. It is
possible to filter the specified subset of connections/datagrams,
restricted by filtering rules. The outgoing TCP connections can be
redirected to different address.
- The filtering is fully transparent, because the driver allows
viewing and changing TCP/UDP data without redirecting the traffic
to proxy and modifying the addresses. There are no conflicts with
antiviruses, firewalls and other filters.
- The filtering driver operates on transport level, in front of
TCP/IP stack. In effect it automatically supports all kinds of
TCP/IP capable network adapters: Ethernet, Dial-up/DSL/Cable
modems, wireless adapters including Wi-Fi and Bluetooth, virtual
adapters like loopback or VPN.
- Both IPv6 and IPv4 are supported.
- The process context (as process identifier) is available for
all network activity.
- The driver user level interface (API) is easy in use, but
powerful. There is no need to deal with the packet headers (like
in NDIS level packet filters) or complicated WinSock interfaces.
- There are no problems with the high-speed connections,
because the driver operates on transport level, between the
applications and TCP/IP stack. It is possible to control the speed
of data transmission.
- The driver works similarly on all 32-bit and 64-bit Windows
operating systems starting from Windows NT. It is possible to use
32-bit API for working with 64-bit driver.
System requirements:
Windows NT/2000/XP/2003/Vista/2008/7, x86/x64.
Limitations:
The driver must be signed with a digital certificate to work
properly on 64-bit operating systems starting from Windows Vista.
Included samples:
- Delphi\PassThrough - Delphi sample application that uses driver API for
filtering all TCP connections and UDP datagrams in pass-though mode.
- Delphi\NetRedirector - Delphi sample application that demonstrates
redirecting outgoing TCP connections and UDP datagrams.
- CSharp\PassThrough - C# sample application that uses managed API nfapinet
for filtering all TCP connections and UDP datagrams in pass-though mode.
- CSharp\TcpRedirector - C# sample application that redirects outgoing TCP
connections.
- PassThrough - uses driver API for filtering all TCP connections and UDP
datagrams in pass-though mode.
- PassThrough_c - uses pure C driver API for filtering all TCP connections and
UDP datagrams in pass-though mode.
- DnsRedirector - the sources of sample application that redirects DNS
requests to opendns.com server.
- TcpRedirector - redirects outgoing TCP connections.
- TrafficShaper - limits the bandwidth for a specified application.
|