01Konum
- /data/data/com.whatsapp/databases/msgstore.db (+ -wal, -shm)
- Media: …/WhatsApp/Media/ on shared storage or …/com.whatsapp/files/Media/
- Encrypted backup copies: …/WhatsApp/Databases/msgstore.db.cryptNN
02Yanıtladığı sorular
- Hesap kimlerle, hangi sohbetlerde, ne zaman mesajlaştı?
- Hangi medya dosyaları ve konumlar gönderildi veya alındı?
- Hangi WhatsApp aramaları yapıldı veya alındı, ne kadar sürdü?
- Hesap hangi gruplara ve kanallara dahildi?
03Biçim ve sürümler
| Biçim | SQLite. Yeni şema: message, chat, jid (raw_string), jid_map (LID → telefon JID), message_media, message_location, call_log, newsletter. Eski şema: group_participants ile birlikte messages (key_remote_jid, key_from_me, data). |
|---|---|
| Geçerli olduğu sürümler | ALEAPP eski messages tablosunu yalnız eski Android 11/12 test imajlarında buldu; yeni veri tabanları message tablosunu kullanır ve sohbetleri jid_map ile çözülen LID JID'leriyle (…@lid) anahtarlayabilir. |
04Temel alanlar
| Alan | Ne anlatır |
|---|---|
| message.chat_row_id → chat.jid_row_id → jid.raw_string | Sohbet JID'si; gruplar @g.us, kanallar @newsletter ile biter. |
| message.from_me / sender_jid_row_id | Yön (1 giden) ve grup sohbetlerinde gönderen. |
| message.text_data / message_type | Metin gövdesi ve mesaj türü kodu (ALEAPP yalnız bazı değerleri etiketler). |
| message_media.file_path / file_size | Medya yolu ve boyutu. |
| message_location | live_location_final_timestamp dahil paylaşılan/canlı konum verileri. |
| call_log | timestamp, duration, from_me, jid_row_id, group_jid_row_id. |
| chat.subject / created_timestamp | Grup veya kanal konusu ve sohbet oluşturma değeri. |
05Zaman damgaları
| Alan | Kodlama | Not |
|---|---|---|
| message.timestamp | Unix epoch, milliseconds | Mesaj zamanı; 0 değer olmadığını gösterir. |
| message.received_timestamp | Unix epoch, milliseconds | Cihazda alınma zamanı; 0 yok demektir. |
| call_log.timestamp / duration | Unix ms / seconds | Arama bitişi başlangıç + süre olarak hesaplanır, saklanmaz. |
| chat.created_timestamp | Unix epoch, milliseconds | Bunun grup oluşturmayı mı yoksa sohbetin bu cihazda oluşturulmasını mı gösterdiği belirlenmemiştir. |
Ham değerleri Zaman damgası çözücü, yerel saatleri ise Yerel saatten UTC'ye ile çözün.
06İnceleme akışı
- msgstore.db, wa.db, WAL dosyaları ve medya klasörlerini birlikte koruyun.
- Şemayı (message / messages) ve jid_map tablosunun var olup olmadığını belirleyin.
- Sohbet ve gönderen JID'lerini çözün, LID JID'lerini jid_map ile eşleyin, ardından adları wa.db'den ekleyin.
- Milisaniye zaman damgalarını dönüştürün ve medya yollarını dosyalarla eşleştirin.
- Raporlamada bire bir, grup ve kanal sohbetlerini ayırın.
07Yorum tuzakları
- @g.us grup kuralı WhatsApp belgelerinden değil, üçüncü taraf bir istemciden (whatsmeow) alınmıştır.
- Test imajlarında kanal mesajlarında sender_jid_row_id 0 idi; yani yazar kaydedilmemiştir.
- Şema uygulama sürümleri arasında sık değişir; tabloları ve sütunları her veri tabanında doğrulayın.
- Son etkinlik yalnız WAL dosyasında olabilir.
09Kaynaklar
- ALEAPP — scripts/artifacts/WhatsApp.py Alexis Brignoni et al. (GitHub) · erişim 2026-10-14
- WhatsApp in Plain Sight: Where and How You Can Collect Forensic Artifacts Igor Mikhailov, Group-IB (2019) · erişim 2026-10-14
- SQLite — Write-Ahead Logging SQLite · erişim 2026-10-14