defendnot
August 15, 2026 ยท View on GitHub
An even funnier way to disable windows defender.
Caution
Permitted Use Notice:
Using this tool to facilitate malware distribution, or any illegal activity is strictly prohibited.
Users assume all legal responsibility for how they use this tool and any consequences thereof. You must comply with all applicable laws when using this tool.
By downloading, installing, or using this tool, you acknowledge that you agree to these terms.
Installation
Warning
You may need to temporarily disable realtime and tamper protection before proceeding, otherwise defender will block defendnot binaries from running.
On newer Windows 11 builds you may also have to turn off Smart App Control.
- Real-time protection:
windowsdefender://threatsettings/ - Smart App Control:
windowsdefender://appbrowser/
One-liner
Open the powershell as administrator and execute any of these:
# Example 1: Basic installation
irm https://dnot.sh/ | iex
# Example 2: With custom AV name and firewall
& ([ScriptBlock]::Create((irm https://dnot.sh/))) --name "Custom AV name" --firewall
# Example 3: Without allocating console
& ([ScriptBlock]::Create((irm https://dnot.sh/))) --silent
# Example 4: Run once, without allocating console
& ([ScriptBlock]::Create((irm https://dnot.sh/))) --silent --disable-autorun
# Example 5: Uninstall
& ([ScriptBlock]::Create((irm https://dnot.sh/))) --disable
Manual
Download the latest release, extract it somewhere and launch defendnot-loader.
Usage
Usage: defendnot-loader [--help] [--version] [--name VAR] [--disable] [--verbose] [--firewall] [--silent] [--autorun-as-user] [--disable-autorun]
Optional arguments:
-h, --help prints help message and exits
--version shows version and exits
-n, --name av display name [default: "dnot.sh"]
-d, --disable disable defendnot
-v, --verbose verbose logging
--firewall also register a fake firewall
--silent do not allocate console
--autorun-as-user create autorun task as currently logged in user
--disable-autorun disable autorun task creation
Stripping Defender out further (optional)
defendnot only registers a fake AV through WSC, but if you want to strip more Defender stuff out, run the optional extra-strip.bat as admin after defendnot is active. It disables a bunch more Defender policies in registry: real-time monitoring, behavior monitoring, cloud reporting, signature updates, etc.
It's a separate script because the keys are finicky and undoing them on --disable would mean saving every value first somewhere and writing all of them back, which is waaay more bookkeeping than I feel like implementing.
Limitations
- Needs to stay on disk:
To keep the AV registration after reboot, defendnot adds itself to autorun.
Writeup
How I ruined my vacation by reverse engineering WSC
Special thanks
- mrbruh for poking me to research this topic
- pindos for providing their machine for WSC service debugging
License
Apache-2.0