回答:
チップを指定しなかったので、以下は主に8ビットのatmegaデバイス向けですが、一般的な情報です。より具体的な情報については、特定のチップのデータシートの「メモリプログラミング」セクションをお読みください!
そうは言っても、あなたが言ったように、すべてのAVRデバイスにはLB1とLB2という2つのロックビットが含まれています。これらを(0、低に)プログラミングすると、以下の表に従って、フラッシュおよびEEPROMメモリに書き込まれた内容に保護が追加されます。保護レベルは3つのモードに分けられます。モード1は保護を提供せず、モード3は最大の保護を提供します。ロックビットを再プログラムするだけで、より高い保護モードに移行できます。
AVRでは、「高」ビットを「低」に変更できますが、その逆はできません。「低」ロックビットを「高」に変更することはできないため、保護レベルを下げることはできません。ロックビットをクリアするには、フラッシュメモリを消去する完全なチップ消去が必要です。
これらの2つのロックビット(LB1およびLB2)が低いと、99.9%の人がファームウェアを盗むのを防ぎます!おそらく99.9%以上。ほとんどの場合、コードをリバースエンジニアリングする方が簡単です。
それでは、ユーザーがカスタムブートローダーによってファームウェアを更新し、同時に読み取りからフラッシュを保護する方法はありませんか?
ブートローダー保護ヒューズ(BLB12およびBLB11)を備えたデバイスでは、私の知る限り(誤解される可能性がありますが、以前はこれに問題があったと思います)、カスタムブートローダーセクションをロックし、 SPIを無効にして、 97〜98%の人々から保護されています。
ただし、ロックビットがプログラムされていない場合、有効なメモリロック機能はありません!!! ISPの無効化は、70%のユーザーをブロックするのに十分です。
いくつかの追加情報については、セルフプログラミング機能を備えたデバイスのブートローダーに関連するロックビットを除き、ロックビットとヒューズは通常のフラッシュまたはEEPROMスペースに配置されず、ソフトウェアからもアクセスできません。表2このアプリノートの、特定のデバイスで何ができるかを特定するのに役立ちます。
AtmelのAVRラインは高度なセキュリティデバイスではありません(明示的に明記されていない限り!)。そのため、コードの安全性は保証されていません。すべての非セキュアデバイス(および悲しいことに、一部のセキュアデバイスでも)と同様に、それらは一般的な攻撃を受けやすいです!
編集
HVプログラミングインターフェイスヘッダーをオンボードに配置します。しかし、誰かがHVプログラマーを使ってフラッシュを読むことはできますか?HVプログラマーは、ISP / Jtagが無効になっていてもチップを消去できることを知っています。
どうしても必要な場合を除き、ボードの設計にHVプログラマーを含めるべきではないと思います。HVプログラマー(12ボルトの信号)は、ロックされた(ほとんどの場合ロックされた)チップをプログラムするための安全対策としてのみ利用可能です。理論的にはこれがされただけでは何も読んでいないデバイスをプログラムするためのもの。そして、私は読書を可能にする悪用について聞いたことがありません。
ブートローダーをアップグレードするために(時々)HVプログラミングインターフェイスヘッダーをオンボードに配置します。しかし、誰かがHVプログラマーを使ってフラッシュを読むことはできますか?HVプログラマーは、ISP / Jtagが無効になっていてもチップを消去できることを知っています。
ブートローダーを介してロックされたフラッシュを更新する方法があると思います(内部書き込みフラグやISRに関係するかもしれません)。しかし、メモを検索し、テストする必要があります。私はこれを〜20時間行うことはできません。そのため、これとあなたが言及したプロセッサのみに焦点を当てた新しい質問をすることを強くお勧めします。とてもいい質問です!
LB1
しました。これは、LB2
アップグレードの目的でブートローダーを使用するオプションを制限するものとして私の質問でも説明しました。そのため、オプションではありません。用として、BLB12
そしてBLB11
-私は理解していないものだという。(続き)
一部のATMegaデバイスでロックビットを使用しても、ブートローダーでコードを更新できます。
ATMega 328でLB1とLB2をプログラミングしました。その後、ブートローダーを呼び出し、メインプログラムを更新しました。すべてが完全に機能しました。
ISPは、フラッシュ/ eeprom /ヒューズを読み書きすることはできませんが、ブートローダーはアプリケーションセクションを書き込むことができます。
ISPでのチップ消去はロックビット(LB1およびLB2)をクリアしますが、フラッシュ/ EEPROM全体も消去するため、コードを保護できます(ただし、ブートローダーがハッキングされないことを保証する必要があります)