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
isTrue
). - 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pyrattle-0.1.8.tar.gz
.
File metadata
- Download URL: pyrattle-0.1.8.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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08a35d8eec3cd09ad202cde3bc9b5d49e071dfb782b3417c5d477f8a2744146a |
|
MD5 | e887b04711d79702c32394189d3b1191 |
|
BLAKE2b-256 | 3c266d783e9992a284563cfb49ee1127eb5cae6653999705da5e0d9483c719c4 |
File details
Details for the file pyrattle-0.1.8-py3-none-any.whl
.
File metadata
- Download URL: pyrattle-0.1.8-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
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3c709b9aad4d1456213b362f1bf3426f98d2df0d7abc5d24f19297896c6bdf2 |
|
MD5 | d1ca2c5532190407c521442d1e9de03e |
|
BLAKE2b-256 | fbdbe078f49d02c669f5cacc9cd8765b75c451ca0decedb97ce31437539aa5f1 |