Сегодня я хотел бы рассказать о том, как получить доступ ко всем 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/, где ~ — ваша домашняя директория.
Если у вас больше одной резервной копии, все они будут перечислены здесь. Чтобы найти самую свежую, перейдите в каталог с с резервными копиями при помощи Терминала командой
после чего посмотрите список копий командой ls -la — директория с самой свежей датой модификации и есть та, которая вам нужна (на картинке — пример того, какую резервную копию считать более свежей).

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

Кликнув по иконке с открытой папкой, вы вызовете диалоговое окно выбора файла. Найдите файл базы данных, о котором говорилось выше, и откройте его: теперь в левой колонке будут перечислены элементы базы (таблицы, представления, триггеры, …). Сейчас стоит обратить внимание на таблицы (пункт Tables):
- msg_group — таблица отправителей/получателей сообщений. Поскольку исходящие и входящие сообщения при диалоге с одним или несколькими адресатами отображаются в iPhone в виде своеобразного чата, это считается группой;
- group_member — список адресатов входящих в конкретную группу;
- message — таблица с полученными/отправленными сообщениями, на которой мы остановимся подробнее.
По всем полям проходить не будем, рассмотрим основные:
- address — отправитель/получатель сообщения;
- date — дата отправки/получения сообщения в формате UNIXTIME (количество секунд, прошедших к определённой дате с 00:00:00 01.01.1970);
- text — текст сообщения;
- flags — свойство сообщения. 2 — полученное, 3 — отправленное с вашего телефона;
- group_id — идентификатор группы из таблицы msg_group.

После этого идёт большое количество служебных полей. Назначение некоторых из них мне пока непонятно, да и говорить сейчас мы о них не будем.
В общем-то, теперь вы можете просматривать все 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 в случае, когда вы попробуете залить её обратно. И я настоятельно рекомендую работать не с самой базой, а с её копией, во избежание каких-либо недоразумений.
Спасибо в любом случае. :)


Фев 2, 2011 в 00:24
Здравствуйте!
Случайно нашла Вас сайт. Как я понимаю, Вы очень хорошо разбираетесь в iPhone и, возможно, сможете мне помочь. Проблема в том, что у меня на iPhone почта Gmail проверяется автоматически (логин и пароль сохранены), но пароль я забыла – и проверить почту, например, с компьютера – я не могу.
Уже все перепробовала – никак не полчается вспомнить пароль. Может быть вы знаете, как можно “вытащить” сохраненный пароль от почты из iPhone?
Заранее благодарю за ответ.
Март 30, 2011 в 13:08
Неплохо!
А как посмотреть/скопировать список контактов?
Окт 8, 2011 в 08:19
…
tnx for info :!:…
Окт 9, 2011 в 17:19
run@pashw7.bring” rel=”nofollow”>.…
сэнкс за инфу :)…
Ноя 28, 2011 в 10:42
Родион,скажите пожалуйста ,для Firevox 8.0 какой версии SQLite Manager закачивать?
Дек 10, 2011 в 07:32
:grin:…
thanks :shock:…
Дек 10, 2011 в 15:01
:oops:…
спс :grin:…
Дек 11, 2011 в 12:45
:x…
спасибо за инфу :cool:…
Дек 11, 2011 в 22:08
:roll:…tnx :idea:…
Янв 17, 2012 в 06:04
Как называются файлы с адресной книгой и заметками????? И можно ли их скопировать в другую резервную копию?? =)
Янв 20, 2012 в 01:53
Здравствуйте, Родион!
Скажите, пожалуйста, возможно ли перенести на iPhone смс из другого телефона. iPhone не взламывала.
Заранее спасибо.
Янв 31, 2012 в 02:37
Это очень и очень здорово, но подскажите, что делать если я удалил с телефона очень важную переписку, как мне просмотреть ей???
Март 11, 2012 в 00:25
Помогите пожалуйста, у меня такая проблема, я с девушкой уже дружу 5 месяцев, переписка в начале шла просто немыслимая, через три месяца решил на всякий случай сохранить копии смскок, скопировал папку SMS по пути: var/mobile/library/sms сохранил всю папку. через неделю я от злости удалил все смс на сотке, позже изза отсутствия джейлбрейка я не стал восстанавливать смски, спустя 2 месяца решил восстановить, вот теперь проблема как соединить 3 месяца которые я давно сохранил, и данные смски которые сейчас на сотке? очень надо, пож помогите. буду благодарен