Skip to content

Add Safari (macOS) parser - #87

Open
Gear-I wants to merge 6 commits into
abrignoni:mainfrom
Gear-I:Safaribrowsing
Open

Add Safari (macOS) parser#87
Gear-I wants to merge 6 commits into
abrignoni:mainfrom
Gear-I:Safaribrowsing

Conversation

@Gear-I

@Gear-I Gear-I commented Aug 23, 2026

Copy link
Copy Markdown

Summary

  • Adds `scripts/artifacts/safariBrowsing.py`, six new artifacts under category "Safari (macOS)": History, Bookmarks, Top Sites, Recently Closed Tabs, iCloud Tabs (CloudTabs.db), and Last Session (open tabs).
  • No changes to any existing file -- pure drop-in, picked up automatically by the plugin loader.

Validation

Checked against a real `~/Library/Safari` extracted from Josh Hickman's public macOS Big Sur test image (thisisdfir persona, acquired 2021-02-20), not written from documentation alone:

  • History.db: 22 history items / 27 visits, `visit_time` confirmed as Mac Absolute Time in seconds since 2001-01-01.
  • Bookmarks.plist: 7 real bookmarks-bar entries; confirmed leaf titles live at `URIDictionary.title`, not the top-level `Title` key.
  • TopSites.plist: 12 entries, built-in-vs-earned flagged.
  • RecentlyClosedTabs.plist / LastSession.plist: real closed-window and open-tab data recovered; per-tab `SessionState` binary blob intentionally left undecoded (size reported only).
  • CloudTabs.db: 2 synced tabs from 1 real device joined via `cloud_tab_devices`.

Co-Author by Claude Sonnet 5

@abrignoni

abrignoni commented Aug 25, 2026

Copy link
Copy Markdown
Owner

Test data is now included for every changed artifact module. Thank you!

@abrignoni abrignoni added the needs-test-data Artifact PR without test data for the changed modules label Aug 25, 2026
Gear-I added 4 commits August 30, 2026 10:21
Corrected:

"sample_data": {
            "macos_bigsur_thisisdfir": "macOS Big Sur (Josh Hickman / "
                "thisisdfir public test image, acquired 2021-02-20), "
                "RecentlyClosedTabs.plist | 2 closed windows, 1 tab each "
                "(start page favorites://, apple.com/icloud)",
- Cut case1 fixtures for safaribrowsing from the same Big Sur
  (11.2.1, build 20D74) public test image used for Keychains
  and iMessage
- Validates all six artifacts with real data: safariHistory (27
  visits), safariBookmarks (7 bookmarks), safariTopSites (12
  entries), safariRecentlyClosedTabs (2 tabs), safariCloudTabs (2
  synced tabs), safariLastSession (2 tabs)
- No zero-result artifacts in this case; full module coverage
)"
@github-actions github-actions Bot removed the needs-test-data Artifact PR without test data for the changed modules label Aug 30, 2026
@Gear-I

Gear-I commented Aug 30, 2026

Copy link
Copy Markdown
Author

Real-device test data for Safari module

Added case1 test fixtures for safaribrowsing, cut from the same macOS Big Sur image used for the Keychains and iMessage fixtures.

Source: Josh Hickman's public macOS Big Sur forensic test image, macOS 11.2.1 (build 20D74), test account thisisdfir.

Validation results — all six artifacts returned real data:

  • safariHistory: 27 visits
  • safariBookmarks: 7 bookmarks
  • safariTopSites: 12 entries
  • safariRecentlyClosedTabs: 2 tabs
  • safariCloudTabs (CloudTabs.db): 2 synced tabs
  • safariLastSession: 2 tabs

No known gaps for this case - full module coverage confirmed against real data.

Source files: History.db/History.db-shm, Bookmarks.plist, TopSites.plist, RecentlyClosedTabs.plist, CloudTabs.db/CloudTabs.db-shm, LastSession.plist under Users/thisisdfir/Library/Safari/.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants