
2026/08/20 4:06
ロックされた・非アクティブ化された電子廃棄物 Cricut Maker のアンロック方法
RSS: https://news.ycombinator.com/rss
要約▶
Japanese 翻訳:
保証期間終了後の交換または値引きアップグレードに伴うロック状態の無効化された Cricut Maker が、脆弱な USB CDC コミュニケーションを傍受することで電子廃棄物から復元されたとのこと。機器は「マシンが無効化されました」というエラーを表示しており、そのシリアル番号が古いデバイスのものであったためです。証明書ピニングによりネットワーク傍受に失敗したため、研究者らは平文の USB トラフィックを対象に視線を移しました。分析の結果、シリアル番号はチェックサムや暗号化なしで送信されていることが判明しました。Raspberry Pi RP2040 を USB ホストプロキシとして使用(正常な USB ホスト機能を確保するためにクロック速度を 240MHz にオーバークロック)、そしてベンダー/製品 ID のメタデータを元の Cricut と一致させるように設定することで、チームはハードウェアレベルで有効なシリアル番号を直接書き換えました。EEPROM がアクセスできず、MCU に対応するデバッグツールが存在しなかったため分解には着手しなかったものの、この方法は物理的なロック機構および証明書ピニングを回避し、新規登録された実在しないシリアル番号をユーザーアカウントに追加することを可能にし、安価で入手可能なローラーなどの交換部品と問題なく動作させることができました。本件は、製造業者がデバイス識別データを暗号化しておらず、その結果アイデンティティのスプーフィングやロックされた電子廃棄物の機能的資産としてのリサイクルが可能な重大な脆弱性を浮き彫りにしました。
本文
故障した Cricut Maker のハッキングと機能回復事例:EEPROM 書き換えから USB プロキシまで
発見と検証
- 対象機器: ガーバー回収時に目についた「Cricut Maker」。
- 状態: 外観は良好。ローラーのみ故障しており、他の部品の破損やロックによる廃棄を疑った。
- 判断: メーカーの厳しい対応方針(不具合報告やロック解除手続き)を知るが、試す価値があると考え持ち帰って検証した。
初期状態の確認と限界
- 代替部品: Alex の検索により、ローラーの代替品が安価に入手可能だった。
- 電圧実験: 推奨電圧(18V)ではなく12Vで動作させたところ、「生命の徴候」が見られた:
- 自己テストを通過する。
- ソフトウェアとの通信が可能になる。
- ただし、接続時に「Machine deactivated」という警告メッセージは依然として表示された(ロック解除されていない状態)。
ハードウェアによるシリアル番号書き換えの試み
1. EEPROM 交換アプローチ
- 方針: マザーボード上のシリアル番号を書き換え可能なEEPROMを探す。
- 課題:
- 組立は素人向きではない複雑さがあった。
- ローラー交換に不可欠だが、EEPROMが存在せず、MCU のデバッグツールも持っていなかった。
2. ネットワーク通信の傍受アプローチ
- 方針: 通信を傍受し、シリアル番号を書き換えたり、成功メッセージを返したりする。
- 課題:
- アプリケーションセキュリティ対策(証明書ピンニングなど)により実装が予想以上に困難だった。
- 「不可能」ではなく、「手軽な方法」が見つからなかっただけである。
3. USB 通信傍受とプロキシ構築(成功事例)
-
方針: カッターと PC の間の USB メッセージをキャプチャし、USB CDC プロトコルを利用してパケットを書き換える。
-
環境構築:
- Wireshark で USB メッセージをキャプチャ。シリアル番号送信パケットを発見(チェックサムや暗号化なし)。
- Raspberry Pi に RP2040 を搭載し、USB ホスト兼クライアントとして動作させる小型コンピューターを作成。
-
実装詳細:
- TinyUSB の Arduino サンプル(USB ホスト機能・CDC シンプルエコー)を利用。
- オーバクロック設定: USB ホストが正しく動作するには240MHzへのオーバクロックが必要だった。
- メタデータ調整: ベンダー ID や製品 ID、記述情報など、元の機器と一致するように設定。
-
書き換えロジック:
- カッターから送信されるパケットが正常であれば、そのシリアル番号を別の番号に置き換える。
- シリアル番号は順次発行されており、Cricut 公式サイトで確認可能な全単体のステータスを利用可能。
-
結果:
- ハードウェアレベルでの書き換えにより、ソフトウェア側は何も検知しない。
- アカウント上に単位が表示され、本来存在しないシリアル番号を登録できる状態に復帰した。
セキュリティ懸念と法的免責
- 新たな疑問: 第三者が他ユーザーのシリアル番号を取得し、ロックアウトや不正登録を行える可能性。
- コード共有について:
- 動作確認済みのコードを公開しない予定。
- オーストラリア著作権法との兼ね合いおよび非弁護士としての判断による。
- ただし、TinyUSB のサンプルコードと似通っているため復元は容易。
完了後の処理と使用感
- 整備手順:
- ユニット清掃。
- ローラー交換(ヒント: 取り付けた際は熱湯で柔らかくしてから装着する)。
- Cricut の再組み立て。
- RP2040 の小型ケース作成。
- 結論: 新品同様の状態で機器を使用可能。
その他の代替解決策の検討
ソフトウェアのみでの解決策は存在すると考えられる。主な候補は以下の通り:
- ネットワークトラフィックを傍受するか、アプリをパッチ適用してシリアル番号を偽装する。
- Cricut USB CDC 接続へのプロキシドライバを開発する。
- Cricut USB CDC 接続を模倣し、Bluetooth でカッターと通信するドライバを書く。
- ファームウェア更新プロセスを探り、更新時にシリアル番号を書き換える(パッチ適用)。
- Bluetooth プロキシ装置の開発。
- Bluetooth チップと Cricut MCU の間に別の MCU を挿入し、Bluetooth 送信前にシリアル番号を書き換える。
注釈: これら全ての手法の検証は行われていません(筆者が USB プロキシ方式で動作確認済み)。いずれも検討に値する選択肢です。