プロジェクトの 1 つで使用する dll ライブラリがあります。他の人がライブラリ内のメソッドにリンクしてアクセスできるようにしたくありません。それを保護することは可能ですか?ありがとう!
編集:メソッド名を「非表示」にしたり、dll 内でランダムにする方法はありますか?
キーを要求することで、その使用を制限しようとすることができます。間違ったキーが渡された場合、ライブラリは機能しません。
ただし、これはアプリケーションを逆コンパイルし、指定したキーを確認して同じキーを使用することで簡単に回避できます。
もう 1 つの可能性は、すべてのパブリック クラスのすべてのパブリック メソッドにチェックを追加することです。このチェックにより、呼び出し元のアセンブリが自分のものであることを確認できます。
このチェックの実装によっては、同じ名前の小さなプロキシ アセンブリを作成することで簡単に回避できます。
一般的に:それを防ぐことはできません。コピー防止と同様に、相手があなたのアセンブリにアクセスできれば、すべてを回避できます。つまり、ソース コードではなく、コンパイルされたアセンブリを意味します。
短い答えはノーです。誰かがあなたのライブラリにアクセスしたい場合、彼らは方法を見つけるでしょう。
ただし、ライブラリを難読化して問題を難しくすることはできますが、確実に防ぐ方法はありません。
1 つの方法はフレンド アセンブリです。アセンブリに
マークを付けるinternal
と、指定されたアセンブリのみがライブラリにアクセスできます。
ただし、ライブラリを「簡単な方法」で使用することは禁止されています。
Sentinel Hasp などのサードパーティ製品を使用して、ライブラリと実行可能ファイルを無許可で保護することはできますが、アプリケーションのパフォーマンスとコストがかかり、誰もそれを壊さないという保証はありません。しかし、保護を破るには、海賊は懸命に働かなければなりません。