.NET DLL とアプリケーションがあります。DLL は C++/CLI で記述されており、「混在」しています。つまり、部分的に管理されたコードと部分的にネイティブなコードです。
1. すべてのマネージ
コードを難読化して、逆アセンブルできないようにする
2. 混合 DLL のパブリック メソッド/クラスを難読化して、誰も自分のアプリケーションで DLL を使用できないようにする (つまり、パブリック名をごちゃまぜにする)。
はい、難読化が完璧ではないことは理解しています。この 2 つの目標は、管理要件です。これを処理できる唯一のアプリは、Dotfuscator Professional Edition のようです。残念ながら、それは、セールスマンに価格を教えてもらうよう頼まなければならない、信じられないほど迷惑なアプリの 1 つです。別の解決策を知っている人、または安価で合法的なコピーを購入するのに適した場所を知っている人はいますか?
マネージ コードで DLL を書き直すように言わないでください。それには 1 か月の作業が必要であり、承認を得ることができません。:-)
難読化がどれほど優れているかについて、私は特に偏執的ではないことに注意してください。アプリ内のすべてのメソッドとクラスの名前をごちゃまぜにするものであれば、おそらく十分です。
私が試した他の難読化ツールは次のとおりです。
Dotfuscator Community Edition には Visual Studio 2008 が付属していますが、混合アセンブリはサポートされていません。
Eazfuscator .NET はシンプルで無料ですが、混合アセンブリをサポートしていません。
{smartassembly} は、1 つのライセンスで 500 ドルです。興味深い機能がいくつかありますが、混合アセンブリはサポートされていません。
サラマンダーは800ドル。混合アセンブリを完全にサポートすると主張しているが、難読化された dll を使用しようとすると、アプリケーションがクラッシュする
.NET Reactor は、1 つの開発者ライセンスで 180 ドルです。混合 DLL の「部分的な」難読化をサポートします。残念ながら、DLL のパブリックタイプを難読化しても機能しません。.exe はクラスを見つけることができません。DLL を .exe にマージ/パックする機能がありますが、混合 DLL を使用すると機能しません (.exe の一部であっても、exe は DLL のアセンブリを見つけることができません)。
スケーターは、単一のライセンスで 300 ドルです。彼らのウェブサイトには、混合アセンブリをサポートしていると主張するものは何もありません。アプリを試してがっかりするのにうんざりしているので、そうではないと思います。
また、Microsoft の ILMerge を試して、DLL を .exe とマージしてから難読化できるかどうかを確認しましたが、混合 DLL でチョークするようです。
Dotfuscator に代わるものや、正規のコピーを購入するのに適した場所について何か提案はありますか? 安価に販売していると主張する名前のないサイトをいくつか見つけましたが、それらはロシアの海賊版だと思います.