3

.net アセンブリを逆コンパイルおよびリバース エンジニアリングすることは、標準的な方法です。

既存のアプリケーションに追加するいくつかのプラグイン アセンブリをリリースしたいのですが、それらを他のユーザーが利用したくありません。

これらのアセンブリのソースを非表示にするには、どのような方法がありますか?

4

6 に答える 6

14

ターゲット ハードウェアを制御しない限り、100% の保護を実現することは理論的に不可能です。CPU がそれを実行できれば、十分な時間と知識があれば、人間もそれを読み取ることができます。これは C# に限ったことではありません (ただし、通常はマネージ言語の方が簡単です)。Dotfuscator や XenoCode などの難読化ツールを使用して、逆コンパイルされたコードを理解しにくくすることができます。本当に心配なら、サーバー ベースのアプリケーションに移行する必要があります。

于 2010-01-24T23:52:13.873 に答える
2

難読化ツールを使用できます。これは役に立ちますが、リバース エンジニアリングは依然として非常に可能です。

ユーザーのコンピューターは何をする必要があるかを知る必要があるため、あなたがそれを伝える必要があります。コンピュータの所有者はコンピュータを完全に制御できるため、コンピュータに何をするように指示したかを自分自身で知ることができ、別のことを行うように指示することができます。

于 2010-01-24T23:51:54.920 に答える
1

ステガノグラフィと呼ばれるデータを隠す方法があります。まさにこれを行うためのフレームワークを書いたCodeProjectでカバーされた多くの記事の著者がいます。記事のタイトルは、1 から 12 までのシリーズの「ステガノグラフィー」だったと思います。作者の提携サイトです。

「Phoenix Protector」と呼ばれる難読化ツールもあり、.NET コードを難読化できます。個人的には試していませんが、良さそうです。

これがお役に立てば幸いです。よろしくお願いします、トム。

于 2010-01-25T01:03:54.713 に答える
0

CLR COM API を使用して CLR をホストするアプリを作成できます。これにより、最初にネイティブ コード レベルでアセンブリを読み込んでデコードできます。いくつかのアンチリバース エンジニアリング手法を使用してネイティブ ローダーを強化すると、十分なセキュリティを実現できます。

于 2010-01-25T00:07:18.907 に答える
0

少なくとも、DLL を難読化して、ハッカーや競合他社がコードを表示して理解できないようにする必要があります。難読化は 100% 絶対確実というわけではありませんが、彼らの行く手には十分に大きな障害があります。

Crypto Obfuscatorなどの一部の難読化ツールには、すべての dll をメインの exe に埋め込む機能があるため、dll がディスク上で明示的に表示されず、Reflector などのリバース エンジニアリング ツールで開くことができません。

于 2010-05-29T05:30:23.100 に答える
0

それはソフトウェアです。何でも可能です。バイナリを暗号化し、実行時にそれらのすべてまたは一部をアプリケーションに復号化できます。誰にでもできるというわけではありませんが、どれだけ厳格になりたいかを決めるのはあなた次第です。

于 2010-01-24T23:51:50.940 に答える