Skip to main content

Windows Defender wrapper

Project description

Pyrattle

Overview

Pyrattle is a Python package designed to interface with Windows Defender, enabling users to perform various malware protection tasks, such as scanning for threats, updating signature definitions, and managing dynamic signatures. It leverages Windows Defender's command-line utility (MpCmdRun.exe) to execute its functions.

Features

  • Perform different types of scans (Quick, Full, Custom)
  • Update malware protection signatures from UNC file shares or the Microsoft Malware Protection Center (MMPC)
  • Add, list, and remove dynamic signatures for enhanced malware protection
  • Flexible configuration for scan options including remediation, boot sector scanning, and more

Installation

pip install pyrattle

Usage

Importing the Package

from pyrattle import PyDefender, ScanType

Initializing PyDefender

scanner = PyDefender()
# or
scanner = PyDefender(executable_path="C:\\Program Files\\Windows Defender\\MpCmdRun.exe")

Performing a Scan

It can perform multiple kinds of scan:

  • Quick Scan

    scan_result = scanner.scan(scan_type=ScanType.QUICK)
    
  • Full Scan

    scan_result = scanner.scan(scan_type=ScanType.FULL)
    
  • Custom Scan

    scan_result = scanner.scan(scan_type=ScanType.CUSTOM)
    print(scan_result)
    

Updating Signature Definitions

  • From UNC File Share

    success = scanner.updateSignature(unc=True, unc_path="\\\\path\\to\\unc\\share")
    
  • From Microsoft Malware Protection Center

    success = scanner.updateSignature(mmpc=True)
    

Managing Dynamic Signature

  • Adding a Dynamic Signature

    success = scanner.addDynamicSignature(path="C:\\path\\to\\signature\\file")
    print("Signature added successfully:", success)
    
  • Listing All Dynamic Signatures

    signatures = scanner.listAllDynamicSignatures()
    print("Dynamic Signatures:", signatures)
    
  • Removing a Dynamic Signature

    success = scanner.removeDynamicSignature(signature_id="signature_id")
    print("Signature removed successfully:", success)
    

API Reference

PyDefender

scan(scan_type=ScanType.DEFAULT, file=None, disable_remediation=False, boot_sector_scan=False, timeout=30, is_cancel=False)

Performs a system scan based on the provided parameters.

  • scan_type: The type of scan to perform (ScanType.DEFAULT, ScanType.QUICK, ScanType.FULL, ScanType.CUSTOM).
  • file: The file or directory to be scanned (required for ScanType.CUSTOM).
  • disable_remediation: If True, disables remediation actions for custom scans.
  • boot_sector_scan: If True, enables boot sector scanning (only valid for custom scans).
  • timeout: Timeout in days (maximum value is 30).
  • is_cancel: If True, attempts to cancel any ongoing quick or full scan.

Returns a ScanResult object if successful.

updateSignature(unc=False, unc_path=None, mmpc=False)

Updates the signature definitions for malware protection.

  • unc: If True, performs the update from a UNC file share.
  • unc_path: The path to the UNC file share (required if unc is True).
  • mmpc: If True, performs the update directly from the MMPC.

Returns True if the update was successful, False otherwise.

addDynamicSignature(path)

Adds a dynamic signature for malware protection from the specified path.

  • path: The path to the dynamic signature file.

Returns True if the dynamic signature was added successfully, False otherwise.

listAllDynamicSignatures()

Lists all dynamic signatures currently in use.

Returns a list of dynamic signatures.

removeDynamicSignature(signature_id)

Removes a dynamic signature based on the provided signature ID.

  • signature_id: The ID of the signature to be removed.

Returns True if the signature was removed successfully, False otherwise.

Contributing

Contributions are welcome! Please submit a pull request or open an issue on GitHub.

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyrattle-0.1.5.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

pyrattle-0.1.5-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file pyrattle-0.1.5.tar.gz.

File metadata

  • Download URL: pyrattle-0.1.5.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.3 Windows/10

File hashes

Hashes for pyrattle-0.1.5.tar.gz
Algorithm Hash digest
SHA256 5ad26996e491736dbe58d71afb2cd8f96aa4acd91257a4efac4f0709c400cef2
MD5 71dbbeea9d8a7a6728d18bcbc337d18d
BLAKE2b-256 70f4bd0880aa2eace8624dc67829844f92c645ea6eac3ab32c26e00bb9669ad9

See more details on using hashes here.

File details

Details for the file pyrattle-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: pyrattle-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.3 Windows/10

File hashes

Hashes for pyrattle-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 f659637948fe82830c4ebe59dde8dcab81fbee038d6e3f87f1e92510d6e6e767
MD5 ca011f493262aa5c0eeba7684b0021cb
BLAKE2b-256 deeca0eb66cb5a9e2104f68bc1596497ad516a3f7e0b7c37ee27a29ca4859362

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page