Introduction

iLEAPP AI extends the capabilities of the standard iLEAPP tool with advanced artificial intelligence features that enhance digital forensic investigations. This document provides detailed information about these enhanced features and how they can be used to improve your forensic workflow.

Note: All enhanced features are available in both the GUI and CLI versions of iLEAPP AI. For information on how to access these features, please refer to the Integration Guide.

Artifact-Specific Analyzers

iLEAPP AI includes specialized analyzers for different types of iOS artifacts. These analyzers use artificial intelligence to extract insights and patterns that might not be immediately apparent through manual analysis.

Message Analyzer

The Message Analyzer provides advanced analysis of iOS messages and conversations, helping investigators understand communication patterns and extract valuable insights.

Key Capabilities:

  • Conversation Threading: Automatically organizes messages into coherent conversations, even across different communication channels.
  • Sentiment Analysis: Identifies the emotional tone of messages and tracks sentiment changes over time.
  • Topic Extraction: Identifies key topics and themes discussed in conversations.
  • Entity Recognition: Identifies people, places, organizations, dates, and other entities mentioned in messages.
  • Contact Correlation: Links contacts across different communication channels and identifies key relationships.
  • Language Detection: Identifies the language used in messages and provides translations when needed.
  • Pattern Detection: Identifies communication patterns, such as frequency, timing, and response rates.

Example Usage:

from ileapp_ai.analyzers import MessageAnalyzer
from ileapp_ai import LLMClient

llm_client = LLMClient(provider="openrouter", api_key="your_api_key")
message_analyzer = MessageAnalyzer(llm_client)

results = message_analyzer.analyze("/path/to/sms.db")
print(f"Found {len(results.conversations)} conversations")
print(f"Top topics: {results.top_topics}")
print(f"Overall sentiment: {results.overall_sentiment}")

App Usage Analyzer

The App Usage Analyzer examines iOS app usage data to identify patterns, preferences, and behaviors that can provide valuable context for investigations.

Key Capabilities:

  • Usage Patterns: Identifies when and how often specific apps are used.
  • Screen Time Analysis: Analyzes total screen time and distribution across different app categories.
  • App Transitions: Tracks sequences of app usage to identify common workflows.
  • Behavioral Profiling: Creates profiles of user behavior based on app usage patterns.
  • Anomaly Detection: Identifies unusual app usage that deviates from established patterns.
  • Category Analysis: Groups apps by category to understand user interests and priorities.
  • Temporal Analysis: Examines how app usage changes over time, including daily, weekly, and monthly patterns.

Example Usage:

from ileapp_ai.analyzers import AppUsageAnalyzer
from ileapp_ai import LLMClient

llm_client = LLMClient(provider="openrouter", api_key="your_api_key")
app_usage_analyzer = AppUsageAnalyzer(llm_client)

results = app_usage_analyzer.analyze("/path/to/app_usage.db")
print(f"Most used apps: {results.most_used_apps}")
print(f"Daily usage pattern: {results.daily_pattern}")
print(f"Unusual activity detected: {results.anomalies}")

iTunes Music Analyzer

The iTunes Music Analyzer examines music listening history and preferences, providing insights into user interests and activities.

Key Capabilities:

  • Listening Patterns: Identifies when and how often music is played.
  • Genre Preferences: Analyzes preferred music genres and how they change over time.
  • Artist Analysis: Identifies favorite artists and listening frequency.
  • Playlist Analysis: Examines created playlists for themes and patterns.
  • Purchase History: Analyzes music purchases and downloads.
  • Temporal Analysis: Examines how music preferences change over time.
  • Mood Analysis: Infers emotional states based on music choices.

Example Usage:

from ileapp_ai.analyzers import iTunesMusicAnalyzer
from ileapp_ai import LLMClient

llm_client = LLMClient(provider="openrouter", api_key="your_api_key")
itunes_analyzer = iTunesMusicAnalyzer(llm_client)

results = itunes_analyzer.analyze("/path/to/itunes_library.db")
print(f"Top genres: {results.top_genres}")
print(f"Favorite artists: {results.favorite_artists}")
print(f"Listening schedule: {results.listening_schedule}")

Chrome History Analyzer

The Chrome History Analyzer examines iOS Chrome browsing history to identify web usage patterns, interests, and activities.

Key Capabilities:

  • Browsing Patterns: Identifies when and how often the web is browsed.
  • Domain Categorization: Categorizes visited websites by type (e.g., social media, news, shopping).
  • Search Analysis: Analyzes search queries for topics and interests.
  • Temporal Analysis: Examines how browsing behavior changes over time.
  • Interest Profiling: Creates profiles of user interests based on browsing history.
  • Session Analysis: Identifies browsing sessions and the flow between websites.
  • Bookmark Analysis: Examines bookmarked sites for long-term interests.

Example Usage:

from ileapp_ai.analyzers import ChromeHistoryAnalyzer
from ileapp_ai import LLMClient

llm_client = LLMClient(provider="openrouter", api_key="your_api_key")
chrome_analyzer = ChromeHistoryAnalyzer(llm_client)

results = chrome_analyzer.analyze("/path/to/chrome_history.db")
print(f"Top domains: {results.top_domains}")
print(f"Search interests: {results.search_interests}")
print(f"Browsing schedule: {results.browsing_schedule}")

Timeline Visualization

iLEAPP AI includes advanced timeline visualization capabilities that help investigators understand the chronological sequence of events across different artifact types.

Interactive Timeline

The timeline visualization tool creates interactive timelines that combine events from different artifact types, providing a comprehensive view of user activities.

Key Capabilities:

  • Multi-Artifact Integration: Combines events from messages, app usage, location data, browser history, and more into a single timeline.
  • Interactive Filtering: Allows filtering by time range, event type, or keyword.
  • Event Clustering: Automatically groups related events to identify patterns and sequences.
  • Zoom and Pan: Supports zooming in on specific time periods and panning through the timeline.
  • Event Details: Provides detailed information about each event when selected.
  • Export Options: Allows exporting the timeline as HTML, PDF, or image files.
  • Annotation: Supports adding investigator notes and annotations to events.

Example Usage:

from ileapp_ai.visualization import TimelineGenerator
from ileapp_ai import Analyzer, LLMClient

llm_client = LLMClient(provider="openrouter", api_key="your_api_key")
analyzer = Analyzer(llm_client)

# Analyze multiple artifacts
message_results = analyzer.analyze_artifact("/path/to/sms.db", "messages")
app_results = analyzer.analyze_artifact("/path/to/app_usage.db", "app_usage")
browser_results = analyzer.analyze_artifact("/path/to/chrome_history.db", "browser_history")

# Combine events from all artifacts
all_events = message_results.events + app_results.events + browser_results.events

# Generate timeline
timeline_generator = TimelineGenerator()
timeline = timeline_generator.generate_timeline(
    events=all_events,
    output_path="/path/to/output/timeline.html"
)

print(f"Timeline generated at: {timeline.path}")

Automated Report Generation

iLEAPP AI includes advanced report generation capabilities that create comprehensive forensic reports from analysis results.

AI-Enhanced Reports

The report generation system creates detailed, professional reports that include analysis results, visualizations, and AI-generated insights.

Key Capabilities:

  • Template-Based Generation: Uses customizable templates to create consistent, professional reports.
  • Executive Summaries: Automatically generates concise summaries of key findings.
  • Visualization Integration: Embeds charts, graphs, and timelines directly in the report.
  • Natural Language Insights: Includes AI-generated narrative descriptions of patterns and findings.
  • Multiple Formats: Supports HTML, PDF, and JSON output formats.
  • Customizable Sections: Allows selecting which sections and artifacts to include in the report.
  • Chain of Custody: Includes chain of custody information and analysis metadata.

Example Usage:

from ileapp_ai import Analyzer, LLMClient
from ileapp_ai.reporting import ReportGenerator

llm_client = LLMClient(provider="openrouter", api_key="your_api_key")
analyzer = Analyzer(llm_client)

# Analyze case with multiple artifacts
case_results = analyzer.analyze_case(
    case_path="/path/to/case_directory",
    artifacts=["messages", "app_usage", "browser_history"],
    analysis_depth="comprehensive"
)

# Generate report
report_generator = ReportGenerator()
report = report_generator.generate_report(
    analysis_results=case_results,
    output_format="pdf",
    output_path="/path/to/output/report.pdf",
    options={
        "include_executive_summary": True,
        "include_visualizations": True,
        "include_raw_data": False,
        "include_chain_of_custody": True
    }
)

print(f"Report generated at: {report.path}")

Appendices Generation

iLEAPP AI can automatically generate comprehensive appendices that provide additional context and reference materials for forensic reports.

Comprehensive Appendices

The appendices generator creates detailed reference materials that supplement the main forensic report.

Key Capabilities:

  • Statistical Summaries: Provides detailed statistics for each artifact type.
  • Entity Indexes: Creates indexes of people, places, organizations, and other entities mentioned in the data.
  • Timeline References: Includes detailed chronological listings of events.
  • Technical Details: Documents technical information about the extraction and analysis process.
  • Glossary: Automatically generates a glossary of technical terms used in the report.
  • Methodology Documentation: Describes the methodology used for extraction and analysis.
  • Cross-References: Creates cross-references between related items in different artifacts.

Example Usage:

from ileapp_ai.reporting import AppendicesGenerator
from ileapp_ai import Analyzer, LLMClient

llm_client = LLMClient(provider="openrouter", api_key="your_api_key")
analyzer = Analyzer(llm_client)

# Analyze case
case_results = analyzer.analyze_case(
    case_path="/path/to/case_directory",
    artifacts=["messages", "app_usage", "browser_history"]
)

# Generate appendices
appendices_generator = AppendicesGenerator()
appendices = appendices_generator.generate_appendices(
    analysis_results=case_results,
    output_path="/path/to/output/appendices.pdf",
    options={
        "include_statistics": True,
        "include_entity_indexes": True,
        "include_timeline_references": True,
        "include_technical_details": True,
        "include_glossary": True,
        "include_methodology": True
    }
)

print(f"Appendices generated at: {appendices.path}")

Security Features

iLEAPP AI includes advanced security features to maintain forensic integrity and protect sensitive data.

Forensic Security

The security features ensure the integrity and confidentiality of forensic data throughout the analysis process.

Key Capabilities:

  • Chain of Custody Tracking: Maintains a detailed record of all actions performed on forensic data.
  • Audit Logging: Logs all analysis activities with timestamps and user information.
  • Data Encryption: Supports encryption of sensitive data at rest and in transit.
  • Hash Verification: Verifies file hashes to ensure data integrity.
  • Access Controls: Implements role-based access controls for multi-user environments.
  • Local LLM Support: Supports local LLM models for sensitive investigations where data cannot leave the local environment.
  • Data Minimization: Implements data minimization techniques when using external APIs.

Example Usage:

from ileapp_ai.security import ChainOfCustody, enable_audit_logging, encrypt_data
from ileapp_ai import Analyzer, LLMClient

# Enable audit logging
enable_audit_logging(log_path="/path/to/audit.log")

# Initialize chain of custody
chain_of_custody = ChainOfCustody(
    case_id="CASE-2025-001",
    investigator="John Doe"
)

# Initialize client with local model for sensitive data
llm_client = LLMClient(
    provider="local",
    model="llama-3-70b"
)

# Initialize analyzer
analyzer = Analyzer(llm_client)

# Log the analysis action
action_id = chain_of_custody.log_action(
    action="Analyzing messages",
    artifact="/path/to/sms.db"
)

# Encrypt sensitive data
encrypted_path = encrypt_data(
    file_path="/path/to/sms.db",
    password="secure_password",
    output_path="/path/to/encrypted_sms.db"
)

# Perform the analysis
results = analyzer.analyze_artifact(
    artifact_path=encrypted_path,
    artifact_type="messages",
    options={"encrypted": True, "password": "secure_password"}
)

# Log the completion of the analysis
chain_of_custody.log_action(
    action="Analysis completed",
    artifact="/path/to/sms.db",
    details={"action_id": action_id, "findings": len(results.findings)}
)

User Dashboard

iLEAPP AI includes a user dashboard for tracking analysis progress and managing forensic cases.

Interactive Dashboard

The user dashboard provides a centralized interface for managing forensic cases, tracking analysis progress, and accessing reports.

Key Capabilities:

  • Case Management: Organizes forensic data and analysis results by case.
  • Progress Tracking: Shows real-time progress of ongoing analyses.
  • Result Filtering: Allows filtering and searching of analysis results.
  • Report Access: Provides easy access to generated reports and visualizations.
  • Notification System: Notifies users when analyses are complete or require attention.
  • User Management: Supports multiple users with different roles and permissions.
  • Activity History: Maintains a history of user activities and analyses.

Example Usage:

from ileapp_ai.dashboard import Dashboard

# Initialize the dashboard
dashboard = Dashboard(port=8080)

# Start the dashboard server
dashboard.start()

print(f"Dashboard running at: http://localhost:8080")

# The dashboard can also be accessed programmatically
dashboard.add_case(
    case_id="CASE-2025-001",
    case_name="John Doe Investigation",
    description="Investigation of suspicious activity on John Doe's iPhone"
)

dashboard.add_analysis_task(
    case_id="CASE-2025-001",
    task_name="Message Analysis",
    artifact_path="/path/to/sms.db",
    artifact_type="messages",
    analysis_depth="comprehensive"
)

# Check task status
status = dashboard.get_task_status(
    case_id="CASE-2025-001",
    task_name="Message Analysis"
)

print(f"Task status: {status}")

Integration Options

iLEAPP AI supports multiple integration options to fit different forensic workflows and requirements.

Flexible Integration

The integration options allow iLEAPP AI to be used in various forensic workflows and environments.

Key Capabilities:

  • Multiple LLM Providers: Supports OpenRouter, Anthropic, OpenAI, and local LLM models.
  • Plugin Architecture: Allows extending iLEAPP AI with custom analyzers and processors.
  • API Integration: Provides a comprehensive API for integration with other forensic tools.
  • Command-Line Interface: Supports automation and scripting through a powerful CLI.
  • Graphical User Interface: Provides an intuitive GUI for interactive analysis.
  • Web Interface: Offers a web-based interface for remote access and collaboration.
  • Standalone Mode: Can be used as a standalone tool or integrated with the standard iLEAPP tool.

Example Usage:

# Using different LLM providers
from ileapp_ai import LLMClient, Analyzer

# OpenRouter
openrouter_client = LLMClient(
    provider="openrouter",
    api_key="your_openrouter_api_key",
    model="anthropic/claude-3-opus-20240229"
)

# Anthropic
anthropic_client = LLMClient(
    provider="anthropic",
    api_key="your_anthropic_api_key",
    model="claude-3-opus-20240229"
)

# OpenAI
openai_client = LLMClient(
    provider="openai",
    api_key="your_openai_api_key",
    model="gpt-4"
)

# Local model
local_client = LLMClient(
    provider="local",
    model="llama-3-70b"
)

# Create analyzers with different clients
openrouter_analyzer = Analyzer(openrouter_client)
anthropic_analyzer = Analyzer(anthropic_client)
openai_analyzer = Analyzer(openai_client)
local_analyzer = Analyzer(local_client)

Note: For detailed information on how to use these enhanced features, please refer to the API Reference and Integration Guide.