Update README.
This commit is contained in:
@@ -4,21 +4,20 @@ WinDivert 1.4: Windows Packet Divert
|
||||
1. Introduction
|
||||
---------------
|
||||
|
||||
Windows Packet Divert (WinDivert) is a user-mode packet capture-and-divert
|
||||
package for Windows Vista, Windows 2008, Windows 7, Windows 8 and Windows 10.
|
||||
Windows Packet Divert (WinDivert) is a user-mode packet interception library
|
||||
for Windows 7, Windows 8 and Windows 10.
|
||||
|
||||
WinDivert allows user-mode programs to capture/modify/drop network packets
|
||||
sent to/from the Windows network stack.
|
||||
In summary, WinDivert can
|
||||
WinDivert enables user-mode capturing/modifying/dropping of network packets
|
||||
sent to/from the Windows network stack. In summary, WinDivert can:
|
||||
- capture network packets
|
||||
- filter/drop network packets
|
||||
- sniff network packets
|
||||
- (re)inject network packets
|
||||
- modify network packets
|
||||
WinDivert can be used to implement user-mode packet filters, packet sniffers,
|
||||
firewalls, NAT, VPNs, tunneling applications, etc., etc..
|
||||
WinDivert can be used to implement user-mode packet filters, sniffers,
|
||||
firewalls, NATs, VPNs, IDSs, tunneling applications, etc..
|
||||
|
||||
The features of WinDivert include:
|
||||
WinDivert supports the following features:
|
||||
- packet interception, sniffing, or dropping modes
|
||||
- support for loopback (localhost) traffic
|
||||
- full IPv6 support
|
||||
@@ -27,23 +26,11 @@ The features of WinDivert include:
|
||||
- high-level filtering language
|
||||
- filter priorities
|
||||
- freely available under the terms of the GNU Lesser General Public
|
||||
License (LGPL)
|
||||
License (LGPLv3)
|
||||
|
||||
For more information about WinDivert, see doc/windivert.html
|
||||
For more information see doc/windivert.html
|
||||
|
||||
2. Similar Packages
|
||||
-------------------
|
||||
|
||||
WinDivert is similar to divert sockets in FreeBSD/MacOS, NETLINK sockets in
|
||||
Linux, and some commercial packet capturing packages such as WinPkFilter for
|
||||
Windows. The design of WinDivert is largely influenced by FreeBSD's divert
|
||||
sockets.
|
||||
|
||||
WinDivert in packet-sniffing mode is similar to Winpcap. Unlike Winpcap,
|
||||
WinDivert fully supports capturing loopback traffic. Furthermore, WinDivert
|
||||
supports packet interception, which is not supported in Winpcap.
|
||||
|
||||
3. Architecture
|
||||
2. Architecture
|
||||
---------------
|
||||
|
||||
The basic architecture of WinDivert is as follows:
|
||||
@@ -68,58 +55,37 @@ The basic architecture of WinDivert is as follows:
|
||||
| |
|
||||
+---------------+
|
||||
|
||||
The WinDivert.sys driver is inserted below the Windows network stack. The
|
||||
following then happens
|
||||
The WinDivert.sys driver is installed below the Windows network stack. The
|
||||
following actions occur:
|
||||
|
||||
(1) a new packet enters the network stack and is intercepted by WinDivert.sys
|
||||
(2a) if the packet matches a PROGRAM-defined filter, it is diverted. The
|
||||
PROGRAM reads the packet with a call to the WinDivertRecv() function.
|
||||
(2b) if the packet does not match the filter, the packet is permitted to
|
||||
continue as normal.
|
||||
(3) PROGRAM either drops, modifies, or re-injects the packet. If the
|
||||
(modified) packet is re-injected, via a call to WinDivertSend(), it is
|
||||
inserted back into the Windows network stack.
|
||||
(1) A new packet enters the network stack and is intercepted by WinDivert.sys
|
||||
(2a) If the packet matches the PROGRAM-defined filter, it is diverted. The
|
||||
PROGRAM can then read the packet using a call to WinDivertRecv().
|
||||
(2b) If the packet does not match the filter, the packet continues as normal.
|
||||
(3) PROGRAM either drops, modifies, or re-injects the packet. PROGRAM can
|
||||
re-inject the (modified) using a call to WinDivertSend().
|
||||
|
||||
4. Building
|
||||
-----------
|
||||
|
||||
(1) In a WinDDK build environment, run the command:
|
||||
|
||||
wddk-build.bat
|
||||
|
||||
(2) [OPTIONAL Visual Studio 2012 support] In a VS2012 command prompt, run the
|
||||
command:
|
||||
|
||||
msvc-build.bat
|
||||
|
||||
(3) [OPTIONAL MinGW support] In Linux with MinGW a cross-compiler, run the
|
||||
command:
|
||||
|
||||
sh mingw-build.sh
|
||||
|
||||
For more detailed build instructions, see doc\windivert.html
|
||||
|
||||
5. License
|
||||
3. License
|
||||
----------
|
||||
|
||||
WinDivert is dual-licensed, and is available under the GNU Lesser General
|
||||
Public License (LGPL) Version 3 or the GNU General Public License (GPL)
|
||||
Version 2. See the LICENSE file for more information.
|
||||
WinDivert is dual-licensed under your choice of the GNU Lesser General Public
|
||||
License (LGPL) Version 3 or the GNU General Public License (GPL) Version 2.
|
||||
See the LICENSE file for more information.
|
||||
|
||||
6. About
|
||||
4. About
|
||||
--------
|
||||
|
||||
WinDivert was written by basil.
|
||||
|
||||
For further information, or bug reports, please contact
|
||||
For further information, or bug reports, please contact:
|
||||
|
||||
basil AT reqrypt DOT org
|
||||
basil@reqrypt.org
|
||||
|
||||
The homepage for WinDivert is
|
||||
The homepage for WinDivert is:
|
||||
|
||||
https://reqrypt.org/windivert.html
|
||||
|
||||
The source code for WinDivert is hosted by GitHub at
|
||||
The source code for WinDivert is hosted by GitHub at:
|
||||
|
||||
https://github.com/basil00/Divert
|
||||
|
||||
|
||||
Reference in New Issue
Block a user