バイパスPICマイクロコントローラー統合保護

プロセッサを開くことに関する最近のトピックへのコメントで、マイクロコントローラのファームウェア(いわゆるFuseビット)の読み取りに対する組み込みの保護を回避する方法に関する記事が言及されました。 私はそれが好きだった、以下はいくつかの追加と説明付きの翻訳です。



MK PIC18F1320のハッキング



私が聞いたPICマイクロコントローラーのハッキング技術の1つを試してみるといいと思いました。 通常、PICマイクロコントローラーには、メモリの一部の読み取りや変更から保護するための、一定数のいわゆるヒューズビットがあります。 ただし、すでにプログラムされ保護されているコントローラーの内容を(合法的に)読み取る必要が生じる場合があります。 典型的な例は、デバイスに関する技術文書の会社による損失、または保護されたマイクロコントローラーファームウェアを最初に開発した人々の解雇です。 これは、会社が製品ラインを更新したい場合にも頻繁に発生します。
まあ、あなたは知っています、そのようなスキルが役に立つことができるいくつかの状況があります。




私は4つのPIC18F1320を購入し、それらを苦しめ始めました。 以下に、PIC18F1320が元の切れ目のない形式でどのように見えるかを示します。

画像

最初にすることは、ケースの上部を持ち上げて、マイクロコントローラのシリコン内部が利用できるようにすることです。 これを行うには多くのアマチュアの方法がありますが、それらは通常、硝酸または硫酸の使用に基づいています。 まず、これらはあなたが本当にあなたの隣に見たいものではない可能性が高いです。 第二に、例えば硝酸は爆発物の製造のための成分の1つであるため、それらは入手が容易ではありません。 最も簡単で信頼性の高い方法は、マイクロコントローラをMEFASなどの故障解析ラボに送り 、50ドルと2日間ですでに「ヘッドレス」コンポーネントを手に入れることだと判断しました。 このプロジェクトでは、3つのマイクロコントローラーから化合物を削除しました。 そのうち2つは完全に機能し続け、1つは体全体を失いました。 チップだけが残った。 これは、高倍率での私の顕微鏡の設計上の特徴によって決まりました。

画像

チップの表面の短い検査により、以下に示すマイクロコントローラーのいくつかの特徴的な領域が明らかになりました。



表示(時計回り):8 KBフラッシュメモリ、基準電圧源、フラッシュ/ EEPROMメモリのプログラミング用チャージポンプ 、256バイトのEEPROMメモリ、組み込みのタイマーとクロック回路、コンピューティングコア、マイクロコード付きROM、ヒューズビット付きアレイ、 256バイトのRAM、ADC。 (
彼が外見でこれをどのように定義したかを知ることは非常に興味深いでしょう


ある構造がすぐに私の注目を集めました。トランジスタの上にある一連の金属スクリーンは正しい順序で配置され、その数はヒューズビットの数と一致していました。 シリコン結晶上の金属スクリーンと要素の完全な重複は非常にまれであり、それ自体で、そのような要素は注目を集めます 非常に重要なものが含まれています。



これらの金属スクリーンについて少し考えてみましょう。 彼らは何のために? まず、フラッシュテクノロジに関する興味深い事実を思い出してみましょう(このタイプのメモリは、ヒューズビットを格納するためにPICマイクロコントローラでも使用されます)。 フラッシュテクノロジーには、古いIF消去ROMチップで使用されているものと非常によく似たフローティングゲートトランジスタの使用が含まれます(2616をセラミックケースと石英ガラスで覚えていますか?)。 フラッシュとUV-ROMの両方で、トンネル効果を使用してフローティングゲートに電子を注入することにより、データが保存されます。 フローティングゲートに電子が追加されると、トランジスタの特性に顕著な変化が生じます。 違いは、フラッシュパルスが情報を消去するのに十分な電気パルスを持っているという事実にありますが、UV-ROMはフローティングシャッターから電子を「追い出す」ために高エネルギーの光子を必要とします。 これには、約250 nmの波長の紫外線が必要です。 紫外線が弱すぎないようにするために、石英ガラス(古いROMチップの同じウィンドウ)が使用されます。

上記の事実から導き出せる重要な結論:フラッシュメモリはUV放射を使用して消去することできます。 UV-ROMデバイスとほぼ同じトランジスタ構造です。 フラッシュメモリを備えたデバイスのケースは通常、紫外線が結晶表面に入るのを防ぎますが、PICマイクロコントローラーにはケースのプラスチック製の上部がないため、UV放射を適用してその結果を確認できます。

PICコントローラーを0x00から0xFFの連続値でプログラムし、シャワーを浴びてメールをチェックしながら、消しゴムUV-ROMで露光する実験を行いました。

消しゴムからコントローラーを取り外すと、フラッシュメモリが実際に消去されて元の状態に戻り(すべての値が0xFF)、保護ヒューズビットも非アクティブになっていることがわかりました。 また、紫外線はEEPROMメモリにも影響することに注意してください。

保護ヒューズビットの上の金属プレートは、プログラムのフラッシュメモリから別々に落下するのを防ぐだけの役割を果たすことは明らかです。



写真は、私が遭遇した問題(およびその解決策)を示しています。 トランジスタフラッシュメモリの情報を消去するには、強い紫外線がフローティングシャッターに到達する必要があります。 また、金属スクリーンは紫外線を効果的に反射することでこれを防ぎます。

ただし、酸化物とシリコンの光の屈折率の違いにより、特定の角度で落ちる光はその表面で反射されます。 この効果をよりよく理解するには、プールに飛び込んで、ほぼ目の高さで水を見ることができます。 水と空気の屈折率の違いだけで、水は非常に良好な反射率を持ちます。 これは、全反射と呼ばれます。

この反射は、UV放射がスクリーンの金属表面で跳ね返り、トランジスタのフローティングゲートに戻るようにするためだけに使用できます。 そのため、ROMイレーサー内のPICマイクロコントローラーを回すと、フラッシュメモリのトランジスタ領域に反映されて消去されるように十分な光を向けることができます。 いくつかの試みの後、私は非常にうまくいくように見える技術を開発しました。



これは、ROMイレーザー内のマイクロコントローラーの写真です(コントローラーの周りの青い光はUVランプによるものです)。 マイクロコントローラは、帯電防止材料に斜めに取り付けられています。

しかし、これはすべて、マイクロコントローラープログラムが保存されているフラッシュメモリのその部分の必要なデータの消去を防ぐことはできません。 このデータの消去を防ぐために、連続マスクが使用されます。これは、電気テープから非常にきちんと切り取られ、2本のピンセット、顕微鏡、揺れのない手で水晶に取り付けられました)シリコン基板から反射した紫外線を吸収します。

画像

これは、フラッシュ領域にマスクが取り付けられた水晶の写真です。

この手法を使用して、メインのマイクロコントローラープログラムを消去せずに、最終的に保護ヒューズビットをリセットすることができました。 同様に、フラッシュメモリの一部のみを消去できます。 やった!



備考


明らかに、説明されている方法は、再プログラム可能なヒューズビットを含むデバイスにのみ適しています。 保護ビットが1回しかプログラムされていない場合(およびこれが発生する場合)、この手法は適切ではありません。 これらのデバイスでは、チップ上の細い導体は単純に燃やされます。 しかし、私の同僚は、彼らの制御方法もこの場合のために開発されたと言った(私は彼らがいくつかの同様の顕微手術の方法で接触を回復すると思う)。 また、この操作にはどれほど費用がかかることも知っています。

また、一般的に人気のあるAVRマイクロコントローラーでは、ヒューズビットが同様の構造を持っている(それらは同じ方法で再プログラムされる)ため、説明した手法がそれらにも適していることを期待できます。



UPD:可能性のある変換の欠陥を修正(バンドギャップ、磁気テープ、およびコントローラーのメモリを充填する方法について)。



UPD 2:同じトピックですが、AVRマイクロコントローラーについては、 ここここで説明します 。 ここでは、ファームウェアの読み取りを注文したり、スペシャルを購入したりできます。 アプライアンス。



元の記事はこちらです。



All Articles