A web-based application for iOS digital forensic analysis, built on the VDF iOS Forensics Toolkit.
- Web-based Interface: Simple, clean UI for forensic analysis
- iOS Backup Analysis: Analyze iTunes/Finder backups for artifacts
- Real-time Progress: Live progress tracking for long-running operations
- Threat Intelligence: Automatic correlation with threat indicators
- Results Export: Download analysis results in JSON format
- Job Management: Track multiple analysis jobs simultaneously
The easiest way to test the application:
# Run the development server with mock data
python start_app.pyThis will:
- Start a development server on
http://localhost:8080 - Automatically open your browser
- Provide a working UI with mock forensic data for testing
For production use with real forensic capabilities:
# Install dependencies
pip install -r requirements-app.txt
# Run the full application
python run_app.pyMVT-Implementation/
├── app/ # Main application package
│ ├── api/ # REST API endpoints
│ │ ├── main.py # FastAPI application
│ │ └── __init__.py
│ ├── services/ # Business logic layer
│ │ ├── forensic_service.py # Main forensic service
│ │ └── __init__.py
│ ├── core/ # Core utilities
│ │ ├── config.py # Application configuration
│ │ ├── exceptions.py # Custom exceptions
│ │ └── __init__.py
│ ├── static/ # Frontend files
│ │ └── index.html # Main UI
│ └── __init__.py
├── src/ # Forensic toolkit (refactored)
├── start_app.py # Development server launcher
├── run_app.py # Production app launcher
└── requirements-app.txt # Application dependencies
From Local Path:
- Enter the path to an iOS backup directory
- Optionally provide a password for encrypted backups
- Click "Start Analysis"
From File Upload:
- Select an iOS backup file (.zip, .tar, .gz)
- Optionally provide a password
- Click "Upload & Analyze"
- View real-time progress in the progress bar
- Check job status in the "Job Status" panel
- All jobs are tracked with unique IDs
- Completed jobs show a "View Results" button
- Results include:
- Total artifacts found
- Number of threats detected
- Detailed forensic findings
- Threat intelligence correlations
- Click "Download Full Results" for complete JSON export
- Results include job metadata and detailed findings
The application provides a REST API:
GET /- Main application interfacePOST /api/analysis/start- Start backup analysisPOST /api/analysis/upload- Upload and analyze backupGET /api/jobs- List all jobsGET /api/jobs/{job_id}/status- Get job statusGET /api/jobs/{job_id}/results- Get job resultsGET /api/jobs/{job_id}/download- Download results fileDELETE /api/jobs/{job_id}- Cancel job
VDF_DEBUG=true- Enable debug modeVDF_API_HOST=localhost- API hostVDF_API_PORT=8080- API portVDF_OUTPUT_DIR=./forensic_output- Output directoryVDF_MAX_STORAGE_GB=10- Maximum storage limit
Edit app/core/config.py to modify:
- UI theme and appearance
- Upload size limits
- Storage locations
- Security settings
- Create extractor in
src/tools/ios/utils/ - Inherit from
IOSForensicExtraction - Implement
execute_extraction()method - Add to forensic service in
app/services/forensic_service.py
- Modify
app/static/index.htmlfor UI changes - CSS is embedded for simplicity
- JavaScript handles API communication
- The application runs locally by default
- No external network access required
- Forensic data stays on your system
- Optional authentication can be enabled in config
- Port already in use: Change
SERVER_PORTin config or kill existing process - Missing dependencies: Run
pip install -r requirements-app.txt - Path issues: Use absolute paths for backup directories
- Large files: Check
max_upload_size_mbin configuration
- Application logs appear in console output
- Set
VDF_DEBUG=truefor verbose logging - Job progress is logged in real-time
-
Start the application:
python start_app.py
-
Open browser to
http://localhost:8080 -
Test with mock data or provide real iOS backup path
-
Monitor progress and view results when complete
The application provides a complete forensic analysis workflow with a user-friendly interface for both technical and non-technical users.