私は、他の人があなたの公開されたdllを使用できないようにする方法を考えています。たとえば、いくつかのアセンブリに分かれた軽量なWinUI写真処理ツールを作成するとします。それらの1つは、基本的にすべてのコアフィルタリング作業を行う貴重なfilters.dllアセンブリです。アプリケーションを公開したら、他人がこのfilters.dllを取得して他のプロジェクトでそれを使用するのを防ぐ方法を教えてください。強力な名前付きDLL機能を使用して制限する
私はすでに良い例hereを持っていますが、私のために動作していないようStrongNameIdentityPermissionAttributeを見てみました、コードはただのセキュリティ例外をスローせずに動作します。..
任意のアイデア?
依存するアセンブリをSNINGする場合、internalsVisibleToは[SNトークンを含む]完全なアセンブリ名である必要があることに注意してください。しかし、ここで私の主な関心事は、InternalsVisibleToは、難読化者が一般的には内部よりも攻撃的であることを除いて、多くのことを助けるものではないということです。 –
内部はアセンブリを直接参照する人を止めるでしょうし、内部も混乱させることができますが、それはパブリックではそうではありません。あなたが難読化だけに頼っていれば、あなたのパブリック・インターフェースはまだ再利用されています。最終的にコードが顧客に配備されていれば、あなたは敗北戦いに挑戦しています。 –
@ジョン:慎重、それは私が言っていたことではない - 内部doesntは「難読化できる」。ほとんどの難読化者には、「これは私の完全な集合体です」と言われているスイッチがあり、これもまたパブリックを難読化します。リフレクションはすべてをプライベートに呼び出すことができるため、通常、ObfuscationAttributeまたはObfuscatorの設定のいずれかを使用して、難読化ツールが意味をなさないと思っても、難読化されてはならないことを示す方法があります。 「直接参照する」の試みで阻止されているpeopelの価値は、IP保護メカニズムとしては役に立たないよりも悪いです。 –