Overview
This project is a modular system inspection tool written in Python. It is designed to collect system information, scan driver data, analyze driver state, and generate reports in a structured and extensible way.
The project focuses on architecture and correctness, not privileged kernel access. All data collection is performed in user space and is safe to run on a personal computer.
Project Goals
-
Demonstrate clean modular software design
-
Simulate system software / driver inspection workflows
-
Handle missing or unavailable data safely
-
Separate responsibilities between collection, scanning, analysis, and reporting
-
Allow future extension (real driver versions, compatibility checks, export formats)
Architecture Overview
The project is divided into four modules, each with a single responsibility:
- Collector → Scanner → Manager → Reporter
Module Breakdown
Module 1 — System Collector
Purpose: Collects basic operating system information.
Data Collected:
-
OS name
-
OS version
-
Kernel version
-
Timestamp of collection
This module assumes some information may not be available and handles that gracefully.
Module 2 — Driver Scanner
Purpose: Scans the operating system for driver-related information and converts raw data into structured objects.
Responsibilities:
-
Query the OS (user-space only)
-
Create Driver_Info objects
-
Treat unavailable values (such as driver version) as "unknown"
-
On Windows, this module uses the driverquery command to retrieve real driver names.
Module 3 — Driver Manager (Analyzer)
Purpose: Analyze scanned drivers and provide structured insight.
Capabilities:
-
Filter loaded drivers
-
Filter unloaded drivers
-
Detect drivers with unknown versions
-
Group drivers by visibility level
-
Generate a summary dictionary for reporting
This module does not scan and does not print — it only processes data.
Module 4 — Reporter
Purpose: Convert analyzed data into human-readable and structured reports.
Outputs:
-
Text-based report
-
Dictionary-based report
-
Risk assessment based on visibility, state, and missing data
-
This module is intended for:
-
Console output
Logging
Future UI or API integration
Folder Structure
src/
│
├── collector/
│ └── collector.py
│
├── driver_scanner/
│ ├── driver_info.py
│ └── scanner.py
│
├── analyzer/
│ └── driver_manager.py
│
├── reporter/
│ └── reporter.py
│
└── run.py
How to Run (Test on Your Own Computer) Requirements
-
Python 3.8+
-
Windows (for real driver scanning via driverquery)
Steps
-
Open a terminal
-
Navigate to the src directory:
-
cd src
Run the program:
python run.py
Example Output
=== MODULE 1: SYSTEM INFO ===
Windows
10
10.0.19045
2026-01-20 18:02:41
=== MODULE 2: DRIVER SCAN ===
Drivers scanned: 120
=== MODULE 3: ANALYSIS ===
{'total': 120, 'loaded': 120, 'unknown_version': 120, 'partial_visibility': 120}
=== MODULE 4: REPORT ===
Total Drivers: 120
Loaded Drivers: 120
Drivers with Unknown Version: 120
Partial Visibility Drivers: 120
Risk Level: At Risk
Design Notes
Missing or unavailable information is explicitly marked as "unknown"
Risk assessment is conservative and avoids assumptions
All modules are loosely coupled
Scanner can be replaced without affecting analysis or reporting
Designed to reflect real-world system tooling patterns
Future Improvements
Cross-platform driver scanning (Linux / macOS)
Driver version enrichment
Compatibility rule engine
JSON / CSV export
Logging instead of console output
Disclaimer
This project does not perform kernel-level inspection. All operations are user-space and intended for educational and architectural demonstration purposes.