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>
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
|||||||
|
# Build output
|
||||||
|
/bin/
|
||||||
|
/dist/
|
||||||
|
/build/
|
||||||
|
*.exe
|
||||||
|
*.dll.o
|
||||||
|
*.test
|
||||||
|
*.out
|
||||||
|
|
||||||
|
# Wails
|
||||||
|
/internal/frontend/node_modules/
|
||||||
|
/internal/frontend/dist/
|
||||||
|
/internal/frontend/wailsjs/
|
||||||
|
.wails/
|
||||||
|
|
||||||
|
# IDE
|
||||||
|
/.idea/
|
||||||
|
/.vscode/
|
||||||
|
*.iml
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
|
||||||
|
# OS
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
desktop.ini
|
||||||
|
|
||||||
|
# Inno Setup compiled installers (only release artifacts go to the registry)
|
||||||
|
/installer/Output/
|
||||||
|
*-setup.exe
|
||||||
|
|
||||||
|
# Logs / dumps
|
||||||
|
*.log
|
||||||
|
crash.txt
|
||||||
|
|
||||||
|
# Local config (must not contain secrets, but stay safe)
|
||||||
|
/config.local.toml
|
||||||
|
|
||||||
|
# Coverage
|
||||||
|
coverage.out
|
||||||
|
coverage.txt
|
||||||
|
coverage.html
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2026 root@okcu.io
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
# 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
|
||||||
Reference in New Issue
Block a user