Восстановление удалённых c Apple iPhone контактов. 9 простых шагов

в 6:55, , рубрики: iphone, Восстановление данных, информационная безопасность, метки: ,

Ситуация — нарочно не придумаешь.

У блондинки 2 телефона на одной учётке в iСloud. Локальных копий скорее всего нет. За свежесть копий в облаках не ручаюсь. Блондинка решает подарить один из телефонов подруге. Что двигало в её светлой голове — не знаю, но она по одному стёрла более 200 контактов. Вручную. И получила девственно чистую телефонную книжку на втором аппарате. Слёзы, истерика, звонок — выручай.
Первым делом изолируем аппарат от внешнего мира. Вынимаем SIM-карту, отключаем WiFi и прочие коммуникации.
Решение настолько простое и очевидное, что мне даже стало немного обидно за ребят из Купертино. Возможно мне повезло, что телефон был не запаролен.
Я исходил из того, что по данным Google Apple хранит свою книгу контактов в SQLite.
1) Штатными средствами iTunes делаем бэкап телефона.
2) Из каталога %UserDir%AppDataRoamingApple ComputerMobileSyncBackup[многострашныхбуквицифр] копируем ВСЕ файлы в отдельную папочку. Желательно сделать 2 копии, на всякий случай.
3) Far-ом ищем в скопированной папке все файлы в кодировке UTF-8, содержащие строку SQLite
Image #2035683, 90.5 KB
4) Отсеиваем найденные файлы в отдельную папочку
5) Начинаем их просматривать.
6) Натыкаемся на файл содержащий нечто типа
Image #2035694, 5.8 KB
переименовываем его в нечто, более понятное.
7) Эпилогом открываем этот файл.
Image #2035701, 54.5 KB
8) Копируем записи в любой текстовый редактор, чистим дубли, сохраняем, отдаём заказчику.

Profit!

Как оказалось, Контакты не удаляют физически данные из базы, а просто маркируют запись в БД как удалённую.

PS: Если установлен WhatsApp всё еще проще. Этот просто копирует все контакты в свою базу, независимую от базы Контактов, которая так же лежит в бэкапах. Опознать её можно по характерным названиям полей и, конечно же, номерам телефонов лежащим в ОТКРЫТОМ виде.
Image #2035707, 12.3 KB
Открываем её в SQLexpert, в окно запроса вводим SELECT * FROM ZWACONTACT as a LEFT OUTER JOIN ZWAPHONE as b on b.[ZCONTACT]=a.[Z_PK]
И вуаля.
Image #2035716, 85.7 KB

Возможно кому-то это поможет. Успехов в наступающем!

Автор: LumberJack

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js