All notable changes to CyberCrew are documented in this file. Format based on Keep a Changelog. Versioning follows Semantic Versioning.
- Plugin Marketplace — In-app module discovery and installation; community-contributed plugins with signature verification
- Network Topology Visualizer — Interactive graph (PyQtGraph NetworkX) showing discovered hosts, open ports, and service connections
- AI-Assisted Triage — LLM integration (local Ollama / remote API) for automatic finding severity classification, anomaly explanation, and executive summary generation
- Remote Evidence Collection — SSH-based agent deployment to collect artifacts from remote Linux hosts without physical access
- Encrypted Evidence Containers — SQLCipher database encryption + LUKS-based evidence partition support
- HMAC Audit Log Chaining — Each event_log entry hashes the previous entry (blockchain-style tamper detection)
- Timeline Visualizer — Interactive Gantt-style view of filesystem timeline events (fls/mactime output)
- YARA Rule Integration — Scan carved files against custom YARA rule sets
- Hash Database Lookup — NSRL hash set integration for known-good file filtering
- Case Collaboration Export — Encrypted ZIP export of a full case for handoff to another investigator
Complete rewrite from Phase 1 (Bash scripts) to a full PyQt6 desktop application.
ForensicsEngine(QObject) — parallel subprocess management via QProcess; supports up to 32 concurrent tool instances; SIGSTOP/SIGCONT pause/resume; SIGTERM→grace→SIGKILL shutdownArtifactHasher(QObject) — background SHA-256 hashing via QThread; 64KB chunked streaming; progress signals; cancellation supportDatabaseSession— SQLite with WAL mode, busy_timeout=5000, foreign_keys=ON, 0o600 file permissions- 7 SQLModel database tables: Case, Instance, Artifact, EventLog, Finding, Report, Settings
- 6 database enums: CaseStatus, InstanceStatus, ArtifactType, EventLevel, FindingSeverity, ReportFormat
- Auto-generated case numbers:
CC-YYYY-XXXX InputSanitizer— 16+ typed validators;ValidationError,PathTraversalError,InjectionErrorexceptionsBaseForensicsModule— abstract base class with 7 pyqtSignals; plugin contract enforced at class level- SHA-256 sidecar files (
.sha256) in sha256sum format - JSON hash manifests with batch verification
- Tamper-evident evidence chain: hash stored in DB + sidecar + verification flow
- NetworkModule: HostDiscovery, PortScanner, VulnScanner (all nmap), PacketCapture, PacketAnalyzer (tshark)
- ComputerModule: DiskImager (dd), FileRecovery (photorec), Timeline (fls/mactime), OCR (tesseract), PasswordCracker (john)
- MobileModule: AdbInfo, MediaExtractor, CallLog, GPS, SMS, Contacts (all via adb)
- MediaModule: Image, Video, PDF, Office, EXE metadata (all via exiftool)
- WebAppModule: EmailAnalysis, WhatsAppAnalysis, WebsiteScanner (nikto), UrlLookup (whois), DomainRecon (dig)
NmapParser— streaming text + XML parsing; CVE extraction; risk scoring (0–10);to_findings()TsharkParser— packet count, DNS extraction, conversation analysis, large-transfer anomaly detectionExiftoolParser— JSON metadata, GPS DMS→decimal, anomaly detection (editing software, timestamp mismatch, PE compile date, OriginalFilename mismatch)AdbParser— device detection, getprop parsing, root detectionNiktoParser— finding extraction with CRITICAL/HIGH/MEDIUM severity classification
TitleBar— animated logo border pulse (QPropertyAnimation, 3s cycle), 6 nav tabs, case name pill, instance counter with pulsing dot, glow sweep animation at 25fpsInstanceBar— scrollable tab row for parallel instances; blinking status dots (RUNNING=green, PAUSED=amber); Ctrl+T/Ctrl+W shortcutsTerminalPanel— read-only IBM Plex Mono output; CVE chip highlighting (red); flag colour highlighting (OPEN=green, VULNERABLE=red, FILTERED=amber); 10,000 line scrollback; command history (↑↓)MetricsPanel— live animated metric counters (30ms ease); RiskBadge with pulsing dot; PortTable (PORT|STATE|SERVICE); MiniBar gradient fillCaseLogPanel— timestamped log entries; tag pills; filter bar (ALL/INFO/WARNING/CRITICAL); smart auto-scrollEvidencePanel— EvidenceItem with SHA-256 preview; SpinnerWidget for HASHING state; VERIFIED/HASHING/FAILED/PENDING status; VERIFY ALL buttonDashboardPage— 4 StatCards; ActivityStream; QuickTerminal; ModuleList; NetworkChart (PyQtGraph); EvidenceChainSummaryMainWindow— QStackedWidget pages; QSplitter workspaces; StatusBar; signal routing; F11 fullscreen; graceful shutdownstyles.py— 1,200-line dark cockpit QSS; JetBrains Mono UI + IBM Plex Mono terminal; full widget coverage
ReportGenerator— Jinja2 HTML template with dark theme matching application aesthetic- WeasyPrint PDF export
- Report sections: Executive Summary, Findings (severity-sorted), Evidence Chain, Event Timeline, Tool Output Logs
cybercrew.spec— PyInstaller spec with all hidden imports and data filesscripts/build_appimage.sh— Linux AppImage build script with SHA-256 checksumsscripts/build_exe.bat— Windows EXE build script with optional NSIS installerscripts/install_linux.sh— Automated Linux installer supporting Ubuntu/Debian/Arch/Kaliscripts/install_windows.ps1— Automated Windows installer via winget
tests/test_hasher.py— 19 tests for ArtifactHashertests/test_security.py— 23 tests for InputSanitizertests/test_modules.py— 41 tests for BaseForensicsModule
README.md— Full GitHub-quality documentation with installation guides for 4 platformsdocs/module_interface.md— Complete public API for all 5 modulesdocs/database_schema.md— ERD and full column documentationdocs/plugin_development.md— Step-by-step guide for adding new modulesdocs/security_audit.md— Full security audit with findings and recommendationsdocs/qa_checklist.md— Complete QA testing matrixsrc/security/SECURITY_HARDENING_CHECKLIST.md— 54-item internal security checklist
- Complete rewrite from Bash to Python 3.11+
- No
shell=Truein any subprocess call — enforced byForensicsEngine - Typed exception hierarchy for all input validation failures
- Path traversal prevention with null byte + Unicode BiDi +
../checks - 13 shell metacharacter blocklist in
sanitize_command_args()
The original CyberCrew was a collection of Bash scripts for forensics automation.
- Network scanning via direct
nmapinvocation - Packet capture wrapper for
tshark - Disk imaging via
ddwith basic hash verification - Mobile extraction via
adbshell scripts - Metadata extraction via
exiftoolbatch scripts - Password cracking via
johnwrapper - Basic HTML report generation via
bash/sed/awk - Manual case directory structure (
mkdir,cp,mv)
- No GUI — terminal-only operation
- No parallel execution — tools ran sequentially
- No real-time output streaming
- SHA-256 hashing was manual and often forgotten
- No structured findings database — findings stored in ad-hoc text files
- No case management — directories tracked manually
- No input sanitization — shell injection possible via crafted filenames
- Report generation was fragile string concatenation
- No cross-platform support (Linux only)