Overview
Crow Eye is an open-source Windows forensic investigation tool designed to collect, analyze, and visualize various Windows artifacts. It features a modular architecture with specialized components for artifact collection, data processing, and visualization through a cyberpunk-themed GUI.
Key Features
- Comprehensive Artifact Collection: Supports Prefetch, Registry, Event Logs, Amcache, Jump Lists, SRUM, MFT, USN Journal, Recycle Bin.
- Timeline Visualization: Advanced timeline view with OpenGL-accelerated rendering.
- Case Management: Organize investigations into cases with persistent configuration.
- Modular Architecture: Easy to extend with new artifact parsers.
Project Structure
The project is organized into several key directories:
Artifacts_Collectors/: Specialized parsers for Windows artifacts.data/: Data management components and database loaders.ui/: User interface components and dialogs.utils/: Utility functions for file handling, errors, etc.timeline/: The timeline visualization subsystem.correlation_engine/: Complete correlation engine system for forensic artifact analysis.config/: JSON configuration files.docs/: Technical documentation and contribution guides.
Architecture Overview
Crow Eye follows a modular architecture where the main application orchestrates interaction between the UI, artifact collectors, and data management layer.
System Layers
- UI Layer: PyQt5-based interface with custom styling.
- Collector Layer: Independent modules for parsing specific artifacts.
- Data Layer: SQLite-based storage with optimized loading and querying.
UI Components
Artifact Collectors
Data Management
Timeline System
Core Components
1. Main Application (Crow Eye.py)
The main application serves as the entry point and orchestrator for the entire system.
Responsibilities
- Environment Setup: Creates and manages a virtual environment with required dependencies
- UI Initialization: Sets up the PyQt5-based user interface with cyberpunk styling
- Artifact Collection Coordination: Invokes appropriate artifact collectors
- Data Visualization: Displays collected artifacts in tables and UI components
- Case Management: Handles case creation, loading, and configuration
Key Functions
setup_virtual_environment(): Creates Python virtual environmentcheck_and_install_requirements(): Ensures all packages are installedvalidate_dependencies(): Validates dependency functionalityis_admin(): Checks for administrator privilegesload_registry_data_from_db(): Master function for loading registry data
2. Styles System (styles.py)
Defines the cyberpunk-themed visual identity of Crow Eye with neon accents and dark backgrounds.
Features
- Custom color palette with neon cyan (#00FFFF) accents
- Dark theme optimized for long forensic sessions
- Consistent styling across all UI components
- Custom table styles with alternating row colors
3. Component Factory (component_factory.py)
Factory pattern for creating consistent UI elements throughout the application.
Created Components
- Styled tables with custom headers
- Search dialogs with filters
- Progress indicators
- Custom buttons and controls
Artifact Collectors
Each artifact collector is a specialized module for extracting and parsing a specific type of Windows forensic artifact.
Common Collector Pattern
All collectors follow this pattern:
- Locate: Find artifact source (files, registry keys, etc.)
- Parse: Extract binary data into structured information
- Store: Save results in SQLite databases
- Export: Generate JSON output for interoperability
1. Prefetch Parser (Prefetch_claw.py)
Parses Windows Prefetch files (.pf) to extract execution history.
Forensic Value
- Program execution history
- Last execution times (up to 8 timestamps)
- Run count
- Files and directories accessed by the program
Supported Versions
- Windows XP/2003 (Version 17)
- Windows Vista/7 (Version 23)
- Windows 8/8.1/2012 (Version 26)
- Windows 10/11 (Versions 30-31)
2. Registry Parser (Regclaw.py)
Extracts forensic artifacts from live Windows Registry hives.
Artifacts Collected
- USB Devices & Storage
- UserAssist (ROT-13 decoded)
- Shellbags (folder access)
- Recent Documents
- Network Lists
- Run/RunOnce keys
- Installed Programs
- Services
- BAM/DAM (Background Activity Moderator)
3. Offline Registry Parser (offline_RegClaw.py)
Parses offline registry hives without requiring live system access.
Key Features
- Hive Support: SYSTEM, SOFTWARE, SAM, SECURITY, NTUSER.DAT
- Path Independence: No reliance on current system's registry API
- Cross-Analysis: Analyze hives from different Windows versions
4. Amcache Parser (amcacheparser.py)
Parses Amcache.hve to identify application execution history.
Database Tables
- InventoryApplication
- InventoryApplicationFile
- InventoryDriverBinary
- DeviceCensus
5. Event Log Parser (WinLog_Claw.py)
Parses Windows Event Log files (.evtx).
Forensic Value
- User logon/logoff events
- Process creation (Event ID 4688)
- Service installations
- System events
6. Jump Lists & LNK Parser (A_CJL_LNK_Claw.py)
Parses Jump Lists and LNK (shortcut) files.
Forensic Value
- Recently accessed files
- Application usage patterns
- File paths and network shares
- Timestamps of file access
7. SRUM Parser (SRUM_Claw.py)
Parses System Resource Usage Monitor database.
Forensic Value
- Application runtime and resource usage
- Network connectivity data
- Energy usage statistics
8. MFT Parser (MFT_Claw.py)
Parses the Master File Table from NTFS file systems.
Forensic Value
- Complete file system timeline
- File creation, modification, access times
- Deleted file recovery
- File attributes and permissions
9. USN Journal Parser (USN_Claw.py)
Parses the Update Sequence Number Journal.
Forensic Value
- File system change tracking
- File creation, deletion, renaming events
- Detailed change reasons
10. Recycle Bin Parser (recyclebin_claw.py)
Parses Recycle Bin artifacts.
Forensic Value
- Deleted file metadata
- Original file paths
- Deletion timestamps
- File sizes
Timeline Module
Advanced timeline visualization system with OpenGL-accelerated rendering for analyzing temporal relationships between artifacts.
Architecture
The timeline module is organized into three main layers:
- Data Layer: Manages timeline data access and querying
- Rendering Layer: Handles visual representation with OpenGL
- UI Layer: Provides user interaction and controls
Key Components
timeline_dialog.py: Main timeline dialog windowtimeline_canvas.py: QGraphicsView-based canvastimeline_config_dialog.py: Configuration and filteringevent_renderer.py: Event marker renderingtimeline_data_manager.py: Data access layerzoom_manager.py: Zoom level management
Features
- OpenGL-accelerated rendering for smooth performance
- Multiple zoom levels (day, week, month, year)
- Event filtering by artifact type
- Power event markers
- Event correlation engine
- Progressive data loading
Data Management Layer
The data layer handles all database operations, search functionality, and data loading.
Database Architecture
Crow Eye uses SQLite databases for storing parsed artifacts:
- Case Databases: One database per case
- Artifact Tables: Separate tables for each artifact type
- Indexes: Optimized for timestamp and text searches
Key Components
database_manager.py: Connection and transaction managementbase_loader.py: Base class for data loadersregistry_loader.py: Registry-specific data loadingmft_loader.py: MFT data loading with virtual tablesusn_loader.py: USN Journal data loadingsearch_engine.py: Full-text search across artifactsindex_manager.py: Database index optimization
Search Capabilities
- Full-text search across all artifacts
- Timestamp range filtering
- Regular expression support
- Multi-field queries
- Search history tracking
UI Components
The UI layer provides a cyberpunk-themed interface for interacting with forensic data.
Component Factory Pattern
The component_factory.py module creates consistent UI elements:
- Styled tables with custom headers
- Search and filter dialogs
- Progress indicators
- Custom buttons and controls
Key Dialogs
case_dialog.py: Case creation and managementsearch_filter_dialog.py: Advanced search interfacerow_detail_dialog.py: Detailed artifact viewLoading_dialog.py: Custom loading animations
Virtual Tables
For large datasets (MFT, USN), Crow Eye uses virtual tables:
- On-demand data loading
- Smooth scrolling for millions of records
- Memory-efficient rendering
- Pagination controls