アセンブリ A を参照するコンソール アプリケーションがあります。A.dll が改ざんまたは置き換えられた場合に、アプリケーションが実行されないようにしたいと考えています。
1 つのオプションは、厳密な名前の署名を使用することです。しかし、厳密な名前のバイパスについて心配する必要はありますか?
他に良いオプションはありますか?
アセンブリ A を参照するコンソール アプリケーションがあります。A.dll が改ざんまたは置き換えられた場合に、アプリケーションが実行されないようにしたいと考えています。
1 つのオプションは、厳密な名前の署名を使用することです。しかし、厳密な名前のバイパスについて心配する必要はありますか?
他に良いオプションはありますか?
保護を構築できれば、ハッカーはそれを破ることができます。改ざんを防ぐことについてあまり心配しないでください。ハートビートでそれを壊すことができる人はおそらく気にしません.
最善のアドバイスは、特にこの方法でアプリケーションを保護する目的でチームによって構築された製品のライセンスを取得することです。暗号化と同じように、通常は自分で作成しないことが最善です。
dll の MD5 ハッシュを使用できますが、アプリを壊したい人は誰でもリフレクターを使用して、実際に何をしているかを調べ、おそらくプログラムをまっすぐに変更するだけなので、それほど確実ではありません。これに役立つコード難読化ツールを入手できますが、ハッキングを完全に防止できるものはありません。それは本当にトレードオフです - 誰かがあなたのdllを変更するのを防ぐことのあなたの価値は何ですか? 誰かがそうなる可能性はどのくらいですか?そして、それを防ぐには、時間=お金の観点からどれくらいの費用がかかりますか?
実際には、コードやアセンブリなどを防御しようとさえしないでください。つまり、公共の場などでコンピューター上で実行できる(そして設計されている)場合、それを保護することは不可能です。自分のコンピューターで、優れたツールなどを使用して、好きなことを行うことができます。すぐに。
だから、試さないでください、あなたはただあなたの時間を無駄にするでしょう。
そのページの著者によると:
代わりに、整合性チェックのために、Authenticode 署名を実際に使用する必要があります。
必要なのは www.red-gate.com/products/smartassembly/ のような製品で、そのような製品はたくさんあります。ただし、アセンブリをある程度保護するだけで、100% 安全なものはありません。
Web ブラウザが行うことを行い、信頼できるサード パーティからの証明書に依存します。