chakokuのブログ(rev4)

テック・コミック・DTM・・・ごくまれにチャリ

SDのアンロックツールをLPC812で組みなおす

以前、多分意図せずにロックがかかってしまったと思われるSDのロックをはずすべく、LPCXpresso LPC1769でSDカードのコマンド(CMD42)を叩く回路を組んでいたけど、長時間電池駆動させるには消費電力が低いと思われるLPC8XXシリーズが有効だろうと思い、LPC812で組みなおした。
LPC810ではI/Oが少なすぎて回路を組むことができなかったけど、LPC812を使うことで、Serial,I2C,SPIのI/Oで周辺デバイスをつなぐことができた。I2Cを使って液晶とEEPROMに接続させていて、どこまでテストしたか?都度EEPROMに書き込むことで、電源が切れても再度投入すればリジューム可能になっている。

左の写真は、USBで接続できる外付けバッテリーをつないで、24/365で連続試験が可能になった状態。不在時はバッテリーで駆動して、家に人がいるときはACからバッテリーを充電する予定

しかし、、探査空間はパスワード長が16byte(128bit)なので、いくら24/365で動かしても自分が生きてるうちにはすべての組み合わせを網羅するのは無理。。宝くじに当たるぐらいの確率に期待するしかないのであった。そもそも、読めないSDは本当にロックの問題なのか?という懸念もあるけど。

ひとまずSDアンロックネタは落ち着いたので、k346coil さんから情報(ソース&回路図)をもらったPWMで音を鳴らしてみるテーマに移行。もちろん、使うマイコンはお茶目なLPC810です。

■追記(140906)
現在のアルゴリズムはFFFF...FF(16byte)からデクリメントしながら0000...000(16byte)までの全空間をしらみつぶしに調べる方法だけど、(コメントいただいた通り)常識の時間内に終わるはずがない。今取り組んでいるSDカードが読めないトラブルの原因は、やはり偶然に何かのパスフレーズが設定されていたのだとして、そのパスフレーズはFFFFFF0000000とかそういった行儀の良い数字では多分なくて、ベースがFFで一部がビット落ちのFEFEEEFEFEEFEEEFEとか、はちゃめちゃにランダムな、5343A395EAB04BEとか多分そういうのが正解と思われる。だから、、アルゴリズムとしては正攻法だけど終わるはずのない、しらみつぶし全空間チェックではなくて、乱数に頼って、当たればラッキーの方がまだ期待が持てるのでは?とも思えるのであった。単に、宝くじのような夢があるというだけか。気持ちの問題か。
ソフト的に乱数を発生させる方法として、線形合同法ってのがあって、これで乱数を発生させながら、あてずっぽで試行するようにアルゴリズムを変える予定。
http://ja.wikipedia.org/wiki/%E7%B7%9A%E5%BD%A2%E5%90%88%E5%90%8C%E6%B3%95

■関連記事

茶国::SDカードのロックをはずす
http://d.hatena.ne.jp/chakoku/20140321
SDカードの仕様書(マルチメディアカード ユーザーズマニュアル(日立))
http://smartdata.usbid.com/datasheets/usbid/2000/2000-q4/j603002_mmc.pdf