01Soru
Bir kişiyle yapılan sohbetten silinen mesajlar cihazdan kurtarılabilir mi ve kurtarma hangi dönem için güvenilirdir?
02Arka plan
Delta Lojistik'te kurgusal bir anlaşmazlıkta, bir taraf bir sohbet dizisinin silindiğini söyler. Android cihazın tam dosya sistemi çıkarımı sağlanmıştır. İnceleme, veri tabanının kurtarılması ve yorumlanmasıyla sınırlıdır; çıkarımın nasıl elde edildiğini ele almaz.
03Sınırlar
- Fiziksel imaj değil, yalnızca dosya sistemi çıkarımı mevcuttu; bu nedenle ayrılmamış flash alanı taranamadı.
- Veri tabanı WAL günlüklemesi kullanıyor; kurtarma, bir kontrol noktasının günlüğü boşaltıp boşaltmadığına bağlı.
- Uçtan uca aktarım şifrelemesi cihaz üzerinde kurtarmayı etkilemez; yerel veri tabanı mesajları uygulama için okunabilir biçimde saklar.
04Alınan delil
| Öğe | Form | Hash | Not |
|---|---|---|---|
| Android cihazın dosya sistemi çıkarımı | F-03 | sha256: 2a7f…c410 | Çıkarım paketi alındığında hash değeri hesaplandı. |
| msgstore.db, msgstore.db-wal ve msgstore.db-shm | F-04 | sha256: e5d9…b832 | WAL ve paylaşılan bellek dosyaları ana veri tabanıyla birlikte tutuldu; üçü de hash'lenip kopyalar üzerinde çalışıldı. |
05İnceleme yöntemi
Veri tabanını ve günlüğünü birlikte koruyun
Ana veri tabanı ve -wal ile -shm eşleri bir küme olarak kopyalanıp hash'lendi. Veri tabanını WAL olmadan açmak eski bir görünüm gösterirdi; WAL, henüz ana dosyaya geri yazılmamış sayfaları tutar.
Android için WhatsApp mesajları (msgstore.db)Hash hesaplayıcı
Canlı satırları ve şemayı okuyun
Mesaj tablosunun sütunları (tanımlayıcı, sohbet anahtarı, yön, milisaniye cinsinden zaman damgası, metin, medya başvurusu) okundu ki kurtarılan parçalar canlı satırlarla aynı biçimde yorumlanabilsin. Kişiyle sohbet, sohbet listesindeki kişinin satırıyla belirlendi.
WAL'dan ve boş listeden silinmiş satırları kurtarın
Bir mesajı silmek, satırının hücresini b-ağacı sayfası içinde boş olarak işaretler; baytlar sayfa yeniden kullanılana kadar çoğu zaman kalır. Normal bir sorguda artık görünmeyen mesaj metnini ve zaman damgalarını kurtarmak için WAL çerçeveleri ve ana dosyadaki boş blok zincirleri ayrıştırıldı. Her kurtarılan satır, geldiği sayfa ve ofsetle etiketlendi.
Android için WhatsApp mesajları (msgstore.db)Hex görüntüleyici ve veri denetçisiZaman damgası çözücü
Zaman damgalarını çevirin ve güvenilir dönemi sınırlayın
Milisaniye zaman damgaları UTC'ye çevrildi. Canlı satırlar bir noktaya kadar kesintisiz bir kayıt verdi; kurtarılan satırlar boşluğun bir kısmını doldurdu. Güvenle kurtarılabilen en eski mesaj, güvenilir pencerenin başlangıcını belirledi; sayfaları üzerine yazılmış daha eski silmeler kurtarılamadı ve mesajların yokluğu olarak değil, bir boşluk olarak raporlandı.
Android için WhatsApp mesajları (msgstore.db)Zaman damgası çözücüYerel saatten UTC'ye
06Bulgular
Sağlam
Kişiyle alışverişi yapılan silinmiş mesajlar, metin, yön ve UTC zaman damgalarıyla sınırlı bir dönem için kurtarıldı.
DayanakKurtarılan satırlar canlı tablo şemasıyla eşleşir ve sayfa/ofset referansları taşır; zaman damgaları çevredeki canlı satırlarla tutarlıdır.
Sağlam
Dizideki bazı önceki mesajlar, veri tabanı sayfaları yeniden kullanıldığı için kurtarılamadı.
DayanakBoş liste ve WAL artık o sayfaların önceki içeriğini tutmuyordu.
Olası
Dizi, zaman içinde mesaj mesaj değil, bir blok olarak silindi.
DayanakKurtarılan satırlar, yakın boşaltma zamanlarıyla küçük bir boş sayfa kümesinde yoğunlaşır; bu, dağınık silmelerden çok tek bir toplu silmeye daha iyi uyar.
07Sınırlılıklar
- Kurtarma doğası gereği kısmidir; bir mesajın kurtarılamaması, hiç var olmadığının kanıtı değildir.
- Fiziksel imaj olmadan, veri tabanı dosyası dışındaki ayrılmamış flash alanındaki veri incelenemedi.
- Kurtarılan metin cihazdaki hesaba atfedilir; tek başına telefonu kimin tuttuğunu kanıtlamaz.
- Bir mesajın yerel zaman damgası, yanlış olabilen ya da değiştirilebilen cihaz saatini yansıtır.
08Rapor alıntısı
Normal bir sorguda görünmeyen kırk bir mesaj, msgstore.db'nin boşaltılmış sayfalarından ve WAL çerçevelerinden kurtarıldı; her biri sayfa ve ofsetiyle etiketli. 2026-… ile 2026-… arasını kapsıyorlar. Bu dizide o tarihten önceki mesajlar kurtarılamadı: sayfaları yeniden kullanılmıştı, bu yüzden yokluk değil, boşluk bildiriyoruz.
09Çıkarımlar
- -wal ve -shm dosyalarını her zaman veri tabanıyla birlikte koruyun; onlar olmadan görünüm eskidir.
- Kurtarmanın tekrarlanıp denetlenebilmesi için her kurtarılan satırı sayfa ve ofsetiyle etiketleyin.
- Kurtarılamamayı, nedeniyle birlikte bir boşluk olarak bildirin; asla bir mesajın var olmadığının kanıtı olarak değil.