Releases: larperru/DcDNS
Release list
## DcDNS v1.0.8
DcDNS v1.0.8
Note
Official Release Notes for DcDNS v1.0.8.
What's Changed
Bug Fixes
- Fixed: Uninstall button caused a crash on every click.
DiscordDetector.classify_target()was called during uninstall but was never defined, producing anAttributeErroron every attempt. The method is now fully implemented — it checks file existence, stub size, and injection state before any restore or strip operation begins. - Fixed: Canvas fingerprint spoofing produced invalid data URLs. The previous canvas noise implementation appended a hardcoded
===suffix directly to a base64 string, corrupting the output and potentially breaking Discord's renderer. Replaced with a correct pixel-level noise approach usinggetImageData/putImageData— noise is applied, the realtoDataURLis called, and the pixel is immediately restored. - Fixed: Request header stripping was silently disabled when referrer stripping was on. Two separate
onBeforeSendHeadershandlers were registered on the same session. Electron only keeps the last one — so the first handler (removingX-Client-Data,X-Goog-Visitor-Id,X-Firebase-Client) was silently overwritten whenever referrer stripping was enabled. Both are now merged into a single unified handler. - Fixed:
onBeforeRequesthandler not firing on newer Electron builds. The telemetry/crash URL blocking handler was registered without the required{ urls: ['*://*/*'] }filter argument. Newer Electron versions silently ignore handlers registered this way. Filter added. - Fixed: Lock double-release crash when backup dialog was cancelled.
install_confirm_backup()manually released_op_lockon an invalid state, then_run_install()'sfinallyblock released it a second time, raising aRuntimeError. The manual release is now wrapped in a safetry/except. - Fixed: Restart Discord button incorrectly enabled after Uninstall and failed operations.
finishLog()unconditionally re-enabled the Restart button regardless of which operation had just completed. The button is now only enabled after a successful Install. - Fixed: Going Back from the log page left Install/Uninstall buttons permanently disabled. After returning from the log page, the previously selected Discord flavor was not reselected and buttons stayed in a disabled state. The previous flavor is now saved, and
selectFlavor()is called automatically after the rescan completes. - Fixed:
load_logo()raisedNameErrorin PyInstaller-packaged builds.__file__is not available in frozen executables. Wrapped intry/exceptwith a fallback to_get_exe_dir(). - Fixed:
_build_payloadbake validation could false-trigger. The checkresult.count("var __conf = Object.assign") != 1would fail if Discord's ownindex.jsalready contained that string. Replaced with a correct check: verify the original marker is absent and the baked string is present.
Important
Always verify binary checksums before running client injections.
Note: Discord auto-updates overwrite the patched index.js. After any Discord update, re-run DcDNS and click Install to re-apply the patch with your saved settings.
Full Changelog: [v1.0.7...v1.0.8](v1.0.7...v1.0.8)
MD5
aa55e6c005fc32d2a985216971cae5fd
SHA-1
cf1c53f5528547c9bfbebaa170eb28dfd0f4e59f
SHA-256
17206fdd9979309a025ba2342bcc73c0efdbe27e81f34b7936485a58a644f420
## DcDNS v1.0.7
DcDNS v1.0.7
Note
Official Release Notes for DcDNS v1.0.7.
What's Changed
Reliability & Process Management
- Multi-Layer Process Termination: Replaced the single
taskkillapproach with a cascading shutdown engine — gracefulWM_CLOSE/WM_QUITmessages,TerminateProcessvia Win32 API,taskkill /F, and PowerShellStop-Processfallback. Discord is now reliably closed even when frozen or holding file locks. - Intelligent File Lock Handling: Install and uninstall operations now retry up to 5 times with 1-second backoff when
index.jsis locked by a lingering Discord process, eliminating race conditions during rapid cycles. - Stale Installation Detection: Discord builds older than 60 days are flagged in the UI with a warning, prompting users to update their client before patching.
Discovery & Detection
- Expanded Client Discovery: Added deep registry scanning across HKCU/HKLM (Uninstall keys, App Paths, Discord-specific keys) and running process enumeration via PowerShell, WMIC, and native
CreateToolhelp32Snapshot/QueryFullProcessImageNameWAPIs. DcDNS now finds Discord installations that were previously invisible. - Robust Path Resolution: Recursive filesystem scanning with deduplication across LocalAppData, Roaming, and Program Files ensures the most recently updated
index.jsis always selected.
Backup Integrity & Safety
- Backup SHA-256 Verification: Backup files now store companion
.sha256checksums. On uninstall, DcDNS verifies backup integrity before restore — if the backup was modified externally, the operation aborts to prevent corruption. - Safe Payload Stripping: Enhanced strip logic with corruption detection. If payload markers persist after strip, the operation fails gracefully rather than leaving a broken
index.js. - Backup-Aware Reinstall: When reinstalling over an existing DcDNS patch, the installer now attempts to use a verified clean backup as the base before falling back to live-file stripping.
Discord Rich Presence
- Redesigned RPC Presence: Updated Rich Presence with detailed status (
Privacy-hardened • DoH • Telemetry blocked), branded asset images (dcdns_logo,dcdns_shield), and direct-action buttons linking to the DcDNS website and GitHub repository.
Under the Hood
- Refactored DiscordRPC: Cleaner Win32 named-pipe handle lifecycle management, exponential backoff reconnection, and stable
SET_ACTIVITYheartbeat across Discord IPC. - Modularized Frontend: Safer JS event binding via
safeBind/safeElhelpers, isolated error handlers, and reduced inline complexity for improved UI stability. - Payload Marker Restoration: Fixed payload header/footer tag injection (
DcDNS Policy Framework vX.X.X) ensuring reliable version detection, upgrade prompts, and clean uninstall across all Discord builds.
Important
Always verify binary checksums before running client injections.
Note: Discord auto-updates overwrite the patched index.js. After any Discord update, re-run DcDNS and click Install to re-apply the patch with your saved settings.
Full Changelog: v1.0.6...v1.0.7

## DcDNS v1.0.6
DcDNS v1.0.6
Note
Official Release Notes for DcDNS v1.0.6.
What's Changed
Core Enhancements & Features
- Custom DoH Server Configuration: Configure primary and fallback DNS-over-HTTPS servers via UI with built-in quick presets for Mullvad, Cloudflare, Google, Quad9, and OpenDNS[cite: 4].
- Fingerprint Protection:
- Canvas Noise Injection: Subtle noise added to canvas reads to frustrate hardware identification[cite: 4].
- AudioContext Spoofing: Audio frequency data randomized to prevent audio fingerprinting[cite: 4].
- WebGL Vendor Masking: GPU model and vendor strings replaced with spoofed graphics descriptors (
DcDNS Graphics/DcDNS Renderer)[cite: 4].
- User-Agent Management: Automatically strip Electron and Discord identifiers or specify custom User-Agent strings[cite: 4].
- Network & Privacy Hardening:
- Strict enforcement of
TLS 1.2+[cite: 4]. - Stripping of
Refererheaders down to origin[cite: 4]. - Selective permission handlers blocking geolocation while preserving notifications and media permissions[cite: 4].
- Automatic blocking of Discord telemetry, science/track endpoints, remote auth gateways, and Sentry/Crash reporting endpoints[cite: 4].
- Strict enforcement of
Configuration & Customization Options
- Positionable Status Badge: Toggle and reposition the "Encrypted by DcDNS" overlay badge across four screen quadrants[cite: 4].
- Discord Rich Presence Integration: Optional status indicator displaying "Using DcDNS" while the app is active[cite: 4].
- Portable Mode Support: Auto-detection and loading of
dcdns_portable.jsonconfiguration files when placed in the executable directory[cite: 4].
Verification & Integrity
Important
Always verify binary checksums before running client injections.
- Binary SHA-256 Hash Display: Real-time checksum generation for target client installations[cite: 4].
- Backup & Restore System: Preserves original main process files (
index.js.dcdns.bak) prior to injection, ensuring full revert capability upon uninstall[cite: 4].

## DcDNS v1.0.5
DcDNS v1.0.5
DcDNS v1.0.5
What's New
Portable Mode & Custom Config Path: Introduced portable configuration support. DcDNS now checks for a local dcdns_portable.json config before falling back to Discord's standard userData directory. A "PORTABLE" status badge is displayed in the UI header when active.
Enhanced UI Resilience & Error Handling: Added comprehensive global error handlers and promise rejection wrappers across the WebUI to prevent silent interface freezes.
Scan & Verification Enhancements: Refactored the internal scanning pipeline. Added dynamic target age tracking to notify users if their Discord installation is out of date.
Expanded Pre-configured DoH Options: Streamlined DoH selection with updated preset buttons for popular privacy resolvers (Mullvad, Cloudflare, Google, Quad9, OpenDNS, Mullvad AdBlock).
UX & Animation Polish: Improved window transition animations, pulsing glow effects, and interactive UI component feedback for a cleaner overall look.
Privacy & Security
Added X-Client-Data stripping alongside X-Goog-Visitor-Id and X-Firebase-Client headers.
Reinforced TLS 1.2+ minimum version policy across all Electron session partitions (including persist:discord).
Updated DoH fallback configuration logic to prevent silent plaintext DNS fallbacks at the Chromium network level.
UX & Interface
Added a dynamic "PORTABLE" badge in the title bar when running from a portable directory.
Added stale build warnings (update-warning) indicating how many days ago the target Discord client was modified.
Added direct link buttons for the official website (https://dcdns.pages.dev/) and community Discord server in the Policy Agreement page.
Technical
Updated internal framework marker tags to APP_VERSION = "1.0.5".
Added helper function _get_exe_dir() for robust portable path discovery and local asset resolving (logo.png, logo.ico, logo.jpg).
Improved asynchronous message processing between Python (pywebview) and the EdgeChromium web renderer.
Refactored client scanning logic (_applyScanResults) to gracefully handle missing or partially updated Discord installations.
Executable Metadata: Compiled .exe binaries now include embedded application details, including version information, description, author/publisher metadata, and copyright details.
Note: Discord auto-updates overwrite the patched index.js. After any Discord update, re-run DcDNS and click Install to re-apply the patch with your saved settings.

## DcDNS v1.0.4
DcDNS v1.0.4
What's New
- Settings Panel: Added a built-in settings UI accessible from the header. Every privacy feature can now be toggled on or off without editing code.
- Custom DNS-over-HTTPS: You can now set your own primary and fallback DoH resolvers. Includes one-click presets for Mullvad, Cloudflare, Google, Quad9, OpenDNS, and Mullvad AdBlock.
- Discord Telemetry Blocking: New network-layer blocking for Discord analytics, event tracking, and third-party telemetry endpoints (/science, /track, /metrics, /analytics, Sentry, Mixpanel, Segment, Amplitude, click.discord.com). Requests are cancelled before they leave the client.
- Crash Report Blocking: Dedicated toggle to disable Breakpad crash reporting and block crash upload endpoints independently from general telemetry.
- Custom User-Agent: Option to override the User-Agent with a specific string, or keep the default auto-clean behaviour.
- Configurable Label Position: The "Encrypted by DcDNS" badge can now be placed in four corners (bottom-right, bottom-left, top-right, top-left). The badge now uses a fixed-position renderer overlay so it persists through fullscreen, screen sharing, and layout changes.
- Backup Handling: When reinstalling, DcDNS now asks whether to keep the existing backup or overwrite it with the current stock file.
- SHA-256 File Verification: The installer now displays the SHA-256 hash of the target index.js in the client selection view for integrity verification.
Privacy & Security
- All protections are now toggleable via persistent config stored in Discord's userData directory (
dcdns_conf.json). - Added
setPermissionCheckHandlerto harden geolocation blocking against already-granted permission states. - Expanded header stripping to include
X-Goog-Visitor-IdandX-Firebase-Client. - Added Chromium flags:
disable-domain-reliability,disable-featuresexpanded to cover ReportingObserver, NetworkTimeServiceQuerying, SafeBrowsingExtendedReporting, HyperlinkAuditing, and AutofillServerCommunication. - Removed automatic Discord invite popup on startup. The invite link is now available only as a manual button in the Policy screen.
UX & Interface
- Application window height increased to 560px to accommodate the new settings panel.
- Settings are saved to localStorage in the UI and written to a JSON config file that the injected payload reads at Discord startup.
- Cleaned up the title bar label script — removed the Chrome version string from the badge text for a cleaner look.
Technical
- Payload is now dynamically rebuilt at install time with user settings baked in as JavaScript defaults.
- Added
hashlib.sha256file hashing for integrity display. - Refactored
Apiclass to support two-step install flow (backup prompt modal viainstall_confirm_backup). - Policy text updated to reflect MIT licensing and the new toggleable architecture.
Note: Discord auto-updates overwrite the patched index.js. After any Discord update, re-run DcDNS and click Install to re-apply the patch with your saved settings.

# DcDNS v1.0.3
DcDNS v1.0.3
What's New
- Dual Mullvad DNS Resolver: Added a fallback DoH resolver (
adblock.dns.mullvad.net) alongside the primary (dns.mullvad.net). If the primary resolver is unavailable, Discord automatically switches to the fallback without silently downgrading to plain DNS. Both resolvers operate in strict DoH mode. - Updated Chromium DNS Feature Flag: The
enable-featuresflag now passes both DoH endpoints directly to the Electron engine.
Privacy & Security
- Updated the Policy Framework text to clearly list both the Primary and Fallback Mullvad resolvers.
- Strengthened the DNS policy configuration to support multiple secure servers via
app.configureHostResolver().
UX & Interface
- Replaced the automatic browser popup on startup with a manual "Join Our Discord" button in the Policy Agreement screen. The application now launches cleanly without opening external links automatically.
- Removed
open_startup_links()from the startup flow.
Technical
DCDNS_DOH_SERVERSarray updated to include both Mullvad endpoints.POLICY_TEXTrevised for clarity on DNS behavior and backup procedures.
Note: Discord auto-updates overwrite the patched index.js. After any Discord update, re-run DcDNS and click Install to re-apply the patch.

# DcDNS v1.0.2
DcDNS v1.0.2
DNS payload fix — Mullvad DoH now properly enforced, new privacy hardening.
What's New
- Fixed DNS payload to exclusively use Mullvad DoH (
https://dns.mullvad.net/dns-query) with no fallback to other resolvers. - Added Chromium-level
DnsOverHttpsfeature flag (enable-features=DnsOverHttps:Fallback/false/Templates/...) injected before the appreadyevent, ensuring DoH is enforced from the very first DNS lookup. - Removed invalid
enableBuiltInResolveroption fromconfigureHostResolvercall (was silently ignored, could cause errors on some Electron versions). - Removed Cloudflare and Quad9 as fallback DoH resolvers — DNS now fails hard instead of silently downgrading to a different provider or plain DNS.
- Removed custom path input and custom path selection.
- Removed Linux and macOS support — Windows only.
Privacy Hardening
- User-Agent cleaning — Electron and Discord-specific strings (
Electron/x.x.x,DiscordApp/x.x.x) are stripped from the User-Agent header so web servers cannot fingerprint the exact Electron version in use. - TLS hardening — minimum TLS version enforced at 1.2 via
setSSLConfig, blocking connections to servers that only support outdated and insecure TLS. X-Client-Dataheader removal — Google's Chromium identification header is stripped from every outgoing request viawebRequest.onBeforeSendHeaders.- Geolocation blocked — all geolocation permission requests are denied at the Electron layer before Discord can act on them.
- Spellcheck disabled — Chromium's built-in spellchecker (which can send typed text to a remote API) is disabled for Discord's session.
- Host resolver cache cleared — DNS cache is flushed on startup so no stale plain-DNS entries persist after the DoH policy is applied.
Improvements & Fixes
configureHostResolvernow setsenableAdditionalDnsQueryTypes: false, preventing HTTPS/SVCB record queries from leaking over insecure channels.- DNS server list reduced to Mullvad only — previously the multi-server list allowed Chromium to silently fall through to Cloudflare or Quad9 if Mullvad was slow to respond.
- Fixed many bugs that caused the UI to crash
Installation
Windows
- Download
DcDNS.exebelow. - Run it as Administrator.
- Select your Discord client and click Install.
- Restart Discord when prompted.
Requirements
- Windows 11 or later (with WebView2)
- Discord, Discord PTB, Discord Canary, or Discord Development installed
Uninstalling
Open DcDNS, select your client, and click Uninstall. The original Discord files will be restored from backup or cleaned automatically.
Notes
- On Windows, run as Administrator if you encounter permission errors during injection.
- After updating Discord, run Install again — Discord updates overwrite the patched
index.js.
!!!!! READ FILE "virustotalresult.txt" !!!!!
https://github.com/larperru/DcDNS/blob/main/virustotalresult.txt
# DcDNS v1.0.1
DcDNS v1.0.1
Cross-platform support, improved privacy switches, and UI updates.
What's New
- Added Linux (System, Flatpak, Snap) and macOS support.
- Added detection for Discord Development client alongside Stable, PTB, and Canary.
- Added Mullvad DoH (
https://doh.mullvad.net/dns-query) DNS resolver. - Added WebRTC IP leak protection (
disable_non_proxied_udp). - Added switches to disable geolocation, spell checking, and telemetry.
- Added automatic update checking via GitHub API.
- Redesigned UI with live console logs and status indicators.
Improvements & Fixes
- Added automatic backup creation (
index.js.dcdns.bak) and fallback code stripping for clean uninstallation. - Automatically closes active Discord processes before patching to prevent file lock errors.
- Fixed thread locking issues and UI freezes during patch operations.
- Fixed permission handling when writing to system installation directories.
Installation
Windows
- Download
DcDNS.exebelow. - Run it as Administrator.
- Select your Discord client and click Install.
- Restart Discord when prompted.
Linux / macOS
- Download the release binary for your platform.
- Run the application (use write permissions or elevated privileges if patching system folders like
/opt). - Select your Discord client and click Install.
Requirements
- Windows 10 or later (with WebView2), Linux (with WebKitGTK), or macOS 10.15+
- Discord, Discord PTB, Discord Canary, or Discord Development installed
Uninstalling
Open DcDNS, select your client, and click Uninstall. The original Discord files will be restored from backup or cleaned automatically.
Notes
- On Windows, run as Administrator if you encounter permission errors during injection.
- On Linux, system-wide installations (like
/opt/discord) require appropriate write permissions.
