iPod nano 3rd generation 8GB 購入 iTunesDBのハッシュ値の生成方法がもう明らかに!
9月 15

ネタ元は HAのスレッド.私にとっては大問題です.

iPodは,/iPod_Control/iTunes/iTunesDB というファイルに書き込まれている音楽情報データベースを読み込んで,音楽や動画を再生します.他のMSCのプレイヤーと異なり,iPodはこのiTunesDBが正しく作られていないと,動作しません.通常,このiTunesDBファイルはiTunesが自動的に作成してくれるので,たいていのユーザーはこういう技術仕様を意識することなく,iPodを使うことができます.

実は,iTunesDBファイルの仕様はすでに解析されていて,詳細なレイアウトが公開されています.私は,この仕様の内容を参考にして,PMPlibにiTunesDB用のデータベース管理ライブラリをコーディングし,私が持っているiPod nano 1st genではきちんと動作することを確認しています.今回iPod nano 3rd genを購入したのも,(多少の修正は必要かもしれないが)PMPlibを使ってiPodを使えることを目論んでいたからです.

しかし,Apple cuts us offでは,iTunesDBの"mhbd"チャンク(ファイルの先頭にあるチャンク)の0×32と0×58に,160bitのSHAのハッシュらしきものが書き込まれていると報告しています.このハッシュ値を正しく生成して書き込まないと,正しいレイアウトのiTunesDBを生成してもiPodが認識しません.PMPlibが動作しなくなったのも,このAppleの改悪の仕業だったようです.

私も,iTunesが作成したiTunesDBの中身で,曲名など全体の構造を破壊しない部分の1バイトを改変する実験をしてみました.編集したのはアルバム名の1文字を変更しただけなのに,見事にiPodが動作しなくなります.この実験からも,ハッシュ値らしきもので保護されているのは100%間違いないと思います.

幸いなことに,iTunesDB全体が暗号化されているわけではないので,iTunesのコードをダンプしてSHAを生成している部分を探す(OpenSSLのコードを使っているっぽい)か,iTunesのプロセスを監視してメモリを書き出すなどをして,ハッシュ値の生成方法を見つけるのは,不可能でないと思います.スキルやノウハウのある人は,ぜひハッシュ値の生成法を見つけてみてください.

あと,このiTunesDBの仕様変更で,

  • WinampやMedia Monkeyなどのサードパーティのソフトウェアを使ってiPod nano 3rd genを使う
  • LinuxでiPod nano 3rd genを使う

のは,当分無理だと思いますので,注意が必要です.他のiPodも,ファームウェアのバージョンが上がると,新しいiTunesDBに移行してしまう恐れがありますので,注意してください.

—–

2 Responses to “iTunesDBにハッシュ値が!”

  1. Genevie Palley Says:

    Intimately, the put up is actually the freshest on this laudable topic. I slot in together with your conclusions and will certainly thirstily look ahead to your approaching updates. Merely saying thanks definitely will not simply be ample, for the fantastic lucidity in your writing. I positively will immediately seize your rss feed to stay informed of any form of updates. Stable work and also much success in your small business enterprize!

  2. larrythemortgageguy.com Says:

    When I start your Rss feed it appears to be a ton of junk, is the problem on my part?

Leave a Reply