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.7.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyrattle-0.1.7.tar.gz
  • Upload date:
  • Size: 8.8 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.7.tar.gz
Algorithm Hash digest
SHA256 d870578122826472d88dc71112ce5e93484b20078f449d18fd189c134283e81a
MD5 7094db3d04322d09c7ba557646186e18
BLAKE2b-256 90cfa6d6760c7017fae2b2a6d95ef7acb18410a7f15206cf586bd69920ead410

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyrattle-0.1.7-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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 3612bb252a94e6a73ef1db6d573e9baa29bfc3a387412c9c24173902b5df244d
MD5 4508f01a27745fb683dff0c130fdd439
BLAKE2b-256 bd0916d0b3f6b1acf72ff292d60fb60cb8d38f6897b55a460f1a10756abf7369

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