# WinDivert v2.2.2

Embedded copy of [WinDivert](https://github.com/basil00/WinDivert) by basil00 (Reqrypt Ltd).

WinDivert is a kernel-mode packet capture/divert/inject driver for Windows. Microsoft-signed (loadable on stock Windows 10/11 without test-signing mode). drover-go uses it for transparent TCP/UDP redirection at the network layer instead of injecting into Discord.exe.

## Files

| File | sha256 | Purpose |
|------|--------|---------|
| `WinDivert.dll` | `c1e060ee19444a259b2162f8af0f3fe8c4428a1c6f694dce20de194ac8d7d9a2` | x64 user-mode loader; loaded by drover.exe at runtime |
| `WinDivert64.sys` | `8da085332782708d8767bcace5327a6ec7283c17cfb85e40b03cd2323a90ddc2` | x64 kernel driver; auto-installed as `WinDivert` service on first `WinDivertOpen()` |
| `WinDivert.lib` | `c5678d544eb0121a189d1139f54e0c67854dc64d1c897111a27ef2e52cb38eb3` | Import library for cgo binding |
| `windivert.h` | `5017a1768c1592fd664c0c2d3d2d30f81fad4ab98d322b1914c6f0a33fcacdf9` | C header for cgo binding |
| `LICENSE-LGPL` | — | Upstream license text (LGPLv3 / GPLv2 dual-licensed) |

## Source

Downloaded from upstream release: <https://github.com/basil00/WinDivert/releases/tag/v2.2.2> (file `WinDivert-2.2.2-A.zip`, sha256 `63cb41763bb4b20f600b6de04e991a9c2be73279e317d4d82f237b150c5f3f15`).

Only the x64 build is included — drover-go does not target x86. Other artifacts (sample exes, x86 binaries, docs) are not embedded.

## License

LGPLv3 / GPLv2 dual-licensed by basil00. drover-go embeds these binaries as-is and does not modify them. See `LICENSE-LGPL` for the full text. Distributing drover-go must preserve this notice and provide on-request access to the WinDivert source (we ship a reference to the upstream repo, that is sufficient under LGPLv3 §6).

## Updating

To bump the version:

1. Download `WinDivert-X.Y.Z-A.zip` from the upstream releases page.
2. Replace `WinDivert.dll`, `WinDivert64.sys`, `WinDivert.lib`, `windivert.h`, `LICENSE-LGPL` from the new archive.
3. Update sha256 hashes in this README.
4. Update version in the section title.
5. Run drover-go's tests (`go test ./internal/divert/...`) — the binding may need updates if the API changed.
