Hacking Tools

SharpExclusionFinder – Streamlining Windows Defender Exclusion Checks With Advanced Scanning Capabilities

This C# program finds Windows Defender folder exclusions using Windows Defender through its command-line tool (MpCmdRun.exe).

The program processes directories recursively, with configurable depth and thread usage, and outputs information about exclusions and scan progress.

The program allows you to:

  • Scan for folder exclusions up to a specified depth, without relying on event logs or admin permissions.
  • Use multi-threading to speed the scan process.
  • Log errors and exclusion messages to a specified output file.

Usage

Basic Command

program.exe <BasePath> [options]

Options:

  • --max-threads N: Set the maximum number of threads to use for scanning. Default is 3.
  • --depth N: Specify the maximum directory depth to scan. Depth 1 means only immediate subdirectories.
  • --output <filePath>: Specify a file path to log exclusions and errors.
  • -h, --help: Display help and usage information.

Example:

program.exe "C:\MyDirectory" --max-threads 5 --depth 3 --output scan_log.txt

This will scan C:\MyDirectory up to a depth of 3 subdirectories, using 5 threads, and log any exclusions or errors to scan_log.txt.

How It Works

A blog explaining the technique utilised can be viewed here

Example Output

Processed 2000 directories. Time elapsed: 23.78 seconds.
[+] Folder C:\users\user\Example is excluded
Processed 2500 directories. Time elapsed: 30.77 seconds.

Prerequisites

  • .NET Framework 4.5.2 or later.
  • Windows Defender must be installed and enabled on the system.
  • MpCmdRun.exe must be located at C:\Program Files\Windows Defender\MpCmdRun.exe.
Varshini

Varshini is a Cyber Security expert in Threat Analysis, Vulnerability Assessment, and Research. Passionate about staying ahead of emerging Threats and Technologies.

Recent Posts

What I Wish I Knew Before Learning Malware Analysis and Reverse Engineering

When I first started learning malware analysis and reverse engineering, I thought the hardest part…

3 days ago

git fetch vs git pull: How They Work and When to Use Each

Both git fetch and git pull talk to a remote repository, but they do very different things to your…

2 weeks ago

git cherry-pick Command: Apply Commits from Another Branch

Sometimes the change you need already exists, just on the wrong branch. A hotfix lands…

2 weeks ago

Best Email APIs for Secure Business Email: Why Developers Are Moving Beyond SMTP

Email is still one of the most important communication channels inside modern applications. Password resets,…

2 weeks ago

Nginx Commands in Linux: Start, Stop, Reload, Test, and Log

Nginx is a high-performance web server and reverse proxy trusted by some of the largest…

2 weeks ago

ufw Command in Linux: Manage Firewall Rules with Examples

ufw (Uncomplicated Firewall) sits on top of iptables (or nftables on newer systems) and replaces…

2 weeks ago