Skip to content

Commit b735561

Browse files
committed
docs: add ROADMAP with planned features and competitive research
Tracks unified undo manifest, CLI parity goals, firewall integrity guard, verification suite, Catppuccin restyle, and OSS competitive research notes.
1 parent 423d32f commit b735561

1 file changed

Lines changed: 83 additions & 0 deletions

File tree

ROADMAP.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# DefenderControl Roadmap
2+
3+
PowerShell WPF Defender disable/enable utility with 4-level permission escalation and PPL flag stripping. Tracks work beyond the current release.
4+
5+
## Planned Features
6+
7+
### Core Operations
8+
- Unified undo manifest (JSON, mirror Debloat-Win11) so `Enable` can replay the exact inverse of a specific `Disable` run
9+
- Atomic transaction log — every registry write appends a before/after pair so partial failures are fully reversible
10+
- Phase-level `-Only` / `-Skip` flags mirroring the 10-phase pipeline for surgical control
11+
- Verification suite after `Disable`: runs `Get-MpComputerStatus` and a synthetic EICAR test (opt-in) to confirm real-time is actually off
12+
- Safe Mode bootstrap: self-schedule a one-shot task that runs the script in Safe Mode for keys that resist all 4 escalation methods
13+
14+
### UI
15+
- Restyle WPF to Catppuccin Mocha (match DefenderShield / DisableDefender) instead of the current palette
16+
- Dashboard tiles showing PPL status per service (MsMpEng, WdFilter, WdBoot, WdNisDrv)
17+
- Live telemetry counter (how many ETW Microsoft-Antimalware events observed in last N seconds) to visually prove real-time is off/on
18+
- Tamper Protection hand-holding: one-click launch of `ms-settings:windowsdefender` with on-screen instructions
19+
- Log pane: per-line filter chips (Phase / Method / Service), copy-as-markdown for bug reports
20+
21+
### CLI
22+
- Full CLI parity with the GUI: `-Mode Disable|Enable|Status|Verify`, `-DryRun`, `-Silent`, `-NoRestorePoint`, `-NoReboot`
23+
- Structured JSON output with `-Json` for piping into other automation
24+
- Exit codes: 0 success, 1 partial, 2 blocked by Tamper Protection, 3 blocked by Safe Mode needed
25+
- `Install-Module DefenderControl` PSGallery publish path
26+
27+
### Safety
28+
- Firewall integrity pre/post guard (adopt DisableDefender's refuse-list pattern) — abort if mpssvc/BFE get touched
29+
- Pre-flight network check: warn when Defender is disabled and no third-party AV is detected (Registry: `HKLM:\SOFTWARE\Microsoft\Security Center\Provider\Av`)
30+
- Auto-reboot suppression when BitLocker recovery-key prompt would interrupt
31+
- Health scan mode: enumerate every known Defender component and report current state without modifying
32+
33+
### Integrations
34+
- Intune Win32 detection script + remediation pair
35+
- Group Policy ADMX template stub that disables Defender via GPO — for shops that want GPO-first deployment
36+
- Event Log source (`DefenderControl`) so SIEM pipelines can track every disable/enable action
37+
38+
### Packaging
39+
- Authenticode-sign the `.ps1` + GUI launcher; publish SHA256SUMS alongside each release
40+
- Portable ZIP release asset with the script + README + LICENSE bundled
41+
- Per-release changelog bullets that match the CLAUDE.md version strings
42+
43+
## Competitive Research
44+
45+
- **DisableDefender (sibling repo)** — Adjacent project in the same repo family; share the refuse-list firewall guard, the 4-level escalation code, and the Catppuccin theme.
46+
- **DefenderControl by Sordum** (closed-source reference tool) — Benchmark for the "single button" UX; DefenderControl here wins on auditability (open source + logs) and loses on polish — close that gap with the Catppuccin rework.
47+
- **Windows-Defender-Remover (ionuttbara)** — Aggressive removal via DISM; reference for the nuclear path, but `DefenderControl` positions as the reversible sibling — keep the boundaries clear.
48+
- **Powershell-Scripts / privacy.sexy** — Comprehensive catalog of Defender keys; use as a source of truth for Phase 4 coverage and auto-sync missing keys weekly via an Action.
49+
50+
## Nice-to-Haves
51+
52+
- Optional watchdog scheduled task that re-applies disable settings after every reboot (opt-in, for kiosk/imaging machines)
53+
- "Explain mode" — hover any registry key in the log to see the admx.help description
54+
- Preset profiles (Developer, Kiosk, Medical Imaging, VM Host) that pick the right subset of phases
55+
- Diff view comparing two Status snapshots so a support engineer can see what changed between runs
56+
- HTML report export of an entire run suitable for attaching to an incident ticket
57+
- Remote mode (`-ComputerName`) via WinRM to operate on a fleet (with opt-in only and heavy warning)
58+
59+
## Open-Source Research (Round 2)
60+
61+
### Related OSS Projects
62+
- **ionuttbara/windows-defender-remover**https://github.com/ionuttbara/windows-defender-remover — Covers the full Defender surface: Security App, VBS, SmartScreen, Web-Threat, App Guard, Driver Block List, Settings-app page. Also ships ISO-maker flow.
63+
- **es3n1n/defendnot**https://github.com/es3n1n/defendnot — Undocumented WSC (Windows Security Center) API trick: registers a fake AV so Defender auto-disables itself. Requires binary-on-disk persistence.
64+
- **pgkt04/defender-control**https://github.com/pgkt04/defender-control — Open-source spiritual successor to Sordum's now-discontinued tool.
65+
- **zoicware/DefenderProTools**https://github.com/zoicware/DefenderProTools — DISM + TrustedInstaller approach for removing Defender from ISOs; brute-force registry nuke.
66+
- **S12cybersecurity/WinDefenderKiller**https://github.com/S12cybersecurity/WinDefenderKiller — Registry disable + BYOVD process termination; reference for advanced bypass research.
67+
- **Nolan-Burkhart/defender-disabler**https://github.com/Nolan-Burkhart/defender-disabler — Minimal C++ registry-only reference implementation.
68+
- **disable-windows-defender/disable-windows-defender.github.io**https://github.com/disable-windows-defender/disable-windows-defender.github.io — Pure `.reg` file pair (disable/restore); useful as a minimum-viable fallback baked into DefenderControl.
69+
70+
### Features to Borrow
71+
- WSC-API fake-AV registration approach as an alternate disable strategy, with clear trade-offs documented (needs persistent binary, flagged as `VirTool:Win64/Defnot.A`) — borrow from `defendnot`. Ship as opt-in "Method B".
72+
- TrustedInstaller-mediated key writes for tamper-protection-enabled systems — borrow from `DefenderProTools` and Sordum's PowerRun technique. Keep the user's existing ACL-takeover path and add TI as fallback.
73+
- ISO-maker integration so images can be pre-hardened — borrow from `ionuttbara/windows-defender-remover`.
74+
- Expanded disable surface beyond just Defender AV: SmartScreen, Web-Threat service, Driver Block List, App Guard, VBS — borrow from `ionuttbara/windows-defender-remover` checklist.
75+
- BYOVD (bring-your-own-vulnerable-driver) preflight warning documented in README even if not shipped — borrow from `WinDefenderKiller`.
76+
- "Disable + Restore" paired `.reg` file export so users can apply/undo without the GUI — borrow from `disable-windows-defender.github.io`.
77+
- Build-from-source instructions prominently documented because `.exe` releases are flagged by AV — borrow from `ionuttbara/windows-defender-remover` README.
78+
79+
### Patterns & Architectures Worth Studying
80+
- `defendnot`'s WSC API reverse-engineering: undocumented COM interface, NDA-gated docs; novel primitive worth adding to DefenderControl's method matrix.
81+
- `ionuttbara/windows-defender-remover`'s service/feature checklist — use as a coverage matrix for DefenderControl's 10-phase disable to spot gaps.
82+
- Sordum Defender Control's 4-axis approach (direct keys + policy keys + Systray stop + mpcmdrun block + service startup edits) as the minimum table of ops — already mostly in DefenderControl; verify parity.
83+
- `r12w4n/disable-defender`'s wrapper pattern (orchestrates external tools rather than reimplementing) — alternate distribution model if upstream maintenance burden becomes too high.

0 commit comments

Comments
 (0)