A Windows desktop application for managing DNS servers across your network adapters. Built with a high-performance C++20 core and a modern C# WPF interface.
| Component | Description |
|---|---|
| DLL | dns_core.dll |
| API | WinAPI with netsh fallback for DNS management |
| Interop | C API for C# via P/Invoke; all data as JSON |
| Logs | C:\ProgramData\DnsChanger\dns_core.log |
| Component | Description |
|---|---|
| Executable | DNSChanger.exe |
| Stack | WPF, MVVM |
| Theme | Dark by default; modern typography and layout |
| Extras | System tray icon, background mode |
- Network discovery — Detects adapters (Wi‑Fi, Ethernet, VPN, virtual)
- DNS catalog — 30+ providers (Google, Cloudflare, Quad9, OpenDNS, AdGuard, etc.)
- Custom DNS — Add and manage your own servers
- Speed test — Real DNS queries with latency, packet loss, and stability
- One-click apply — Set DNS per adapter
- Restore default — Revert to DHCP DNS
- System tray — Quick actions and background operation
| Layer | Requirements |
|---|---|
| C++ DLL | CMake 3.20+, Visual Studio 2022 (or MSVC), Windows SDK 10.0+ |
| WPF app | .NET 8 SDK, Visual Studio 2022 or VS Code with C# |
cd cpp_core
mkdir build -ErrorAction SilentlyContinue
cd build
cmake .. -G "Visual Studio 17 2022" -A x64
cmake --build . --config ReleaseOutput: build\bin\Release\dns_core.dll (or build\Release\dns_core.dll).
From cpp_core\build:
copy bin\Release\dns_core.dll ..\..\windows_gui\
# or, if different layout:
copy Release\dns_core.dll ..\..\windows_gui\cd ..\..\windows_gui
dotnet restore
dotnet build --configuration Release
dotnet run --configuration ReleaseFrom the repository root:
.\build.ps1This builds the C++ DLL, copies it to windows_gui, and builds the WPF application.
- Open Releases.
- Download the latest DNSChanger-Setup-x.x.x.exe.
- Run the installer (UAC may prompt).
- Launch DNS Changer from the Start menu or desktop. Use Run as administrator when changing DNS.