Introduction
Welcome to the Crow Eye project! We appreciate your interest in contributing. This guide will help you get started with contributing to our Windows forensic investigation tool.
Our Vision: Crow-Eye aims to democratize digital forensics, making it accessible to everyoneβfrom concerned parents to professional investigators and businesses.
System Architecture
(Crow Eye.py)"] Timeline["Timeline View
(timeline/)"] Factory["Component Factory
(ui/)"] end subgraph Collectors ["π¦ Artifact Collectors"] style Collectors fill:#1E293B,stroke:#8B5CF6,stroke-width:2px Prefetch["Prefetch"] Registry["Registry"] Amcache["Amcache"] EventLog["Event Logs"] JumpList["Jump Lists"] end subgraph Data_Layer ["πΎ Data Layer"] style Data_Layer fill:#0B1220,stroke:#10B981,stroke-width:2px BaseLoader["Base Loader"] DataMgr["Data Manager"] SQLite[("SQLite DBs")] end subgraph Utils ["π§ Utilities"] style Utils fill:#334155,stroke:#F59E0B,stroke-width:2px ErrorHandler["Error Handler"] FileUtils["File Utils"] SearchUtils["Search Utils"] end MainUI --> Collectors MainUI --> Timeline MainUI --> Factory Collectors --> Data_Layer Timeline --> Data_Layer MainUI --> Utils Collectors --> Utils Timeline --> Utils Data_Layer --> SQLite classDef uiClass fill:#1E293B,stroke:#3B82F6,color:#E2E8F0 classDef collectorClass fill:#1E293B,stroke:#8B5CF6,color:#E2E8F0 classDef dataClass fill:#0B1220,stroke:#10B981,color:#E2E8F0 classDef utilClass fill:#334155,stroke:#F59E0B,color:#E2E8F0 class MainUI,Timeline,Factory uiClass class Prefetch,Registry,Amcache,EventLog,JumpList collectorClass class BaseLoader,DataMgr,SQLite dataClass class ErrorHandler,FileUtils,SearchUtils utilClass
π₯οΈ UI Layer
PyQt5-based interface with cyberpunk styling
π¦ Collectors
Specialized parsers for Windows forensic artifacts
πΎ Data Layer
SQLite-based storage with optimized querying
π§ Utilities
Reusable helper functions for common tasks
βοΈ Correlation Engine
Advanced forensic analysis system with dual-engine architecture (Time-Based and Identity-Based) for finding temporal and semantic relationships between artifacts
Correlation Engine Components
The Correlation Engine is organized into 7 main directories:
- engine/ - Core correlation logic with Time-Based and Identity-Based engines
- feather/ - Data normalization and import from forensic artifacts
- wings/ - Correlation rule definitions and validation
- config/ - Configuration management and semantic mappings
- pipeline/ - Workflow orchestration and automation
- gui/ - User interface for pipeline management and results visualization
- integration/ - Bridge between Crow-Eye and Correlation Engine
π§ Contributing to Correlation Engine
The Correlation Engine is a major component of Crow Eye. Learn how to contribute to this advanced forensic analysis system.
View Correlation Engine Contribution Guide βContribution Decision Tree
Use this flowchart to quickly determine where your contribution should go and what steps to follow:
contribution?} Type -->|New Artifact Parser| Artifact["π¦ Add to Artifacts_Collectors/"] Type -->|UI Enhancement| UI["π₯οΈ Add to ui/"] Type -->|Bug Fix| Bug["π Find relevant module"] Type -->|Documentation| Docs["π Update .md files"] Type -->|Timeline Feature| TL["β±οΈ Add to timeline/"] Artifact --> Parser["1οΈβ£ Create *_claw.py file"] Parser --> DataClass["2οΈβ£ Define @dataclass structures"] DataClass --> ParseFunc["3οΈβ£ Implement parse() function"] ParseFunc --> DBFunc["4οΈβ£ Add save_to_sqlite()"] DBFunc --> IntegrateMain["5οΈβ£ Integrate with Crow Eye.py"] UI --> Factory["Use ComponentFactory"] Factory --> Style["Follow cyberpunk theme
(styles.py)"] Style --> UITest["Test UI responsiveness"] TL --> TLArch["Review timeline/ARCHITECTURE.md"] TLArch --> TLLayer{Which layer?} TLLayer -->|Data| TLData["timeline/data/"] TLLayer -->|Rendering| TLRender["timeline/rendering/"] TLLayer -->|UI| TLUI["timeline/*.py dialogs"] Bug --> TestCase["1οΈβ£ Write test case"] TestCase --> FixIssue["2οΈβ£ Fix the issue"] FixIssue --> VerifyFix["3οΈβ£ Verify fix works"] Docs --> ReviewDocs["Review existing docs"] ReviewDocs --> UpdateDocs["Update relevant sections"] UpdateDocs --> CheckLinks["Verify all links work"] IntegrateMain --> PR["π€ Create Pull Request"] UITest --> PR TLData --> PR TLRender --> PR TLUI --> PR VerifyFix --> PR CheckLinks --> PR PR --> CodeReview["π Code Review"] CodeReview --> Changes{Changes
requested?} Changes -->|Yes| MakeChanges["Make requested changes"] MakeChanges --> CodeReview Changes -->|No| Merge["β Merge to main"] style Start fill:#0F172A,stroke:#00FFFF,stroke-width:3px,color:#E2E8F0 style Merge fill:#10B981,stroke:#059669,stroke-width:3px,color:#E2E8F0 style PR fill:#8B5CF6,stroke:#7C3AED,stroke-width:2px,color:#E2E8F0 style Type fill:#1E293B,stroke:#3B82F6,stroke-width:2px,color:#E2E8F0 style CodeReview fill:#F59E0B,stroke:#D97706,stroke-width:2px,color:#0F172A classDef artifactClass fill:#1E293B,stroke:#8B5CF6,color:#E2E8F0 classDef uiClass fill:#1E293B,stroke:#3B82F6,color:#E2E8F0 classDef bugClass fill:#7F1D1D,stroke:#DC2626,color:#E2E8F0 classDef docClass fill:#065F46,stroke:#10B981,color:#E2E8F0 classDef timelineClass fill:#1E293B,stroke:#F59E0B,color:#E2E8F0 class Artifact,Parser,DataClass,ParseFunc,DBFunc,IntegrateMain artifactClass class UI,Factory,Style,UITest uiClass class Bug,TestCase,FixIssue,VerifyFix bugClass class Docs,ReviewDocs,UpdateDocs,CheckLinks docClass class TL,TLArch,TLLayer,TLData,TLRender,TLUI timelineClass
π¦ New Artifact Parser
Adding support for a new Windows artifact β Follow the Artifact Parser path
π₯οΈ UI Enhancement
Improving the user interface β Follow the UI Enhancement path
π Bug Fix
Fixing a bug β Follow the Bug Fix path
π Documentation
Improving documentation β Follow the Documentation path
Getting Started
Development Environment Setup
Prerequisites:
- Python 3.12.4 or higher
- Git
- Windows operating system (recommended for testing artifacts)
Setting Up
- Fork and Clone
git clone https://github.com/Ghassan-elsman/Crow-Eye.git cd Crow-Eye - Run the Application
Simply run the main script. The application handles environment setup automatically.
python "Crow Eye.py"Automatic Setup Process:
- The script checks for a crow_eye_venv virtual environment
- If missing, it creates one automatically
- It installs all required dependencies
- Finally, it restarts itself within the virtual environment
Note: Run as administrator to ensure access to all system artifacts during live analysis.
Troubleshooting
- Python Version: Ensure you are using Python 3.12.4+
- Path Issues: Run from the root directory
- Permission Errors: Run terminal as Administrator
- Dependency Conflicts: Delete crow_eye_venv folder and restart
Contribution Guidelines
Types of Contributions
β¨ Feature Enhancements
Adding new features or improving existing ones. We welcome new artifact parsers and UI improvements.
π Bug Fixes
Fixing issues in existing functionality. Every bug fix makes Crow Eye more reliable.
π Documentation
Improving or adding documentation. Clear documentation is key to our mission.
π§ͺ Testing
Adding or improving tests to ensure code quality and reliability.
Coding Standards
- Follow PEP 8 guidelines
- Use meaningful variable and function names
- Add docstrings to all functions and classes
- Keep functions focused on a single responsibility
- Use type hints where possible
Pull Request Process
- Create a branch for your feature (
git checkout -b feature/name) - Make changes and test thoroughly
- Commit with clear messages (
feat: add new parser) - Push to your fork and submit a Pull Request
Pull Request Workflow
Commit Message Guidelines
Use the following format:
<type>: <subject>
<body>
Types:
- feat: A new feature
- fix: A bug fix
- docs: Documentation changes
- style: Code style changes (formatting)
- refactor: Code refactoring
- test: Adding or modifying tests
- chore: Build process or auxiliary tool changes
Testing
Manual Testing
When testing your changes, please verify:
- Test with different Windows versions (7/10/11)
- Verify artifact parsing with known test files
- Check UI rendering on different screen sizes
- Validate database operations and data integrity
- Test error handling with malformed or corrupted files
Contributing to Correlation Engine
The Correlation Engine is a sophisticated system for finding temporal and semantic relationships between forensic artifacts. Contributing to this component requires understanding of its architecture.
For detailed technical documentation: View Correlation Engine Documentation
Key Areas for Contribution
π§ Engine Development
Improve Time-Based or Identity-Based correlation engines
- Optimize correlation algorithms
- Enhance scoring mechanisms
- Add new correlation strategies
π¦ Feather Parsers
Add support for new forensic artifact types
- Create new artifact parsers
- Add column mappings
- Implement data transformations
π― Wing Configurations
Create new correlation rule templates
- Define correlation rules
- Set time windows
- Configure filters
π₯οΈ GUI Components
Enhance visualization and user interface
- Improve results visualization
- Add new timeline features
- Enhance pipeline management
Correlation Engine Contribution Workflow
Identify Component
Determine which correlation engine component you want to contribute to (Engine, Feather, Wing, GUI)
Review Documentation
Read the correlation engine documentation and understand the architecture
Set Up Development Environment
Clone the repository and set up the correlation engine development environment
Implement Changes
Make your changes following the coding standards and architecture patterns
Test Thoroughly
Test with multiple artifact types and correlation scenarios
Submit Pull Request
Create a PR with clear description of changes and test results
Getting Started with Correlation Engine Development
- Understand the Dual-Engine Architecture: Learn about Time-Based and Identity-Based engines
- Review the Directory Structure: Familiarize yourself with the 7 main directories
- Study Existing Code: Look at existing parsers, wings, and correlation logic
- Start Small: Begin with small improvements or bug fixes
- Ask Questions: Reach out if you need clarification on architecture or design decisions
Roadmap & Future Development
Planned enhancements for Crow Eye:
- Enhanced LNK file and Jump list structure parsing
- Advanced visualization of artifact timelines
- Reporting functionality for exporting findings
- Timeline Visualization feature (in progress)
- Correlation engine to correlate Windows Artifacts
- Enhanced search dialog with advanced filtering
- AI integration for analysis assistance
We welcome contributions in these areas, as well as new ideas for improving the project!
Get in Touch
Have questions? Feel free to reach out:
- GitHub Issues: Report bugs or request features
- Email: Ghassanelsman@gmail.com
Community Guidelines:
- Be respectful and inclusive
- Focus on constructive feedback
- Maintain a welcoming environment for all contributors