Skip to content
This repository was archived by the owner on Aug 19, 2026. It is now read-only.

Releases: larperru/DcDNS

## DcDNS v1.0.8

Choose a tag to compare

@larperru larperru released this 16 Aug 18:29
4cc5dce

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 an AttributeError on 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 using getImageData/putImageData — noise is applied, the real toDataURL is called, and the pixel is immediately restored.
  • Fixed: Request header stripping was silently disabled when referrer stripping was on. Two separate onBeforeSendHeaders handlers were registered on the same session. Electron only keeps the last one — so the first handler (removing X-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: onBeforeRequest handler 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_lock on an invalid state, then _run_install()'s finally block released it a second time, raising a RuntimeError. The manual release is now wrapped in a safe try/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() raised NameError in PyInstaller-packaged builds. __file__ is not available in frozen executables. Wrapped in try/except with a fallback to _get_exe_dir().
  • Fixed: _build_payload bake validation could false-trigger. The check result.count("var __conf = Object.assign") != 1 would fail if Discord's own index.js already 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)

image

MD5
aa55e6c005fc32d2a985216971cae5fd
SHA-1
cf1c53f5528547c9bfbebaa170eb28dfd0f4e59f
SHA-256
17206fdd9979309a025ba2342bcc73c0efdbe27e81f34b7936485a58a644f420

## DcDNS v1.0.7

Choose a tag to compare

@larperru larperru released this 15 Aug 17:50
105142e

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 taskkill approach with a cascading shutdown engine — graceful WM_CLOSE/WM_QUIT messages, TerminateProcess via Win32 API, taskkill /F, and PowerShell Stop-Process fallback. 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.js is 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 / QueryFullProcessImageNameW APIs. 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.js is always selected.

Backup Integrity & Safety

  • Backup SHA-256 Verification: Backup files now store companion .sha256 checksums. 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_ACTIVITY heartbeat across Discord IPC.
  • Modularized Frontend: Safer JS event binding via safeBind/safeEl helpers, 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

image

## DcDNS v1.0.6

Choose a tag to compare

@larperru larperru released this 15 Aug 14:52
7a4b510

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 Referer headers 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].

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.json configuration 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].
image

## DcDNS v1.0.5

Choose a tag to compare

@larperru larperru released this 14 Aug 23:41
ae103ef

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.

image

## DcDNS v1.0.4

Choose a tag to compare

@larperru larperru released this 14 Aug 00:04
454300a

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 setPermissionCheckHandler to harden geolocation blocking against already-granted permission states.
  • Expanded header stripping to include X-Goog-Visitor-Id and X-Firebase-Client.
  • Added Chromium flags: disable-domain-reliability, disable-features expanded 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.sha256 file hashing for integrity display.
  • Refactored Api class to support two-step install flow (backup prompt modal via install_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.

image

# DcDNS v1.0.3

Choose a tag to compare

@larperru larperru released this 13 Aug 16:36
658278d

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-features flag 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_SERVERS array updated to include both Mullvad endpoints.
  • POLICY_TEXT revised 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.

image3

# DcDNS v1.0.2

Choose a tag to compare

@larperru larperru released this 13 Aug 13:56
f554dfc

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 DnsOverHttps feature flag (enable-features=DnsOverHttps:Fallback/false/Templates/...) injected before the app ready event, ensuring DoH is enforced from the very first DNS lookup.
  • Removed invalid enableBuiltInResolver option from configureHostResolver call (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-Data header removal — Google's Chromium identification header is stripped from every outgoing request via webRequest.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

  • configureHostResolver now sets enableAdditionalDnsQueryTypes: 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

  1. Download DcDNS.exe below.
  2. Run it as Administrator.
  3. Select your Discord client and click Install.
  4. 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.
image

!!!!! READ FILE "virustotalresult.txt" !!!!!

https://github.com/larperru/DcDNS/blob/main/virustotalresult.txt

# DcDNS v1.0.1

Choose a tag to compare

@larperru larperru released this 13 Aug 02:01
133db87

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

  1. Download DcDNS.exe below.
  2. Run it as Administrator.
  3. Select your Discord client and click Install.
  4. Restart Discord when prompted.

Linux / macOS

  1. Download the release binary for your platform.
  2. Run the application (use write permissions or elevated privileges if patching system folders like /opt).
  3. 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.
image2