他のプログラマがアセンブリをラップしないようにするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1607107

質問

.NetでコンポーネントDLLを保護する最良の方法を教えていただけますか?

私は一般公開されるDLLコンポーネントをいくつか作成しました。それに応じてライセンスが付与されますが、ソリューション内のコンポーネントを違法に使用していないことをプログラムで確認したいです。

アイデアはありますか

役に立ちましたか?

解決

コードは既に難読化されているため、メソッドが呼び出される前に、組み込みクラスをライセンスキーでインスタンス化するように強制できます。キーが有効/存在しないことがわかった場合は、メッセージボックスを表示するか、エラー/例外を返すことができます。     これが行われる場所には多くの例があります(Xceed.comをチェックしてください)が、以前の投稿が示唆しているように、単にエンドユーザーがアセンブリを違法に使用しようとするのを防ぐためです。完全に防ぐわけではありません。十分な時間とインセンティブが与えられれば、どんなものでも壊れることがあります。

他のヒント

技術レベルで人が物事を行うことを防止しようとすると、リバースエンジニアリング(難読化されたコードがそれらを停止することはなく、遅くするだけです)によってそれらを停止するための努力に専念します部屋のデザインなど。あなたの最善の策は、ライブラリを使用するライセンスを受け取っている人に利用規約を強化し、利用規約を施行する法的権利を守ることです。

できる最善のことは、コードを難読化することです。これは100%安全ではなく、リバースエンジニアリングが可能です。

dotfuscator

いいですね。

「配布しない」の短い不正アクセスを防止する100%確実な方法はありません。

ハードウェアまたはソフトウェアのライセンスデバイスを調べることができます。コード全体にライセンスチェックを振りかけ、デバイスが存在しない場合はすべてを中止します。

別のアイデアとして、アセンブリ内のすべての型を internal として宣言し、 InternalsVisibleTo アセンブリ属性。これは通常、内部メンバーの単体テストに使用され、実際にどれだけ安全かはわかりません。これは、人々がアセンブリを分解するのを防ぐことはないので、難読化することをお勧めします。ライブラリを販売し、ライセンスの顧客がそれを使用するだけの場合はまったく機能しません(すべてにカスタムビルドを提供する必要があるため)顧客)。

フェニックスのように、リフレクターなどのツールを使用してコードを逆コンパイルすることができるため、コードを完全に保護する方法は実際にはないという。

そのようなツールの1つは、 Dotfuscator を使用することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top