How sridhar08-glitch/sheild-dns works
ShieldDNS is a three-part ad- and tracker-blocking product: a browser extension, a Windows local DNS server, and an Android DNS filter carried by a local VPN. The main workflows intercept browser requests or device DNS, apply blocklist and behavioral decisions, then block or resolve requests; the apps also expose controls and activity views. Windows orchestration and Android VPN/engine are shown from sampled source. Other Android capabilities and extension behavior are documented in the README; unsampled implementation details and their internal links are not inferred.
Main entry points: DnsResolutionEngine.kt DNS decision engine · DnsHostService.cs DNS host · DnsResolutionEngine.cs Resolution engine · VpnController.kt VPN controller
Components 26
Browser extension
- Request blocker
ShieldDNS-Extension/background.js - Page filter
ShieldDNS-Extension/content.js - Extension controls
ShieldDNS-Extension/popup.js
Windows DNS app
- Desktop controls
ShieldDNS-Windows/ShieldDNS/Views/MainWindow.xaml.cs - DNS host
ShieldDNS-Windows/ShieldDNS/Services/DnsHostService.cs - DNS server
ShieldDNS-Windows/ShieldDNS/Core/DnsServer.cs - Resolution engine
ShieldDNS-Windows/ShieldDNS/Core/DnsResolutionEngine.cs - Domain matcher
ShieldDNS-Windows/ShieldDNS/Core/DomainMatcher.cs - Blocklist loader
ShieldDNS-Windows/ShieldDNS/Services/BlocklistService.cs - Upstream resolver
ShieldDNS-Windows/ShieldDNS/Core/UpstreamResolver.cs - DNS redirection
ShieldDNS-Windows/ShieldDNS/Services/NetworkService.cs - DNS cache
ShieldDNS-Windows/ShieldDNS/Core/DnsCache.cs
Android VPN app
- App controls
ShieldDNS/app/src/main/java/com/sridhar/shielddns/MainActivity.kt - VPN controller
ShieldDNS/app/src/main/java/com/sridhar/shielddns/domain/usecase/VpnController.kt - VPN packet service
ShieldDNS/app/src/main/java/com/sridhar/shielddns/service/ShieldVpnService.kt - DNS decision engine
ShieldDNS/app/src/main/java/com/sridhar/shielddns/core/dns/DnsResolutionEngine.kt - Domain matcher
ShieldDNS/app/src/main/java/com/sridhar/shielddns/core/matcher/DomainMatcher.kt - Blocklist repository
ShieldDNS/app/src/main/java/com/sridhar/shielddns/data/repository/BlocklistRepository.kt - Reputation scoring
ShieldDNS/app/src/main/java/com/sridhar/shielddns/core/reputation/ReputationScorer.kt - Redirect detection
ShieldDNS/app/src/main/java/com/sridhar/shielddns/core/redirectchain/ChainDetector.kt - Encrypted upstream
ShieldDNS/app/src/main/java/com/sridhar/shielddns/core/dns/UpstreamResolver.kt - Query activity buffer
ShieldDNS/app/src/main/java/com/sridhar/shielddns/core/buffer/RollingDnsBuffer.kt - Settings repository
ShieldDNS/app/src/main/java/com/sridhar/shielddns/data/repository/SettingsRepository.kt
Other components
- Browser
- Windows user
- Android user
Connections 27
- Browser → Request blocker: sends requests
README.md - Request blocker → Browser: blocks requests
README.md - Page filter → Browser: hides elements
README.md - Extension controls → Request blocker: controls filtering
- Windows user → Desktop controls: starts shield
README.md - Desktop controls → DNS host: controls service
- DNS host → DNS server: starts server
ShieldDNS-Windows/ShieldDNS/Services/DnsHostService.cs - DNS host → DNS redirection: redirects DNS
ShieldDNS-Windows/ShieldDNS/Services/DnsHostService.cs - DNS host → Blocklist loader: loads lists
ShieldDNS-Windows/ShieldDNS/Services/DnsHostService.cs - DNS server → Resolution engine: dispatches queries
ShieldDNS-Windows/ShieldDNS/Services/DnsHostService.cs - Resolution engine → DNS cache: checks cache
ShieldDNS-Windows/ShieldDNS/Core/DnsResolutionEngine.cs - Resolution engine → Domain matcher: checks domains
ShieldDNS-Windows/ShieldDNS/Core/DnsResolutionEngine.cs - Blocklist loader → Domain matcher: loads domains
ShieldDNS-Windows/ShieldDNS/Services/BlocklistService.cs - Resolution engine → Upstream resolver: resolves allowed
ShieldDNS-Windows/ShieldDNS/Core/DnsResolutionEngine.cs - Android user → App controls: starts protection
README.md - App controls → VPN controller: requests VPN
ShieldDNS/app/src/main/java/com/sridhar/shielddns/MainActivity.kt - VPN controller → VPN packet service: starts service
ShieldDNS/app/src/main/java/com/sridhar/shielddns/domain/usecase/VpnController.kt - VPN packet service → DNS decision engine: handles DNS
ShieldDNS/app/src/main/java/com/sridhar/shielddns/service/ShieldVpnService.kt - DNS decision engine → Domain matcher: checks domains
ShieldDNS/app/src/main/java/com/sridhar/shielddns/core/dns/DnsResolutionEngine.kt - DNS decision engine → Reputation scoring: scores risk
ShieldDNS/app/src/main/java/com/sridhar/shielddns/core/dns/DnsResolutionEngine.kt - DNS decision engine → Redirect detection: detects redirects
ShieldDNS/app/src/main/java/com/sridhar/shielddns/core/dns/DnsResolutionEngine.kt - DNS decision engine → Encrypted upstream: resolves allowed
ShieldDNS/app/src/main/java/com/sridhar/shielddns/core/dns/DnsResolutionEngine.kt - DNS decision engine → Query activity buffer: records activity
ShieldDNS/app/src/main/java/com/sridhar/shielddns/core/dns/DnsResolutionEngine.kt - Blocklist repository → Domain matcher: builds indexes
ShieldDNS/app/src/main/java/com/sridhar/shielddns/data/repository/BlocklistRepository.kt - VPN controller → Settings repository: persists settings
ShieldDNS/app/src/main/java/com/sridhar/shielddns/domain/usecase/VpnController.kt - DNS decision engine → Encrypted upstream: uses DoH/DoT
README.md - DNS decision engine → Redirect detection: detects chains
README.md