Files
drover-go/README.md
T
root d1420593f6 Initial commit: README, LICENSE (MIT), .gitignore, go.mod
Drover-Go is a Discord proxy tool that routes traffic through SOCKS5
via kernel-level packet capture (WinDivert), surviving Discord
auto-updates and bypassing the limitations of in-app proxy settings.

This commit lays out base project files:
- README with architecture overview and acknowledgements
- LICENSE MIT
- .gitignore for Go + Wails + IDE artifacts
- go.mod with module git.okcu.io/root/drover-go on Go 1.23

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 00:06:51 +03:00

59 lines
2.7 KiB
Markdown

# Drover-Go
Discord proxy / DPI bypass tool. Routes Discord traffic through a SOCKS5 proxy via kernel-level packet capture (WinDivert), bypassing the limitations of in-app proxy settings and surviving Discord auto-updates.
## What it solves
Discord doesn't support proxies for voice/video traffic. Existing DLL-injection tools (`drover`, `discord-voice-proxy`) modify `Discord.exe`, which:
- triggers antivirus heuristics (unsigned DLL injecting into a popular app),
- breaks every time Discord auto-updates,
- doesn't proxy `Update.exe` itself, so the updater fails when Discord servers are blocked.
Drover-Go uses [WinDivert](https://www.reqrypt.org/windivert.html) — a Microsoft-signed kernel driver — to capture packets at the network stack level. No modification of Discord, works for any Discord variant (Stable/Canary/PTB/Vesktop), survives auto-updates, minimal AV detection.
## Status
Pre-alpha. See [implementation plan](docs/architecture.md) for details.
## How it works
```
Discord.exe (unmodified)
↓ TCP/UDP
WinDivert.sys (kernel filter)
↓ matched packets
drover.exe (Go)
├── TCP redirect to local SOCKS5 listener → SOCKS5 CONNECT → upstream proxy
└── UDP encapsulation (RFC 1928) → SOCKS5 UDP ASSOCIATE → upstream proxy
```
For UDP voice that's blocked even via SOCKS5 (DPI on the proxy's TCP control channel), drover-go injects a fake QUIC initial packet (à la `zapret-discord-youtube`) before forwarding — DPI sees "QUIC to Google" instead of Discord media.
## Requirements
- Windows 10 1903+ or Windows 11 (x64). ARM64 not supported by WinDivert.
- Administrator privileges for first run (driver install).
- Upstream SOCKS5 proxy with UDP ASSOCIATE support (e.g. `mihomo`, `sing-box`).
## Install
Download the latest release from [releases](https://git.okcu.io/root/drover-go/releases):
- `drover-vX.Y.Z-setup.exe` — installer with Start Menu shortcut, registers in Apps & Features for clean uninstall.
- `drover-vX.Y.Z-windows-amd64.zip` — portable, just unzip and run.
Verify SHA256 against `SHA256SUMS.txt` in the same release.
## License
[MIT](LICENSE) for our code. WinDivert (embedded) is [LGPL-3.0](third_party/windivert/LICENSE-LGPL).
## Acknowledgements
- [imgk/divert-go](https://github.com/imgk/divert-go) — Go bindings for WinDivert
- [imgk/shadow](https://github.com/imgk/shadow) — transparent proxy reference architecture
- [runetfreedom/force-proxy](https://github.com/runetfreedom/force-proxy) — SOCKS5 UDP ASSOCIATE flow reference
- [Flowseal/zapret-discord-youtube](https://github.com/Flowseal/zapret-discord-youtube) — fake QUIC payload
- [basil00/WinDivert](https://github.com/basil00/WinDivert) — kernel packet capture driver