Skip to content

knowledgeC.db · -wal · Biome SEGB v1/v2

KnowledgeC Parser

Legen Sie die knowledgeC.db eines Mac (mit ihrer -wal) und Biome-Streams ab. App-Fokus und -Nutzung, Sperr- und Bildschirmsitzungen, Web-Aktivität und synchronisierte Geräte werden zu einer Zeitleiste, mit einer Ansicht „Wer saß an der Tastatur?“ und verständlich formulierten Befunden. Die Analyse läuft per WebAssembly in Ihrem Browser; nichts wird hochgeladen.

knowledgeC.db, ihre -wal und Biome-Streams hier ablegen

Dateien, ein Ordner oder ein ZIP: knowledgeC.db mit knowledgeC.db-wal (System- und Benutzerkopie), ~/Library/Biome oder eine komplette UAC-/Velociraptor-Sammlung. Behalten Sie die Ordnerstruktur bei: Biome-Stream-Name und Konto werden aus dem Pfad abgeleitet.

Das Beispiel ist synthetisch: ein fiktives MacBook FIN-MBP-03 (Benutzer dana.whitlock) mit zwei knowledgeC-Datenbanken und neun SEGB-Dateien.

Analyse im Browser. Nichts wird hochgeladen.

So kommen Sie an Ihre Daten

Vollständiger Sicherungsleitfaden

knowledgeC.db liegt an zwei Orten (System und pro Benutzer) und läuft im WAL-Modus; Biome führt pro Stream einen Ordner mit SEGB-Dateien. Kopieren Sie die Datenbanken mit ihrer -wal und die Biome-Ordner mit ihrer Struktur und legen Sie sie hier ab.

  1. Mit Festplattenvollzugriff, UAC oder Velociraptor kopieren
  2. Ordner oder ZIP hier ablegen
  3. Lokale Analyse: nichts verlässt den Browser

Geben Sie auf dem laufenden Mac zuerst Terminal „Festplattenvollzugriff“ (Systemeinstellungen › Datenschutz & Sicherheit › Festplattenvollzugriff) und fügen Sie dann diesen Block ein. Er kopiert Ihre knowledgeC.db mit -wal und -shm sowie Ihren Biome-Ordner und behält dabei die macOS-Struktur bei.

zsh · Terminal (Full Disk Access)
C=~/Desktop/kc_case; U="$C/Users/$USER/Library"
mkdir -p "$U/Application Support/Knowledge"
cp -p ~/Library/Application\ Support/Knowledge/knowledgeC.db* "$U/Application Support/Knowledge/"
ditto ~/Library/Biome "$U/Biome"
(cd "$U/Application Support/Knowledge" && shasum -a 256 knowledgeC.db*) > "$C/sha256.txt"

Alles landet in ~/Desktop/kc_case. Legen Sie diesen Ordner auf der Seite ab.

Oder packen Sie ihn als ZIP, um ihn vom Mac zu übertragen:

zsh
ditto -c -k --keepParent ~/Desktop/kc_case ~/Desktop/kc_case.zip

Die Systemkopie unter /private/var/db erfordert root und ist durch den Systemintegritätsschutz geschützt: Auf den meisten Macs scheitert der Versuch mit „Operation not permitted“. Deaktivieren Sie SIP dafür nicht; entnehmen Sie sie stattdessen einem Disk-Image.

zsh · sudo
S=~/Desktop/kc_case/private/var/db/CoreDuet/Knowledge; mkdir -p "$S"
sudo cp -p /private/var/db/CoreDuet/Knowledge/knowledgeC.db* "$S/"

Stolperfallen

  • „Operation not permitted“ bedeutet, dass der kopierenden App der Festplattenvollzugriff fehlt (oder der Pfad durch SIP geschützt ist), nicht dass die Datei fehlt.
  • Kopieren Sie knowledgeC.db, -wal und -shm in einem Durchgang und arbeiten Sie mit der Kopie: Das Öffnen des Originals mit sqlite3 oder einem DB-Browser kann einen WAL-Checkpoint auslösen.
  • In aktuellen macOS-Versionen wird der App-Fokus überwiegend in Biome (App.InFocus) erfasst: Eine spärlich gefüllte knowledgeC.db ist normal und kein Zeichen einer Löschung.
  • Die Aufbewahrung ist kurz (bei den meisten Streams einige Wochen): Sichern Sie früh.

Was dieses Tool liest

knowledgeC.db ist die SQLite-Datenbank von Apples CoreDuet-Framework. Sie erfasst „Pattern of Life“-Intervalle: eine App in Nutzung oder im Fokus, das Display an oder gesperrt, den Mac am Netzteil, besuchte Web-Domains, Mitteilungen. Jede Zeile von ZOBJECT gehört zu einem Stream wie /app/usage und hat einen Beginn, ein Ende und einen UTC-Versatz; deshalb beantwortet sie Fragen nach dem „Wie lange“ und „Wann“, die Dateisystemzeitstempel nicht beantworten können.

In neueren macOS-Versionen sind viele dieser Streams nach Biome gewandert, das jeden Stream als SEGB-Dateien mit Protobuf-Datensätzen speichert. KnowledgeC Parser liest beides in Ihrem Browser: die Datenbanken mit angewendetem Write-Ahead-Log und SEGB-Container v1 und v2 mit einem Decoder für die dokumentierten Streams und einer generischen Protobuf-Ansicht für die übrigen.

Artefakte und Strukturen

  • knowledgeC.db (System: /private/var/db/CoreDuet/Knowledge/; Benutzer: ~/Library/Application Support/Knowledge/; iOS: /private/var/mobile/Library/CoreDuet/Knowledge/): ZOBJECT verknüpft mit ZSOURCE (Bundle und Geräte-ID) und allen Spalten von ZSTRUCTUREDMETADATA, unabhängig von der Version.
  • knowledgeC.db-wal: Committete Frames werden angewendet (Prüfsummen und Salts werden geprüft); Zeilen, die nur in der WAL stehen, und Zeilen, die sie löscht, werden markiert.
  • Biome SEGB v1 (56-Byte-Header, 32-Byte-Datensatz-Header) und v2 (32-Byte-Header, Trailer-Index), Datensatzstatus (geschrieben, gelöscht, leer) und CRC32.
  • Dekodierte Biome-Streams: App.InFocus, App.WebUsage, Safari.*, ScreenTime.AppUsage, Notification.Usage, Device.Wireless.WiFi und Bluetooth, SystemSettings.SearchTerms, Device.Metadata, Backlight; jeder andere Stream nach Protobuf-Feldnummer.
  • Die Mac-Absolutzeit (Sekunden seit 2001-01-01 UTC) wird in UTC umgerechnet; ZSECONDSFROMGMT liefert die Lokalzeit des Geräts.

Welche Fragen es beantwortet

  • Welche Apps im Fokus oder in Nutzung waren, wann und wie lange, einschließlich erstmals genutzter Apps.
  • Wann der Mac entsperrt, das Display an und der Mac am Netzteil war: die Sitzungen, in denen jemand an der Tastatur gesessen haben könnte.
  • Welche Web-Domains und Seiten aus welcher App besucht wurden, einschließlich gelöschter, aber noch lesbarer Biome-Datensätze.
  • Welche Zeilen nur aus der WAL stammen und welche Zeilen oder Datensätze von anderen Geräten desselben Apple Accounts kommen.
  • Befunde für die Triage: Aktivität im Vorfallsfenster, Terminal-Nutzung, neue Apps, Filesharing-Websites, nächtliches Entsperren, fehlende -wal-Dateien.

Grenzen

  • Die Daten zeigen, dass der Mac genutzt wurde, nicht von wem, und sie erfassen weder Dateinamen noch Befehle.
  • Die Bedeutung der Biome-Nutzdaten stammt aus Community-Forschung (mac_apt, iLEAPP); nicht dekodierte Felder werden roh angezeigt. Validieren Sie mit Testdaten desselben OS-Builds.
  • Freelist-Seiten, ältere WAL-Generationen und nicht zugewiesener Speicher werden nicht gecarvt: Gelöschte Zeilen werden nur wiederhergestellt, wo die WAL sie noch enthält.
  • Die Verfügbarkeit von Spalten und Streams unterscheidet sich zwischen macOS- und iOS-Versionen; fehlende Streams sind kein Beweis für eine Löschung.
  • Sehr große Sammlungen (Hunderttausende Ereignisse) werden unterstützt, verlangsamen aber den Browser; die Tabelle zeigt Ereignisse seitenweise.

Die Dateien beschaffen

  • Geben Sie Terminal Festplattenvollzugriff und kopieren Sie ~/Library/Application Support/Knowledge/knowledgeC.db* und ~/Library/Biome unter Beibehaltung der Struktur (siehe „So kommen Sie an Ihre Daten“ oben).
  • Für die Systemdatenbank und /private/var/db/biome ist ein Image des Datenträgers oder des Data-Volumes dem Deaktivieren von SIP vorzuziehen.
  • UAC (Artefakte knowledgec und biome) und Velociraptor (MacOS.Search.FileFinder mit Upload) sichern sie in großem Maßstab; ergänzen Sie die -wal-Dateien, die UAC auslässt.

FAQ

Werden meine Dateien hochgeladen?

Nein. Der Parser ist in Rust geschrieben, nach WebAssembly kompiliert und läuft in einem Web Worker in Ihrem Browser. Dateien werden lokal gelesen, und nichts wird an einen Server gesendet.

Warum brauche ich die -wal-Datei?

knowledgeC.db läuft im WAL-Modus: Neue Zeilen werden zuerst in knowledgeC.db-wal geschrieben und später in die Hauptdatei übernommen. Ohne die -wal fehlen oft die Ereignisse der letzten Stunden oder Tage. Das Tool markiert jede Zeile, die nur in der WAL existiert.

Meine knowledgeC.db hat keine /app/inFocus-Zeilen. Wurde sie gelöscht?

Wahrscheinlich nicht. In aktuellen macOS-Versionen wird der App-Fokus überwiegend in Biome (App.InFocus) erfasst. Laden Sie auch ~/Library/Biome und prüfen Sie im Tab „Quellen“ das älteste Ereignis je Stream.

Beweist es, wer den Mac benutzt hat?

Nein. Es zeigt, wann der Mac entsperrt, wann das Display an war und welche Apps im Fokus waren. Für eine Zuordnung braucht es weitere Beweise, etwa Anmeldeprotokolle, die Aktivität anderer Geräte und Zeugenaussagen.

Welche macOS- und iOS-Versionen werden unterstützt?

Jede knowledgeC.db (Spalten werden über ihren Namen zugeordnet, Schemaänderungen zwischen Versionen werden daher toleriert) sowie SEGB v1 und v2. Biome-Streams ohne veröffentlichte Feldzuordnung werden mit ihren rohen Protobuf-Feldern angezeigt.

Anleitung: knowledgeC.db mit -wal und Biome-SEGB-Streams im kostenlosen Browser-Parser laden, Zeitraum setzen, Sitzungen prüfen, Zeitleiste exportieren.
Byte-genaue Referenz zu Biome SEGB v1 und v2: Header, Trailer, Record-Status, CRC32, Ausrichtung, Zeiten im Dateinamen und Protobuf-Feldnummern je Stream.
Wo knowledgeC.db und Biome-Streams unter macOS liegen und wie Sie sie mit Terminal, UAC, Velociraptor oder aus einem Abbild sichern, ohne das WAL zu verlieren.