コンポーネント DLL を .Net で保護するための最善の方法を誰か教えてもらえますか?
公に利用できるいくつかの DLL コンポーネントを作成しました。それに応じてライセンスが付与されますが、ソリューション内のコンポーネントを違法に使用している人がいないことをプログラムで確認したいと考えています。
何か案は?
コンポーネント DLL を .Net で保護するための最善の方法を誰か教えてもらえますか?
公に利用できるいくつかの DLL コンポーネントを作成しました。それに応じてライセンスが付与されますが、ソリューション内のコンポーネントを違法に使用している人がいないことをプログラムで確認したいと考えています。
何か案は?
人々がテクノロジーレベルで物事を行うのを阻止しようとすると、リバースエンジニアリング(難読化されたコードは決して彼らを止めない、それは彼らを遅くするだけです)、クリーンルーム設計、そしてなど。あなたの最善の策は、あなたの図書館を使用するためのライセンスを受け取っている人々に利用規約を強化し、利用規約を施行するためのあなたの法的権利を守ることです。
フェニックスが言ったように、コードはリフレクターなどのツールを介して逆コンパイルできるため、コードを完全に保護する方法は実際にはありません。
そのようなツールの1つは、Dotfuscatorを使用することです。
コードはすでに難読化されているため、メソッドが呼び出される前に、組み込みクラスをライセンスキーでインスタンス化するように強制できます。キーが無効/存在しないことがわかった場合は、メッセージボックスを表示するか、エラー/例外を返すことができます。これが行われる場所の例はたくさんありますが(Xceed.comをチェックアウトしてください)、以前の投稿が示唆しているように、エンドユーザーがアセンブリを違法に使用しようとするのを思いとどまらせるためです。それを完全に防ぐわけではありません。十分な時間とインセンティブがあれば、どんなことでも壊れる可能性があります。