iOSTemelMesajlaşma

Mesajlar veri tabanı (sms.db)

SMS, MMS ve iMessage için iOS Mesajlar deposu: Apple epoch tarihli message, handle, chat ve attachment tabloları, okunma/teslim zamanları.

01Konum

  • /private/var/mobile/Library/SMS/sms.db (+ -wal, -shm)
  • /private/var/mobile/Library/SMS/Attachments/
  • Backup: HomeDomain-Library/SMS/sms.db

02Yanıtladığı sorular

  • Cihazla kim, hangi hizmet üzerinden (iMessage veya SMS), ne zaman mesajlaştı?
  • Bir mesaj ne zaman teslim edildi ve okundu?
  • Çift SIM'li bir cihazda mesajı hangi yerel hat veya hesap gönderdi ya da aldı?
  • Hangi ekler paylaşıldı ve nerede saklanıyor?

03Biçim ve sürümler

BiçimSQLite veri tabanı. Mesajlar message, katılımcılar handle, konuşmalar chat tablosundadır ve chat_message_join ile chat_handle_join üzerinden bağlanır; ekler message_attachment_join aracılığıyla attachment tablosundadır. Metin message.text içindedir; boşsa message.attributedBody (typedstream ile serileştirilmiş NSAttributedString) içindedir.
Geçerli olduğu sürümlerSütun kümeleri iOS sürümleri arasında değişir; iLEAPP ayrıştırıcısı saniye ve nanosaniye hassasiyetli tarih değerlerini işler.

04Temel alanlar

AlanNe anlatır
message.is_from_meGiden için 1, gelen için 0.
message.handle_id → handle.idAlınan satırlar için gönderen tanıtıcısı (telefon numarası veya e-posta).
message.service / accountSaklandığı şekliyle hizmet adı ve yerel hesap.
message.destination_caller_idKullanılan yerel hesabın numarası veya kimliği; çift SIM'li cihazlarda hatları ayırır; e-posta veya UUID olabilir.
chat.chat_identifier / display_nameSaklandığı şekliyle konuşma tanımlayıcısı ve grup adı.
attachment.filename / transfer_name / mime_type / total_bytesHer ekin saklanan yolu, özgün adı, türü ve boyutu.

05Zaman damgaları

AlanKodlamaNot
message.dateApple Cocoa time (since 2001-01-01 UTC); seconds or nanosecondsUnix zamanına geçmek için 978.307.200 s ekleyin; iLEAPP 10^15'ten büyük değerleri nanosaniye kabul eder.
message.date_read / date_deliveredApple Cocoa time; seconds or nanosecondsSıfır, değer kaydedilmediği anlamına gelir.
attachment.created_dateApple Cocoa timeEk kaydının oluşturulma zamanı.

Ham değerleri Zaman damgası çözücü, yerel saatleri ise Yerel saatten UTC'ye ile çözün.

06İnceleme akışı

  1. sms.db dosyasını -wal/-shm ve Attachments klasörüyle birlikte koruyun.
  2. 2001 epoch'undan dönüştürmeden önce her tarih sütununun hassasiyetini (saniye/nanosaniye) belirleyin.
  3. text boş olduğunda attributedBody alanını çözün.
  4. chat bazında gruplayın ve katılımcıları chat_handle_join üzerinden listeleyin.
  5. Hatları karşılaştırmadan önce destination_caller_id yazımlarını normalleştirin.

07Yorum tuzakları

  • Eklere yapılan birleştirmeler mesajı her ek için yineler; sayımı message ROWID üzerinden yapın.
  • Aynı hat yalın rakam, +E.164 veya tel: önekiyle görünebilir.
  • Kaydedilmemiş değişiklikler yalnız WAL dosyasında bulunabilir.

09Kaynaklar

  1. iLEAPP — scripts/artifacts/sms.py Alexis Brignoni et al. (GitHub) · erişim 2026-10-14
  2. CFAbsoluteTime Apple Developer Documentation · erişim 2026-10-14
  3. SQLite — Write-Ahead Logging SQLite · erişim 2026-10-14
  4. iTunes Backup The Apple Wiki · erişim 2026-10-14