basil00
bf19fdf2f9
- Add an ICMPv6 test packet.
...
- Fix missing byte-swaps for ICMPv6 fields.
- Todo: 1 test-case fails.
2014-11-17 19:25:17 +08:00
basil00
ecd9ae59d3
- Re-implement WinDivertHelperParseIPv6Address(). Previous version was just
...
too bug-prone, so re-try from scratch. New version works for several tests.
- Fix broken WinDivertAToX().
- New test case: IPv6 TCP SYN.
2014-11-16 13:31:07 +08:00
basil00
5eaf312730
- Add new WinDivert testing framework.
2014-11-15 15:11:28 +08:00
basil00
48075e2e5f
- Fix broken implementation of WinDivertHelperParseIPv6Address().
...
- Fix IPv6 address word/byte ordering between DLL and SYS.
2014-11-15 15:06:16 +08:00
basil00
72d83fcb07
- Fix incorrect IPv6 pseudo header definition in the driver.
2014-11-15 13:51:16 +08:00
basil00
8d98da751c
- WinDivert driver now skips IPv6 extension headers when filtering packets.
...
- windivert_filter() now uses Ndis(Advance/Retreat)NetBufferDataStart() to
find packet headers.
- NOTE: This new code is not yet very well tested.
2014-11-15 00:57:17 +08:00
basil00
0a70d4120d
- Remove duplicate code from last commit.
2014-11-13 18:52:16 +08:00
basil00
4edd82f55f
- Ignore the checksum info for loopback packets. This info seems to be
...
unreliable for whatever reason, so better to ignore until a better solution
is found.
2014-11-13 18:47:46 +08:00
basil00
7235b687b3
- WinDivertHelperParsePacket() now skips IPv6 extension headers.
2014-11-10 19:16:33 +08:00
basil00
7952724127
- Driver now calculates checksums for IPv6 packets (fix issue #28 ).
...
- Bump version to 1.1.7
2014-11-09 12:44:21 +08:00
basil00
d46a902c90
- Fix issue #29 found by MarlosChida: the IPv6 pseudo-header definition was
...
incorrect leading to invalid checksums.
2014-11-08 15:15:54 +08:00
basil00
bbf06c9503
- Fix missing '\'.
2014-09-16 00:04:07 +08:00
basil00
d43aa57014
- Reduce number of work items to 2; 4 was overkill.
v1.1.6
2014-09-15 23:48:32 +08:00
basil00
50aecbda75
- Towards version 1.1.6
2014-09-05 12:36:55 +08:00
basil00
6b3fd714c0
- Fix silly bug in last commit, remove the .exe name from the path.
2014-09-05 12:27:25 +08:00
basil00
7bd52aed76
- Use GetModuleFileName instead of GetCurrentDirectory as discussed in issue #24 .
2014-08-15 18:15:25 +08:00
basil00
5e706931f0
- New version 1.1.5
v1.1.5
2014-05-25 11:54:13 +08:00
basil00
9a13606030
- Insert WinDivert as the highest weighted sublayer.
2014-05-19 19:18:10 +08:00
basil00
98c4a51fad
- Fix issue #18 that causes a BSOD when a NULL pointer is passed as an
...
address parameter to either WinDivertRecv or WinDivertSend.
- Use better NT_STATUS codes for some errors.
- Bump the version number to WinDivert 1.1.4
v1.1.4
2014-04-02 19:40:54 +08:00
basil00
874d147b9b
- Update copyright year.
...
- Use exact version number in driver binary.
v1.1.3
2014-03-24 18:15:05 +08:00
basil00
d5d8e163e3
- Towards version 1.1.3
2014-03-24 18:07:00 +08:00
basil00
4b708f0c16
- Wrap the sublayer/filter/callout setup in transactions. This appears to
...
make it less likely to break networking if something goes wrong. It may
also solve issue #15 .
- Fix bug in last commit.
2014-03-23 22:33:46 +08:00
basil00
7f0e697092
- Fix bug (see issue #14 ) where some outbound TCP packets were never handled
...
by the classify function and silently dropped. This can degrade outbound
speed significantly, as it forces the Windows TCP/IP stack to re-send the
missing data. Thanks to GhalemB who found the bug & fix.
2014-03-23 11:18:05 +08:00
basil00
33f6bec1e5
- Refactor driver unload functions.
...
- Packet direction fix for netfilter example.
- Bump version to 1.1.2-rc.
v1.1.2-rc
2013-12-25 11:28:01 +08:00
basil00
57934712c6
- Refactor the WFP interface:
...
* WinDivert sublayers are created and inserted when the driver is loaded.
* All WinDivert callouts are installed at the same sublayer.
- Clean-up the implementation of priorities.
- Re-introduce deep copying for SNIFF mode. This avoids referencing the
sniffed packets.
- Fix-up the netfilter example:
* Don't send RSTs to RST/FINs, this can start a RST war.
* Don't inject ICMP outbound - this may not be a problem despite 1233 errors.
2013-12-23 11:03:02 +08:00
basil00
4f81c315d6
- Use FwpsAllocateCloneNetBufferList0 for the packet queue, as opposed to
...
copying the data.
2013-12-18 16:28:58 +08:00
basil00
76459ac3fe
- Use WDF work items instead of threads. Also use multiple work items so
...
that read_service() can be run in parallel.
2013-12-18 09:54:01 +08:00
basil00
6ac77a644b
- Fix some bugs introduced by recent commits.
2013-12-13 17:09:37 +08:00
basil00
08fef993ba
- Update documentation to reflect the new installation instructions.
2013-12-12 22:55:19 +08:00
basil00
f21217fdb1
- Slim down the MINGW version of WinDivert.dll (>60KB -> ~15KB)
...
- Remove some WinDivert.dll dependencies.
2013-12-12 17:45:48 +08:00
basil00
8c2bb01565
- Several changes to simplify the WinDivert Driver installation:
...
1) Remove the dependency on the WdfCoInstaller*.dll file. This file appears
to be unnecessary for Windows 7 and up, and for patched Vista+2008.
2) Remove the WinDivert.inf file (only used by the co-installer).
3) 32/64-bit versions of the driver are now explicitly named, meaning that
the two can co-exist in the same directory.
4) The 32-bit WinDivert.dll can now automatically load the 64-bit driver on
64-bit Windows. This means it is possible to write 32-bit WinDivert
applications that automatically work on 64-bit windows.
5) WinDivert.dll now schedules the WinDivert service to be deleted right
away. This should fix some cases where the service is never deleted,
even during reboot.
6) Updated build scripts to reflect the changes.
2013-12-10 22:48:11 +08:00
basil00
e27e13cdf2
- Fix build type glitch for x86.
v1.1.1
2013-12-03 11:57:37 +08:00
basil00
3f7e289c95
- Update changelog for version 1.1.1
2013-12-03 08:53:35 +08:00
basil00
7f3bbe94ee
- Copy most of the packet after error checking.
2013-12-03 08:43:05 +08:00
basil00
8c48b0f1dd
- Fix issue #8 by replacing incorrect function call NdisFreeNetBufferPool()
...
with NdisAllocateNetBufferListPool().
- Removed some dead code.
- Cleanup handles if DriverEntry() fails.
- Bump version.
2013-12-03 08:11:19 +08:00
basil00
8878d79300
- Fix Issue #7
2013-11-30 12:56:36 +08:00
basil00
8a4c62d981
- Verify that injected packets have the correct length (after copying).
2013-11-30 12:37:08 +08:00
basil00
f9f11c0e23
- Documentation tweaks and improvements.
2013-11-27 23:49:00 +08:00
basil00
03fbfa74d6
- Increase the maximum filter length to 128.
v1.1.0-rc
2013-11-02 11:43:21 +08:00
basil00
4b7e6a08bb
- Simplify the WinDivert callout code: no longer handles multiple
...
NET_BUFFERs in a single NET_BUFFER_LIST. Apparently this should only
ever occur in the FORWARD layer in certain circumstances, and even then each
fragment should be indicated individually anyway. This change removes a lot
of needless complexity.
2013-10-07 22:57:16 +08:00
basil00
dce8ebd459
- If driver installation fails, then also attempt to delete the service. This
...
should fix some confusing errors caused by a zombie WinDivert service.
2013-10-06 15:15:59 +08:00
basil00
8ecfc1e52b
- Add documentation for WinDivertRecvEx() and WinDivertSendEx().
2013-10-05 13:03:33 +08:00
basil00
3eed5aca39
- Writes (via WinDivertSend()) are now copied before being injected.
...
This ensures that the user program does not clobber the buffer before the
injection is complete.
- Update the changelog.
2013-09-28 23:25:51 +08:00
basil00
63b72288d5
- Fix function names in README.
2013-09-24 14:29:40 +08:00
basil00
fd9d8eb0c3
- Documentation tweaks, including comments in (1275) errors.
2013-09-24 14:15:28 +08:00
basil00
a59c70ae0a
- WinDivert now queues copies of packets, rather than simply referencing
...
the original packet. The former turns out to be problematic, since there is
no guarantee that something else (e.g. another callout driver)
modifies/overwrites the packet data whilst it is in the queue. Copying the
data is not ideal either, but seems to be the only way to ensure the packet
is not changed later.
2013-09-21 10:43:42 +08:00
basil00
0b15b26d45
- (Missing from last commit) remove the PASSTHRU flag from windivert_device.h
2013-09-10 17:58:08 +08:00
basil00
835d604d4e
- Remove the PASSTHRU flag; The same result can be achieved with a "false"
...
filter.
2013-09-10 17:52:43 +08:00
basil00
bbd3b0e9e9
- Update documentation to version 1.1 API
2013-08-16 22:50:00 +08:00
basil00
09b7cd45a2
- Add support for the legacy WinDivert API.
2013-07-26 18:01:49 +08:00