Initial public release
Full BigBrother network implant - passive SOC + active exploitation. Personal identifiers removed; all capabilities intact. See README.md for setup and docs/deployment.md for detailed deployment.
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Abstract base class for all SystemMonitor modules."""
|
||||
|
||||
from abc import ABC, abstractmethod
|
||||
|
||||
|
||||
class BaseModule(ABC):
|
||||
"""Base class that all SystemMonitor modules must inherit from.
|
||||
|
||||
Each module runs as a separate process managed by the Engine.
|
||||
"""
|
||||
|
||||
name: str = "unnamed"
|
||||
module_type: str = "passive" # passive, active, stealth, intel, connectivity
|
||||
priority: int = 100 # OOM priority (lower = more important)
|
||||
dependencies: list = [] # Module names that must be running first
|
||||
requires_root: bool = False
|
||||
requires_capture_bus: bool = False
|
||||
|
||||
def __init__(self, bus, state, config, engine=None):
|
||||
self.bus = bus
|
||||
self.state = state
|
||||
self.config = config
|
||||
self.engine = engine
|
||||
self._running = False
|
||||
self._pid = None
|
||||
self._start_time = None
|
||||
|
||||
@abstractmethod
|
||||
def start(self) -> None:
|
||||
"""Start the module. Called by the engine in the module's own process."""
|
||||
...
|
||||
|
||||
@abstractmethod
|
||||
def stop(self) -> None:
|
||||
"""Stop the module gracefully."""
|
||||
...
|
||||
|
||||
@abstractmethod
|
||||
def status(self) -> dict:
|
||||
"""Return module status dict.
|
||||
|
||||
Returns:
|
||||
{"running": bool, "pid": int, "uptime": float, "ram_mb": float, "cpu_pct": float}
|
||||
"""
|
||||
...
|
||||
|
||||
@abstractmethod
|
||||
def configure(self, config: dict) -> None:
|
||||
"""Apply new configuration to a running module."""
|
||||
...
|
||||
|
||||
def health_check(self) -> bool:
|
||||
"""Check if the module is healthy. Override for custom checks."""
|
||||
try:
|
||||
return self.status().get("running", False)
|
||||
except Exception:
|
||||
return False
|
||||
Reference in New Issue
Block a user