Aller au contenu principal

Comment interroger les données des fichiers SQLite et Plist d’une sauvegarde iPhone

Aidan Fitzpatrick

Publié le 8 mars 2018· Mis à jour le 5 janvier 2021

Cover image for: Comment interroger les données des fichiers SQLite et Plist d’une sauvegarde iPhone

Certains utilisateurs peuvent souhaiter manipuler directement les fichiers bruts stockés dans leurs sauvegardes avec le mode Expert. Il s’agit souvent de bases de données SQLite (.sqlite3, .sqllitedb et .db) ou de fichiers Plist (généralement .plist).

iPhone Backup Extractor intègre un éditeur de Plist, et ses utilisateurs peuvent exporter automatiquement leurs données aux formats PDF, HTML, VCard, ICAL, VCF ou CSV pour y accéder facilement. Toutefois, pour extraire des données de ces fichiers, il faut un client de base de données SQLite.

Comment travailler avec des bases de données SQLite ?

Vous pouvez essayer l’une de ces trois applications :

  • SQLiteFlow (payant, macOS et iOS). SQLiteFlow est notre outil SQLite de prédilection sur macOS.
  • Base 2 (payant, macOS). Base est l’un de nos outils SQLite préférés sur macOS, juste après SQLiteFlow ; il est disponible en téléchargement direct et sous forme d’app de l’App Store.
  • DB Browser for SQLite (gratuit, macOS et Windows). DB Browser s’appelait autrefois SQLite Database Browser. C’est l’outil que nous recommandons sous Windows, et il est gratuit. Une version pour macOS est également proposée.

Comment travailler directement avec les fichiers de base de données d’Apple ?

Par exemple, pour accéder manuellement aux données des contacts, extrayez Libray/AddressBook/AddressBook.sqllitedb, puis ouvrez le fichier extrait avec un lecteur SQLite. Dans l’onglet « Execute SQL », collez ceci dans le champ « SQL string » :

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

En cliquant sur le bouton Execute Query, vous devriez obtenir la liste complète des contacts dans le champ « Data returned ».

Pour accéder aux données des SMS, extrayez Libray/SMS/SMS.db, ouvrez le fichier extrait avec le lecteur SQLite, choisissez l’onglet Browse data, puis sélectionnez message dans le menu déroulant Table. En cliquant sur le bouton en forme de loupe, vous devriez voir l’historique complet de vos SMS dans le champ « Data returned ».

L’un de nos utilisateurs a trouvé la requête ci-dessous utile ; nous l’incluons donc ici pour nos utilisateurs. Gardez à l’esprit que les formats de base de données changent d’une version d’iOS à l’autre : ces requêtes doivent donc souvent évoluer au fil du temps.

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

Nous tenons à jour ici une liste des fichiers clés de diverses apps.

Les champs de date et d’heure s’affichent sous forme de nombres : comment les interpréter ?

Vous aurez peut-être du mal à interpréter plusieurs champs des bases de données. N’oubliez pas qu’iPhone Backup Extractor peut extraire automatiquement les données pour vous. Mais si vous procédez seul, vous constaterez que les dates sont représentées soit par le nombre de secondes écoulées depuis 2001-01-01, soit par 1970-01-01, selon la position du champ de date. Dans Excel, vous pouvez utiliser une formule comme =1/1/2001 + A1/60/60/24, où A1 correspond à vos données de temps. Vous devrez peut-être aussi ajuster la valeur en fonction de votre fuseau horaire.


À propos de l'auteur

Aidan Fitzpatrick

Fondateur, PDG

Aidan a fondé Reincubate en 2008, après avoir créé le premier outil de récupération de données iOS au monde. Depuis, il a fait de l’entreprise l’un des meilleurs éditeurs de logiciels indépendants au monde, travaillant avec des entreprises telles qu’AMD, Qualcomm et HP pour développer des fonctionnalités de machine learning pertinentes pour les logiciels vidéo, à l’image de l’écosystème d’applications Camo. Sous la direction d’Aidan, Reincubate a remporté à quatre reprises la plus haute distinction économique du Royaume-Uni, s’est vu attribuer une place dans le classement 100 Tech du Sunday Times, et a été reconnu par l’industrie avec des nominations aux Apple Design Award et à l’App Store. Ses travaux et ses techniques sont souvent cités dans des articles universitaires consacrés à l’investigation numérique mobile, et il a été invité à intervenir lors d’événements organisés par des entreprises comme Google, Microsoft et Snap.


Articles liés

Besoin d'aide ?

Nous nous efforçons de répondre à tous les messages sous un jour ouvré.

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

King's Award for Enterprise : Reincubate a remporté quatre fois la plus haute distinction officielle des entreprises du Royaume-Uni, la plus récente en reconnaissance de la croissance exceptionnelle de l'entreprise au cours des trois dernières années.

Nos relations avec les utilisateurs et les partenaires sont au cœur de nos valeurs et des produits que nous créons. Consultez nos avis pour découvrir ce qu’ils disent de nous.

Certifié ISO 27001 par le Centre for Assessment, accrédité par l'UKAS

© 2008-2026 Reincubate Ltd. Tous droits réservés. Immatriculée en Angleterre et au pays de Galles sous le n° 5189175, TVA GB151788978. Camo®, Streamlight® et Reincubate® sont des marques déposées. Brevets en instance.

Aide