Ga naar hoofdinhoud

Zo vraag je gegevens op uit SQLite- en Plist-bestanden van een iPhone-back-up

Aidan Fitzpatrick

Gepubliceerd op 8 maart 2018· Bijgewerkt op 5 januari 2021

Cover image for: Zo vraag je gegevens op uit SQLite- en Plist-bestanden van een iPhone-back-up

Sommige gebruikers willen de onbewerkte bestanden in hun back-ups misschien rechtstreeks bewerken met de expertmodus. Die bestaan vaak uit SQLite-databasebestanden (.sqlite3, .sqllitedb en .db) of Plist-bestanden (meestal .plist).

iPhone Backup Extractor heeft een ingebouwde Plist-editor, en gebruikers kunnen hun gegevens automatisch exporteren naar de formaten PDF, HTML, VCard, ICAL, VCF of CSV voor eenvoudige toegang. Wie gegevens uit deze bestanden wil halen, heeft echter een SQLite-databaseclient nodig.

Hoe kan ik werken met SQLite-databases?

Gebruikers kunnen een van deze drie toepassingen proberen:

  • SQLiteFlow (betaald, macOS en iOS). SQLiteFlow is ons favoriete SQLite-hulpprogramma voor macOS.
  • Base 2 (betaald, macOS). Base is een van onze tweede favorieten onder de SQLite-hulpprogramma’s voor macOS en is beschikbaar als directe download en als app in de App Store.
  • DB Browser for SQLite (gratis, macOS en Windows). DB Browser heette vroeger SQLite Database Browser. Het is ons aanbevolen hulpprogramma voor Windows en het is gratis. Er is ook een versie voor macOS.

Hoe kan ik rechtstreeks werken met de databasebestanden van Apple?

Om bijvoorbeeld handmatig bij contactgegevens te komen, extraheer je Libray/AddressBook/AddressBook.sqllitedb en open je het geëxtraheerde bestand met een SQLite-viewer. Kies het tabblad „Execute SQL” en plak dit in het veld „SQL string”:

SELECT ABPerson.first, ABPerson.last, ABMultiValue.value
FROM ABPerson, ABMultiValue
WHERE ABMultiValue.record_id = ABPerson.ROWID

Als je op de knop Execute Query drukt, zou je de volledige contactenlijst moeten zien in het veld „Data returned”.

Om bij sms-gegevens te komen, extraheer je Libray/SMS/SMS.db, open je het geëxtraheerde bestand met de SQLite-viewer, kies je het tabblad Browse data en selecteer je vervolgens message in het keuzemenu Table. Nadat je op de knop met het vergrootglas hebt geklikt, zouden gebruikers hun volledige sms-geschiedenis moeten zien in het veld „Data returned”.

Een van onze gebruikers vond de onderstaande query handig, dus we nemen hem hier op voor onze gebruikers. Houd er rekening mee dat databaseformaten tussen iOS-versies veranderen, dus deze queries moeten na verloop van tijd vaak worden aangepast.

SELECT ROWID,
  ABPerson.first,
  ABPerson.last,
  ABPerson.Organization AS organization,
  ABPerson.Department AS department,
  DATETIME(ABPerson.Birthday + STRFTIME('%s', '2001-01-01 00:00:00'), 'unixepoch', 'localtime') AS Birthday,
  ABPerson.JobTitle as jobtitle,
  ABPerson.Organization,
  ABPerson.Department,
  ABPerson.Note,
  ABPerson.Nickname,
  DATETIME(ABPerson.CreationDate + STRFTIME('%s', '2001-01-01 00:00:00'), 'unixepoch', 'localtime') AS Created,
  DATETIME(ABPerson.ModificationDate + STRFTIME('%s', '2001-01-01 00:00:00'), 'unixepoch', 'localtime') AS Modified,
  ( SELECT value FROM ABMultiValue
    WHERE property = 3 AND record_id = ABPerson.ROWID AND label = (
      SELECT ROWID FROM ABMultiValueLabel
      WHERE value = '_$!<Work>!$_'
    )
  ) AS phone_work,
  ( SELECT value FROM ABMultiValue
    WHERE property = 3 AND record_id = ABPerson.ROWID AND label = (
      SELECT ROWID FROM ABMultiValueLabel
      WHERE value = '_$!<Mobile>!$_'
    )
  ) AS phone_mobile,
  ( SELECT value FROM ABMultiValue
    WHERE property = 3 AND record_id = ABPerson.ROWID AND label = (
      SELECT ROWID FROM ABMultiValueLabel
      WHERE value = '_$!<Home>!$_'
    )
  ) AS phone_home,
  ( SELECT value FROM ABMultiValue
    WHERE property = 4 AND record_id = ABPerson.ROWID AND label IS null
  ) AS email,
  ( SELECT value FROM ABMultiValueEntry
    WHERE parent_id IN (
      SELECT ROWID FROM ABMultiValue WHERE record_id = ABPerson.ROWID
    ) AND key = (
      SELECT ROWID FROM ABMultiValueEntryKey WHERE lower(value) = 'street'
    )
  ) AS address,
  ( SELECT value FROM ABMultiValueEntry
    WHERE parent_id IN (
      SELECT ROWID FROM ABMultiValue WHERE record_id = ABPerson.ROWID
    ) AND key = (
      SELECT ROWID FROM ABMultiValueEntryKey WHERE lower(value) = 'city'
    )
  ) AS city
FROM ABPerson
ORDER BY ABPerson.first

We houden hier een lijst bij van sleutelbestanden voor verschillende apps.

De datum- en tijdvelden worden alleen als getallen weergegeven. Hoe kan ik die interpreteren?

Je hebt misschien moeite met het interpreteren van een aantal velden in de databases. Vergeet niet dat iPhone Backup Extractor de gegevens automatisch voor je kan extraheren. Werk je liever zelf, dan zie je dat datums worden weergegeven als het aantal seconden sinds 2001-01-01 of 1970-01-01, afhankelijk van de positie van het datumveld. In Excel kun je een formule gebruiken zoals =1/1/2001 + A1/60/60/24, waarbij A1 je tijdgegevens zijn. Mogelijk moet je de waarde ook aanpassen aan je lokale tijdzone.


Over de auteur

Aidan Fitzpatrick

Oprichter, CEO

Aidan richtte Reincubate op in 2008, nadat hij ’s werelds eerste tool voor iOS-gegevensherstel had gebouwd. Sindsdien heeft hij het bedrijf uitgebouwd tot een van ’s werelds toonaangevende ISV’s, in samenwerking met bedrijven als AMD, Qualcomm en HP om betekenisvolle machine-learning-functies voor videosoftware te ontwikkelen, met als uithangbord het Camo-app-ecosysteem. Onder Aidans leiding heeft Reincubate vier keer de hoogste zakelijke onderscheiding van het VK gewonnen, een plek veroverd op de 100 Tech-lijst van The Sunday Times, en erkenning in de sector gekregen met nominaties voor de Apple Design Award en de App Store Awards. Zijn werk en technieken worden vaak aangehaald in wetenschappelijke publicaties over mobiele forensica, en hij is uitgenodigd om te spreken op evenementen georganiseerd door bedrijven als Google, Microsoft en Snap.


Gerelateerde artikelen

Hulp nodig?

We streven ernaar om alle berichten binnen één werkdag te beantwoorden.

support@reincubate.com
Logo van de King's Award for Enterprise

King's Award for Enterprise: Reincubate heeft vier keer de hoogste officiële zakelijke onderscheiding van het Verenigd Koninkrijk gewonnen, het meest recent als erkenning voor de uitzonderlijke groei van het bedrijf in de afgelopen drie jaar.

Onze relaties met gebruikers en partners staan centraal in onze waarden en de producten die we maken. Bekijk onze reviews om te horen wat zij over ons te zeggen hebben.

ISO 27001-gecertificeerd door Centre for Assessment, geaccrediteerd door UKAS

© 2008-2026 Reincubate Ltd. Alle rechten voorbehouden. Ingeschreven in Engeland en Wales onder nr. 5189175, btw-nummer GB151788978. Camo®, Streamlight® en Reincubate® zijn geregistreerde handelsmerken. Octrooien aangevraagd.

Hulp