2009-07-21 16 views

答えて

8

ユーザーが参照を追加しないようにする方法はありません。これは、DLLの部分からの受動的なアクションであり、発生を防ぐために行うことはできません。

あなたができることは、参考にする価値のない操作を追加することです。たとえば、DLLのすべての型が内部または非公開の場合、ユーザーがDLL内の型を使用するための参照を追加するだけではなりません。さらに、DLLをあいまいにすると、DLLが難しくなります。

+1

必要に応じて、無料の難読化ツールがVisual Studioに組み込まれています。 (Tools - > Dotfuscator Community Edition) –

+0

多くのおかげで - 私は確かに私のアセンブリを確保するために見ていますが、私には、DLLのすべての型がプライベートまたは内部の場合、そのDLLはあまり有用ではないだろう。私も難読化を見ています - Dotfuscator CEですばやく遊んでいましたが、CEは十分強力に見えないので、プロ版を入手する必要があります。 –

+0

他のアセンブリをあなたの友人にすることができ、内部型にアクセスできるようになります –

1

私は真剣にこれが可能か疑問です。たとえそれがあったとしても、完全な推力を伴う組立は、すべての証拠を偽造し、あなたのプログラムであるふりをすることができます。

5

dllへの参照を追加できないようにすることはできません。しかし、あなたが行うことができることは、彼らが参照を追加する場合、それを使用することを困難にすることです。

コードアクセスセキュリティ(CAS)を使用すると、不正なコードがアセンブリに呼び出されるのを防ぐことができますが、これは呼び出しのパフォーマンスに影響し、この目的のためには過剰です。

もう1つの方法は、dllのすべてを内部としてマークすることです。 dllのクラスにアクセスする必要がある他のアセンブリがある場合は、InteralsVisibleTo属性を使用してフレンドアセンブリにします。これにより、他のアセンブリがdllの内部クラスにアクセスできるようになります。署名されたアセンブリと一緒にこれを結びます(InternalsVisibleToの定義で使用するには十分です)。

1

役に立つ「StrongNameIdentityPermission」クラスを見つけるかもしれません。これを行うツールは次のとおりです。 ILMerge 他にもある可能性があります。

+1

ILMergeを使用してすべてをリンクしても、誰かが参照としてのEXEを追加してパブリックメソッドを簡単に呼び出すことができます。 –

0

DLL(ツール - > Dotfuscator Community Edition)を難読化して、DLLを参照できないようにすることができます。

関連する問題