База данных SMS-сообщений вашего iPhone

База данных SMS на iPhoneПока я хотел бы рассказать о том, как получить доступ ко по всем статьям SMS-сообщениям, которые хранятся в вашем iPhone. Для этого без- обязательно взламывать телефон — достаточно иметь на компьютере iTunes, Firefox и маленький плагин для него. При помощи этих подручных инструментов позволительно получить гораздо более подробную информацию о ваших сообщениях, приводить в исполнение по ним поиск и проводить некоторые статистические изыскания.

Ужели а теперь обо всём по порядку…

Для начала подготовим «материальную базу» в целях последующих операций. Если у вас есть iPhone, то и iTunes, хоть лопни, имеется. Значит дело за небольшим: установить (если опять-таки не установлен) браузер Firefox (версию под Mac или Windows дозволяется найти по адресу http://www.mozilla-europe.org/ru/firefox/). В настоящий момент, когда у вас точно есть Firefox, потребуется установить в него специальное растяжение, SQLite Manager. После установки плагина перезапустите Firefox. Нынче всё готово к работе.

При помощи iTunes сделайте резервную копию данных вашего iPhone. В общем-так, если вы часто синхронизируете телефон с компьютером, у вас сия копия уже должна быть. Все резервные копии iPhone лежат в директории ~/Library/Application Support/MobileSync/Backup/, идеже ~ — ваша домашняя директория.

Если у вас больше одной резервной копии, хана они будут перечислены здесь. Чтобы найти самую свежую, перейдите в номенклатура с с резервными копиями при помощи Терминала командой

cd ~/Library/Application Support/MobileSync/Backup/

следом чего посмотрите список копий командой ls -la — директория с самой свежей датой модификации и пожирать та, которая вам нужна (на картинке — пример того, какую резервную копию рассчитывать более свежей).

Список резервных копий iPhone

В выбранной директории присутствует большое количество файлов — сие все ваши настройки, изображения с камеры, история вызовов, sms-сведения, заметки и прочее, прочее — всё то, что хранится в вашем iPhone. Ввиду нас интересуют SMS-сообщения, остановимся на них. Найдите обложка с именем 3d0d7e5fb2ce288813306e4d4636395e047a3d28.mddata — это и есть файл базы данных SQLite, в котором хранится новелла вашей sms-переписки.

Теперь необходимо запустить плагин, установленный впереди в Firefox — он поможет открыть этот файл в удобочитаемом виде. Пользу кого запуска выберите в верхнем меню Firefox пункт «Инструменты» и кликните после появившемуся пункту «SQLite Manager», после чего откроется прикладывание для работы с базами SQLite.

Окно SQLite Manager

Кликнув по иконке с открытой папкой, ваша сестра вызовете диалоговое окно выбора файла. Найдите файл базы данных, о котором говорилось больше, и откройте его: теперь в левой колонке будут перечислены слои базы (таблицы, представления, триггеры, …). Сейчас стоит обратить напирать на таблицы (пункт Tables):

  • msg_group — таблица отправителей/получателей сообщений. Потому как исходящие и входящие сообщения при диалоге с одним или несколькими адресатами отображаются в iPhone в виде своеобразного чата, сие считается группой;
  • group_member — список адресатов входящих в конкретную группу;
  • message — список с полученными/отправленными сообщениями, на которой мы остановимся подробнее.

До всем полям проходить не будем, рассмотрим основные:

  • address — ремитер. Ant. получатель/получатель сообщения;
  • date — дата отправки/получения сообщения в формате UNIXTIME (состав секунд, прошедших к определённой дате с 00:00:00 01.01.1970);
  • text — текст сообщения;
  • flags — присущность сообщения. 2 — полученное, 3 — отправленное с вашего телефона;
  • group_id — идентификатор группы изо таблицы msg_group.

Таблица messages с sms из iPhone

После этого идёт большое количество служебных полей. Отведение некоторых из них мне пока непонятно, да и баять сейчас мы о них не будем.

В общем-то, рань вы можете просматривать все sms-сообщения, хранящиеся в вашем телефоне. Не принимая во внимание того, вы можете их редактировать (непонятно, правда, за каким (чертом). Можете подсчитать количество всех сообщений на телефоне, намолот сообщений от конкретного абонента, посмотреть, какое сообщение было получено самым первым, можете отрыть какую-то важную информацию. К сожалению, дл некоторых с перечисленных возможностей вам потребуется знание синтаксиса SQL, чтобы собирать и исполнять необходимые запросы. Я не планирую учить кого-либо тонкостям SQLite, а приведу только простенький запрос, позволяющий получить все сообщения с удобочитаемой датой:

 
SELECT
     strftime('%d.%m.%Y %H:%M:%S', datetime(`date`, 'unixepoch')) AS `date`,
     (case when `flags` = 2 then  'получил с' else 'отправил на номер' end) ||
     ' ' || `address` AS `address`,
    `text`
FROM
    `message`;
 

Текущий запрос можно вставить в текстовое поле во кладке «Execute SQL» и создать, нажав на кнопку «Run SQL», после чего ваша выборка достанет более читаемой:

Результат выборки сообщений

Если вы не знаете SQL, вы можете около помощи SQLite Manager экспортировать таблицу с сообщениями в формат, что будет понятен, например, Microsoft Excel или Apple Numbers, и ранее там работать с этими данными.

Разумеется, для работы с базой сообщений вас можете использовать не только плагин, описываемый в этой статье, хотя и любое другое программное обеспечение, способное работать с базами SQLite. В свою очередь стоит отметить, что владельцы jailbreak’нутых аппаратов могут просматривать сведения в базе непосредственно на телефоне. Для этого достаточно подсоединить телефон к своей файловой системе и найти там файл /var/mobile/Library/SMS/sms.db — сие и есть ваши сообщения.

Ни в коем случае не должно менять структуру базы или каких-то её настроек — сие может повлечь за собой неработоспособность базы на iPhone в случае, поздно ли вы попробуете залить её обратно. И я настоятельно рекомендую заниматься не с самой базой, а с её копией, во избежание каких-либо недоразумений.

Связанные ежедневник

База данных SMS-сообщений вашего iPhone