본문으로 건너뛰기
Reincubate

iPhone 백업의 SQLite 및 Plist 파일에서 데이터를 조회하는 방법

Aidan Fitzpatrick

게시일: 2018년 3월 8일· 업데이트: 2021년 1월 5일

Cover image for: iPhone 백업의 SQLite 및 Plist 파일에서 데이터를 조회하는 방법

일부 사용자는 전문가 모드를 사용하여 백업에 저장된 원시 파일을 직접 다루고 싶을 수 있습니다. 이러한 파일은 흔히 SQLite 데이터베이스(.sqlite3, .sqllitedb, .db) 또는 Plist(보통 .plist) 파일로 구성되어 있습니다.

iPhone Backup Extractor에는 Plist 편집기가 내장되어 있으며, 사용자는 데이터를 PDF, HTML, VCard, ICAL, VCF, CSV 형식으로 자동으로 내보내 쉽게 사용할 수 있습니다. 하지만 이러한 파일에서 데이터를 추출하려면 SQLite 데이터베이스 클라이언트가 필요합니다.

SQLite 데이터베이스는 어떻게 다루나요?

다음 세 가지 애플리케이션 중 하나를 사용해 볼 수 있습니다.

  • SQLiteFlow(유료, macOS 및 iOS). SQLiteFlow는 macOS에서 가장 선호하는 SQLite 도구입니다.
  • Base 2(유료, macOS). Base는 macOS에서 두 번째로 선호하는 SQLite 도구 중 하나이며, 직접 다운로드 또는 App Store 앱으로 제공됩니다.
  • DB Browser for SQLite(무료, macOS 및 Windows). DB Browser는 예전에 SQLite Database Browser라는 이름이었습니다. Windows에서 권장하는 도구이며 무료입니다. macOS용 버전도 제공됩니다.

Apple의 데이터베이스 파일은 어떻게 직접 다루나요?

예를 들어 연락처 데이터에 직접 접근하려면 Libray/AddressBook/AddressBook.sqllitedb을 추출한 다음 추출된 파일을 SQLite 뷰어로 엽니다. “Execute SQL” 탭을 선택하고 “SQL string” 필드에 다음을 붙여넣습니다.

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

Execute Query 버튼을 누르면 “Data returned” 필드에 전체 연락처 목록이 표시됩니다.

SMS 데이터에 접근하려면 Libray/SMS/SMS.db을 추출하고 추출된 파일을 SQLite 뷰어로 연 다음 Browse data 탭을 선택하고 Table 드롭다운에서 message을 선택합니다. 돋보기 버튼을 클릭하면 “Data returned” 필드에 전체 SMS 기록이 표시됩니다.

사용자 한 분이 아래 쿼리가 유용하다고 알려 주어 다른 사용자를 위해 여기에 포함합니다. 데이터베이스 형식은 iOS 버전마다 바뀌므로 이러한 쿼리도 시간이 지나면 변경해야 하는 경우가 많다는 점에 유의하세요.

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

여러 앱의 주요 파일 목록을 여기에서 관리하고 있습니다.

날짜와 시간 필드가 숫자로만 표시됩니다. 어떻게 해석하나요?

데이터베이스의 여러 필드를 해석하기 어려울 수 있습니다. iPhone Backup Extractor는 데이터를 자동으로 추출해 줍니다. 하지만 직접 처리한다면 날짜 필드의 위치에 따라 날짜가 2001-01-01 또는 1970-01-01 이후의 초 수로 표시된다는 것을 알 수 있습니다. Excel에서는 =1/1/2001 + A1/60/60/24 같은 수식을 사용할 수 있으며, 여기서 A1은 시간 데이터입니다. 현지 시간대를 반영하여 값을 조정해야 할 수도 있습니다.


작성자 소개

Aidan Fitzpatrick

창립자 겸 CEO

Aidan은 세계 최초의 iOS 데이터 복구 도구를 개발한 후, 2008년에 Reincubate를 설립했습니다. 이후 그는 AMD, Qualcomm, HP와 같은 기업들과 협력하여 Camo 앱 생태계를 필두로 비디오 소프트웨어를 위한 의미 있는 머신러닝 기능을 개척하며, 회사를 세계 최고의 ISV 중 하나로 성장시켰습니다. Aidan의 리더십 아래 Reincubate는 영국 최고의 비즈니스 상을 네 차례 수상했고, The Sunday Times의 100대 기술 기업 리스트에 이름을 올렸으며, Apple 디자인 어워드와 App Store 후보 지명으로 업계의 인정을 받았습니다. 그의 연구와 기법은 모바일 포렌식 관련 학술 논문에서 자주 인용되며, Google, Microsoft, Snap과 같은 기업이 주최하는 행사에 연사로 초청받은 바 있습니다.


관련 문서

도움이 필요하신가요?

모든 문의에 영업일 기준 1일 이내에 답변드리도록 노력하고 있습니다.

support@reincubate.com
King's Award for Enterprise 로고

King's Award for Enterprise: Reincubate는 영국 최고의 공식 비즈니스 영예를 네 차례 수상했으며, 가장 최근에는 지난 3년간의 뛰어난 성장을 인정받았습니다.

사용자 및 파트너와의 관계는 우리의 가치와 우리가 만드는 제품의 핵심입니다. 리뷰을(를) 통해 그들의 이야기를 들어보세요.

Centre for Assessment의 ISO 27001 인증, UKAS 공인

© 2008-2026 Reincubate Ltd. 모든 권리 보유. 잉글랜드 및 웨일스 등록 번호 5189175, VAT 번호 GB151788978. Camo®, Streamlight® 및 Reincubate®는 등록 상표입니다. 특허 출원 중.

도움말