A modern PyQt5-based antivirus desktop application with real-time scanning, quarantine management, and comprehensive protection modules.
- 🔍 Real-time Scanning - Quick, Full, and Custom scan types with heuristic detection
- 📦 Quarantine System - Isolate and manage detected threats with restore/delete options
- 🛡️ Protection Modules - Toggleable File Shield, Web Shield, Email Guard, Firewall, and more
- 📝 Activity Logging - Real-time activity log with threat detection events
- 💾 Persistent Settings - Configuration persistence across application restarts
- 🧪 EICAR Detection - Standard EICAR test file detection for verification
- 🎨 Modern UI - Clean, dark-themed interface inspired by Avast/AVG
Main dashboard with scan controls, module toggles, and activity log.
Scan type selection, live progress, results table, and scan history.
View and manage quarantined files with restore/delete actions.
Configure auto-quarantine, exclusions, and update definitions.
- Python 3.8 or higher
- Windows 10 or later
# Clone the repository
git clone https://github.com/zikani/simple_antivirus.git
cd sentinel-antivirus
# Install dependencies
pip install -r requirements.txt
# Run the application
python main.pyFor detailed installation instructions, see the Installation Guide.
- Installation Guide - Detailed setup instructions
- Architecture Documentation - System design and components
- API Documentation - Public API reference
- Contributing Guide - How to contribute
sentinel/
├── main.py # Entry point
├── requirements.txt # Dependencies
├── README.md # This file
├── docs/ # Documentation
│ ├── INSTALLATION.md
│ ├── ARCHITECTURE.md
│ ├── API.md
│ └── CONTRIBUTING.md
├── config/
│ └── default_config.json # Default settings
├── data/
│ └── signatures.json # Detection signatures
├── sentinel/
│ ├── app.py # Application bootstrap
│ ├── core/
│ │ ├── constants.py # UI constants and colors
│ │ ├── models.py # Data models
│ │ ├── settings.py # Settings persistence
│ │ ├── database.py # SQLite database
│ │ ├── signatures.py # Signature detection
│ │ ├── scanner.py # Scan engine (QThread)
│ │ ├── quarantine.py # Quarantine management
│ │ ├── modules.py # Module state management
│ │ └── logger.py # Activity logging
│ ├── ui/
│ │ ├── styles.py # UI stylesheet
│ │ ├── widgets/
│ │ │ ├── toggle_switch.py
│ │ │ ├── status_ring.py
│ │ │ ├── common.py # Shared widgets
│ │ │ └── placeholder_page.py
│ │ ├── pages/
│ │ │ ├── status_page.py
│ │ │ ├── scans_page.py
│ │ │ ├── quarantine_page.py
│ │ │ └── settings_page.py
│ │ └── main_window.py # Main window
│ └── utils/
│ └── paths.py # Path helpers
Sentinel uses multiple detection methods:
- EICAR Standard Test String - Detects the standard EICAR test file
- Hash Blacklist - Matches files against known threat hashes (configurable in
data/signatures.json) - Suspicious Extensions - Flags files with dangerous extensions (
.exe.js,.scr, double extensions) - Heuristic Detection - Identifies small executables in high-risk folders (Downloads, Temp)
To verify Sentinel's detection capabilities, you can create an EICAR test file:
- Create a new text file (e.g.,
eicar_test.txt) - Paste the following string:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* - Save the file in your Downloads folder
- Run a Quick scan from the Status page
- Sentinel will detect this as a
TestThreat(safe to use for testing)
Note: The EICAR test string is harmless and is used by antivirus vendors worldwide to verify detection capabilities.
- Configuration:
%APPDATA%\Sentinel\config.json - Database:
%APPDATA%\Sentinel\sentinel.db - Quarantine:
%APPDATA%\Sentinel\quarantine\
- Status - Main dashboard with scan controls, module toggles, and activity log
- Scans - Scan type selection, live progress, results table, and scan history
- Quarantine - View and manage quarantined files with restore/delete actions
- Settings - Configure auto-quarantine, exclusions, and update definitions
- Firewall/Performance/Privacy/VPN - Premium features (placeholder pages)
PyQt5>=5.15
pytest>=7.0
Contributions are welcome! Please read the Contributing Guide for details on our code of conduct and the process for submitting pull requests.
This is a demonstration/educational project. Not intended for production use as a real antivirus solution.
Sentinel Antivirus is a educational/demonstration project. It is not intended for production use as a real antivirus solution. The detection methods are simplified and should not be relied upon for actual security protection.
- UI design inspired by Avast/AVG antivirus interfaces
- PyQt5 for the excellent GUI framework
- EICAR test file standard for verification capabilities
Built with ❤️ using PyQt5