Skip to content

Commit

Permalink
initial
Browse files Browse the repository at this point in the history
  • Loading branch information
jagt committed Oct 1, 2013
0 parents commit 06a2059
Show file tree
Hide file tree
Showing 220 changed files with 7,664 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
bin
build
*.swp
20 changes: 20 additions & 0 deletions external/WinDivert-1.0.5-MSVC/CHANGELOG
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
WinDivert 1.0.0
- First release of WinDivert 1.0
WinDivert 1.0.1
- Fixed stack overflow bug in 32bit versions of the driver.
WinDivert 1.0.2
- WinDivert now requires Administrator privileges in order to access
(as opposed to just install) the WinDivert device.
WinDivert 1.0.3
- Fix bug(s) relating to the parsing of IPv6 addresses.
- DivertOpen() now returns more meaningful error codes on failure.
- Two new helper API functions: DivertHelperParseIPvXAddress(..), X=4,6.
- Renamed DivertHelperParse(..) to DivertHelperParsePacket(..).
WinDivert 1.0.4
- Same as WinDivert 1.0.3 except:
* Released with signed drivers.
* MinGW compiled gcc-4.6
* Minor documentation changes.
WinDivert 1.0.5
- Fix the DIVERT_NETWORK_FORWARD_LAYER implementation.
- Upgrade Visual Studio support to 2012.
787 changes: 787 additions & 0 deletions external/WinDivert-1.0.5-MSVC/LICENSE

Large diffs are not rendered by default.

139 changes: 139 additions & 0 deletions external/WinDivert-1.0.5-MSVC/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
WinDivert 1.0: Windows Packet Divert
====================================

1. Introduction
---------------

Windows Packet Divert (WinDivert) is a user-mode packet capture-and-divert
package for Windows Vista, Windows 2008, and Windows 7.

With WinDivert developers can write user-mode programs that capture and
modify or drop 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.. If you
need to intercept and modify packets, then WinDivert is for you.

The features of WinDivert include:
- packet interception, sniffing, or dropping modes
- support for loopback (localhost) traffic
- full IPv6 support
- network layer
- simple and powerful API
- high-level filtering language
- filter priorities
- freely available under the terms of the GNU Lesser General Public
License (LGPL)

For more information about WinDivert, see doc/divert.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
---------------

The basic architecture of WinDivert is as follows:

+-----------------+
| |
+------->| PROGRAM |--------+
| | (WinDivert.dll) | |
| +-----------------+ |
| | (3) re-injected
| (2a) matching packet | packet
| |
| |
[user mode] | |
....................|...................................|...................
[kernel mode] | |
| |
| |
+---------------+ +----------------->
(1) packet | | (2b) non-matching packet
------------>| WinDivert.sys |-------------------------------------------->
| |
+---------------+

The WinDivert.sys driver is inserted below the Windows network stack. The
following then happens

(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 DivertRecv() 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 DivertSend(), it is
inserted back into the Windows network stack.

4. Building
-----------

(1) In a WinDDK build environment, run the command:

wddk-build.bat

(2) [OPTIONAL Visual Studio 2010 support] In a VS2010 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\divert.html

5. License
----------

This package is distributed under the GNU Lesser General Public License
(LGPL) Version 3. See LICENSE for more information.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>

6. About
--------

WinDivert was written by basil.

For further information, or bug reports, please contact

basil AT reqrypt DOT org

The homepage for WinDivert is

http://reqrypt.org/windivert.html

The source code for WinDivert is hosted by GitHub at

https://github.com/basil00/Divert

1 change: 1 addition & 0 deletions external/WinDivert-1.0.5-MSVC/VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0.5
Binary file not shown.
Binary file added external/WinDivert-1.0.5-MSVC/amd64/WinDivert.dll
Binary file not shown.
9 changes: 9 additions & 0 deletions external/WinDivert-1.0.5-MSVC/amd64/WinDivert.inf
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[Version]
Signature="$WINDOWS NT$"

[divert.NT.Wdf]
KmdfService = divert, divert_WdfSection

[divert_WdfSection]
KmdfLibraryVersion = 1.9

Binary file added external/WinDivert-1.0.5-MSVC/amd64/WinDivert.lib
Binary file not shown.
Binary file not shown.
Binary file added external/WinDivert-1.0.5-MSVC/amd64/netdump.exe
Binary file not shown.
Binary file added external/WinDivert-1.0.5-MSVC/amd64/netfilter.exe
Binary file not shown.
Binary file added external/WinDivert-1.0.5-MSVC/amd64/passthru.exe
Binary file not shown.
Binary file not shown.
Loading

0 comments on commit 06a2059

Please sign in to comment.