« イベント中にDEC3Fで1時間 | メイン | gigabeat GシリーズのSSD(CF)化手順(仮) »

2010年9月 4日

gigabeat G40のSSD化に成功(?)

gigabeat G40のSSD化は以前も挑戦したのですが、再生こそできるが
実用性に問題ありな結果でした。
一応音が出たことに満足してあれ以来ほとんど触っていなかったのですが、
気まぐれでもう一度試行錯誤してみることにしました。

結果、前回の問題点を克服し、電源が落ちても再生できるようになりました。
おそらくこれでSSD化に成功したと言って差し支えないでしょう。

やり方ですが、ここに書いていいものか判断に迷うところなので、
機会があったらその時にでも書こうと思います。
色々と危険な手順が含まれておりますので。
需要があれば教えたいところなのですが。

以下、チラシの裏らしく今回の件をぐだぐだと書いておきます。

gigabeat Gシリーズは音楽ファイルを専用のソフトで暗号化して転送する必要があります。
暗号化されたファイルは他の機体では再生できず、基本的に暗号化される前の
ファイルに戻すこともできません。

Gシリーズの暗号化の鍵にハードディスクのシリアルが使用されているというのは
わりと有名な話(?)ですが、鍵の格納場所や具体的な内容って実はあまり知られて
いないのではないかと思います。
実は前回SSD化に挑戦したとき、そのあたりを完全ではありませんが、ある程度
予測できていました。
gigabeatが主電源OFFの状態から最初に電源が投入されたとき、
HDDのシリアルナンバーから鍵となる文字列を生成し、ハードディスクの
セクタ1とセクタ2の先頭部分に書きこんでいます。
ここに書きこまれた文字列は転送ソフトが参照し、使用します。
何に使われるかというと、このドライブがgigabeatである事の判定と、
暗号化するときの鍵として使用されます。
ただし、gigabeat自身が再生するとき、つまり復号には使用されません。
この領域は主電源OFFから起動した時のみ書きこまれるので、主電源をOFFに
しなければgigabeatによって書き変えられることがありません。
なので、ここを書き変えて色々することができたわけです。
その結果、暗号化には使用されるが復号には使用されないという結論に至りました。
じゃあ復号鍵はどこにあるのかというと、憶測ですがgigabeatがメモリ上に
保持しているのだと思います。
これは主電源を切らなければそのまま残っているらしく、前回のSSD化はそれを
利用して無理矢理HDDの鍵で再生していたわけですね。

さて、CFを使って鍵を生成させた場合はどうなるのか?
色々やって、現時点での結論は「鍵が生成されない」です。
ひょっとすると鍵を作ってくれるCFやSSDがあるのかもしれませんが、たぶん東芝の
HDDじゃないとgigabeatは鍵を作らないのだと思います。
鍵が生成されていないのは、CFのセクタ1とセクタ2を見ることで解ります。
ここで厄介だったのが、NULLが書きこまれるのではなく、何の書き換えも
行われないということです。
元々何らかのデータが書き込まれていた場合、それがそのまま残っています。
元々空白だった場合はもちろん空白のままです。
この事実に気付いたとき、真にSSD化することは無理なのではないかと思いました。
鍵がないということは、再生できるファイルが存在しないのではないかと考えたからです。

一応可能性として、鍵が「ない」のではなく、「NULLを鍵として再生しようとする」
のではないかという仮説をもとに、今回の挑戦に至ったわけです。
話は簡単で、NULLで復号しようとしているのであればNULLで暗号化すれば
いいわけです。

と、ここから先は具体的な方法に触れる部分ですので、またの機会に。

投稿者 Hikari : 2010年9月 4日 21:45