iPhoneは何となくセキュアな気がしていました。しかしiTunesでiPhoneを繋いでデータがバックアップできるということはデータを抜き取る手段があると言うことです。それでも何となく暗号化くらいはされていると思っていました。 しかしそんなことはないと思い知らされるソフトウェアがiphone-sms-backupです。どきっとさせられるような結果に驚いてしまうはずです。

iPhoneを繋いだらコマンドを打ちます。

$ python sms-backup.py

その実行結果が次のようになります。

Date                | From                         | To                                       | Text
2012-06-28 17:01:20 |                           Me |                               9999999999 | ※※※※※※※※
2012-06-29 08:29:03 |                   9999999999 |                                       Me | ××××××××
2012-06-29 08:29:42 |                           Me |                               9999999999 | ▼▼▼▼▼▼▼▼
2012-06-29 08:30:17 |                   9999999999 |                                       Me | ○○○○○○○○

こんな感じでSMSのやり取りがそのまま一覧になって表示されるのです。

コマンドヘルプは以下のようになります。指定した人とのやり取りだけを取り出すこともできます。

$ python sms-backup.py --help
usage: sms-backup.py [-h] [-q | -v] [-a ADDRESS=NAME] [-d FORMAT]
                     [-f {human,csv,json}] [-m NAME] [-o FILE] [-e EMAIL]
                     [-p PHONE] [--no-header] [-i FILE]

optional arguments:
  -h, --help            show this help message and exit
  -q, --quiet           Decrease running commentary.
  -v, --verbose         Increase running commentary.

Format Options:
  -a ADDRESS=NAME, --alias ADDRESS=NAME
                        Key-value pair (.ini style) that maps an address
                        (phone number or email) to a name. Name replaces
                        address in output. Can be used multiple times.
                        Optional. If not present, address is used in output.
  -d FORMAT, --date-format FORMAT
                        Date format string. Optional. Default: '%Y-%m-%d
                        %H:%M:%S'.
  -f {human,csv,json}, --format {human,csv,json}
                        How output is formatted. Valid options: 'human'
                        (fields separated by pipe), 'csv', or 'json'.
                        Optional. Default: 'human'.
  -m NAME, --myname NAME
                        Name of iPhone owner in output. Optional. Default
                        name: 'Me'.

Output Options:
  -o FILE, --output FILE
                        Name of output file. Optional. Default (if not
                        present): Output to STDOUT.
  -e EMAIL, --email EMAIL
                        Limit output to iMessage messages to/from this email
                        address. Can be used multiple times. Optional. Default
                        (if not present): All iMessages included.
  -p PHONE, --phone PHONE
                        Limit output to sms messages to/from this phone
                        number. Can be used multiple times. Optional. Default
                        (if not present): All messages from all numbers
                        included.
  --no-header           Don't print header row for 'human' or 'csv' formats.
                        Optional. Default (if not present): Print header row.

Input Options:
  -i FILE, --input FILE
                        Name of SMS db file. Optional. Default: Script will
                        find and use db in standard backup location.

確かにできないことではないですが、それがコマンド一つだけで完了してしまう容易さに驚きです。メインはバックアップ目的とあるので、標準出力よりもJSONやCSVによる出力が良いと思います。 メッセージアプリの中身が多くて整理ができないといった時にも一旦バックアップしてしまえば消去しても安心ですし、テキストであれば検索も容易になります。意外と使い道はあるのではないでしょうか。 iphone-sms-backupはPython製、MIT Licenseのオープンソース・ソフトウェアです。 toffer/iphone-sms-backup @ GitHub toffer/iphone-sms-backup