Vai al contenuto principale

Come interrogare i dati dei file SQLite e Plist dei backup di iPhone

Aidan Fitzpatrick

Pubblicato il 8 marzo 2018· Aggiornato il 5 gennaio 2021

Cover image for: Come interrogare i dati dei file SQLite e Plist dei backup di iPhone

Alcuni utenti potrebbero voler manipolare direttamente i file grezzi salvati nei backup usando la modalità Expert. Spesso si tratta di database SQLite (.sqlite3, .sqllitedb e .db) o di file Plist (di solito .plist).

iPhone Backup Extractor include un editor di Plist integrato e i suoi utenti possono esportare automaticamente i dati nei formati PDF, HTML, VCard, ICAL, VCF o CSV per accedervi facilmente. Tuttavia, chi vuole estrarre dati da questi file avrà bisogno di un client per database SQLite.

Come posso lavorare con i database SQLite?

Puoi provare una qualsiasi di queste tre applicazioni:

  • SQLiteFlow (a pagamento, macOS e iOS). SQLiteFlow è lo strumento SQLite per macOS che preferiamo.
  • Base 2 (a pagamento, macOS). Base è uno dei nostri strumenti SQLite per macOS di seconda scelta ed è disponibile come download diretto e come app dell’App Store.
  • DB Browser for SQLite (gratuito, macOS e Windows). DB Browser si chiamava SQLite Database Browser. È lo strumento che consigliamo per Windows ed è gratuito. Esiste anche una versione per macOS.

Come posso lavorare direttamente con i file di database di Apple?

Ad esempio, per accedere manualmente ai dati dei contatti, estrai Libray/AddressBook/AddressBook.sqllitedb e poi apri il file estratto con un visualizzatore SQLite. Scegli la scheda «Esegui SQL» e incolla questo nel campo «Stringa SQL»:

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

Premendo il pulsante Execute Query dovresti ottenere l’elenco completo dei contatti nel campo «Dati restituiti».

Per accedere ai dati degli SMS, estrai Libray/SMS/SMS.db, apri il file estratto con il visualizzatore SQLite, scegli la scheda Browse data e poi seleziona message dal menu a discesa Table. Facendo clic sul pulsante con la lente d’ingrandimento, dovresti vedere la cronologia completa degli SMS nel campo «Dati restituiti».

Uno dei nostri utenti ha trovato utile la query qui sotto, quindi la includiamo per i nostri utenti. Tieni presente che i formati dei database cambiano tra le versioni di iOS, quindi queste query spesso devono essere modificate nel tempo.

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

Qui teniamo un elenco dei file chiave per varie app.

I campi data e ora vengono restituiti solo come numeri: come posso interpretarli?

Potresti avere difficoltà a interpretare alcuni campi dei database. Non dimenticare che iPhone Backup Extractor può estrarre i dati automaticamente per te! Se invece procedi da solo, scoprirai che le date sono rappresentate come numero di secondi trascorsi da 2001-01-01 oppure 1970-01-01, a seconda della posizione del campo data. In Excel potresti usare una formula come =1/1/2001 + A1/60/60/24, dove A1 è il tuo dato temporale. Potrebbe anche servire correggere il valore in base al tuo fuso orario locale.


Informazioni sull'autore

Aidan Fitzpatrick

Fondatore, CEO

Aidan ha fondato Reincubate nel 2008 dopo aver creato il primo strumento al mondo per il recupero dei dati iOS. Da allora ha fatto crescere l’azienda fino a farne uno dei principali ISV al mondo, collaborando con aziende come AMD, Qualcomm e HP per essere pioniere di funzionalità di machine learning significative per il software video, con l’ecosistema di app Camo in prima linea. Sotto la guida di Aidan, Reincubate ha vinto quattro volte il più alto riconoscimento imprenditoriale del Regno Unito, si è guadagnata un posto nella lista 100 Tech del Sunday Times e ha ottenuto riconoscimenti di settore con candidature all’Apple Design Award e all’App Store. Il suo lavoro e le sue tecniche sono spesso citati in pubblicazioni accademiche sull’informatica forense mobile, ed è stato invitato a parlare a eventi organizzati da aziende come Google, Microsoft e Snap.


Articoli correlati

Hai bisogno di aiuto?

Cerchiamo di rispondere a tutti i messaggi entro un giorno lavorativo.

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

King's Award for Enterprise: Reincubate ha vinto quattro volte la più alta onorificenza aziendale ufficiale del Regno Unito, l'ultima in riconoscimento della straordinaria crescita dell'azienda negli ultimi tre anni.

Le nostre relazioni con utenti e partner sono al centro dei nostri valori e dei prodotti che creiamo. Consulta le nostre recensioni per scoprire cosa dicono di noi.

Certificazione ISO 27001 rilasciata dal Centre for Assessment, accreditato UKAS

© 2008-2026 Reincubate Ltd. Tutti i diritti riservati. Registrata in Inghilterra e Galles con il n. 5189175, P. IVA GB151788978. Camo®, Streamlight® e Reincubate® sono marchi registrati. Brevetti in corso di registrazione.

Assistenza