Apollyon is a modular malware tracking and removal toolkit for Windows, Linux, MacOS, featuring AI-powered decision support. It provides intelligent detection and disinfection of threats from both the operating system and removable (USB) drives.
Named after the angel of destruction in biblical prophecy, Apollyon systematically eliminates malicious artifacts from your system.
- π Modular Architecture β Pluggable modules with a standardized interface for easy extension
- π‘οΈ Dual-Mode Scanning β Analyze and disinfect both the Windows system and USB/removable drives
- βοΈ Two Operation Modes:
- Analysis (Read-Only) β Detect threats without making any modifications
- Disinfection β Actively remove detected malware and restore original files
- π€ AI Decision Support β Integrates LLM-based intelligence via LiteLLM for advanced threat assessment
- π Status Tracking β Full module lifecycle management (READY β RUNNING β COMPLETED/FAILED/CANCELLED)
- π Auto-Discovery β Modules are automatically discovered and registered from the
src/modulesdirectory
Apollyon/
βββ src/
β βββ main.py # Entry point - launches CLI application
β βββ utils.py # Helper utilities
β βββ components/
β β βββ ui.py # Terminal UI (banner, system info box)
β β βββ menu.py # Interactive CLI menu system
β β βββ llm.py # AI/LLM integration for decision support
β β βββ ai_prompts.py # AI prompt templates
β βββ modules/
β βββ base.py # Abstract BaseModule with standardized interface
β βββ registry.py # Module auto-discovery and registration
β βββ movemenoreg.py # MoveMenoreg malware scanner & disinfectant
β βββ jigsaw.py # Jigsaw ransomware scanner & disinfectant & decryptor
Every module extends BaseModule and must implement the methods documented in docs/modules.md.
Each module defines a MODULE_INFO attribute. See docs/modules.md for the full reference.
- Python 3.14+ (64-bit)
- Administrator privileges (for system disinfection operations)
# Clone the repository
git clone https://github.com/Nerveustech/Apollyon.git
cd Apollyon
# Install dependencies
pip install -r requirements.txtFor AI decision support features, create an .env file:
cp .env.example .envEdit .env to add your LLM API key:
LITELLM_API_KEY=your_api_key_here
LITELLM_MODEL=your_model_here# From the project root
python -m src
# Or directly
python src/main.pyThis launches the interactive CLI menu where you can:
- View system information
- Select modules to run
- Choose target (system or USB)
- Pick analysis or disinfection mode
Scans for threats without making any changes. Returns findings in ModuleResult:
from modules.registry import ModuleRegistry
registry = ModuleRegistry()
result = registry.get_module("movemenoreg_scanner").analyze(r"D:\")
print(result.data["findings"]) # List of detected threatsActively removes malware and restores original files:
# Against a USB drive
result = registry.get_module("movemenoreg_scanner").disinfect_usb(r"D:\")
# Against the system
result = registry.get_module("movemenoreg_scanner").disinfect_system()| Target | Description |
|---|---|
system |
Windows system (AppData, Startup folder, running processes) |
usb |
Removable/USB drives (detected automatically via drive type) |
Each module can be executed without launching the CLI. You have two options:
Run modules directly with Python β useful for testing or quick execution:
# Run a specific module directly
python src/modules/jigsaw.py
# Run against a specific target
python -c "from src.modules.jigsaw import JigsawScanner; JigsawScanner().disinfect_system()"Modules with an if __name__ == '__main__' block support direct execution and will run their default entry point method.
Modules can also be compiled into standalone executables using tools like PyInstaller or Nuitka, allowing them to run on systems without Python installed:
# Example with PyInstaller
pyinstaller --onefile --clean src/modules/jigsaw.pyThis produces a single .exe (Windows) executable that can be distributed and run independently.
| Module | Category | Description |
|---|---|---|
movemenoreg_scanner |
disinfection | Detects and removes MoveMenoreg malware from USB drives and Windows systems |
For full documentation on all modules, see docs/modules.md.
Create a new Python file in src/modules/ (name must not start with _). The ModuleRegistry will auto-discover and register your module on startup. See docs/modules.md for the complete guide.
| Package | Version | Purpose |
|---|---|---|
psutil |
7.2.2 | System/process information |
pywin32 |
311 | Windows API & COM object access |
python-dotenv |
>=1.0.1 | Environment variable management |
litellm |
>=1.83.7 | AI/LLM integration for decision support |
This project is licensed under the MIT License.
Andrea Michael Maria Molino
