3

こんにちは、C#の特定のdllがリフレクターで開かれるのを防ぐ方法はありますか?多くのdllを開くことができ、リフレクターを使用してコードを取得できます。ただし、一部のdllを開こうとすると、「特定のdllにCLIヘッダーが含まれていません」というエラーメッセージが表示されます。

どうすればこのようなdllを作成できますか?

4

4 に答える 4

11

これらのDLLがマネージコードdllであることを確認しますか?そうは思いません。CLIヘッダーが含まれていない場合、C#で記述されていません。

そしてあなたの質問のために、あなたはマネージドDLLが逆コンパイラで開かれるのを防ぐことはできません、あなたがすることができるすべてはそれを難読化することです。

于 2009-05-14T10:16:56.203 に答える
4

.net dll を保護したい場合は、アセンブリを難読化できます

無料の .NET 難読化ツール

商用のものもあります...

「特定の dll には CLI ヘッダーが含まれていません。」. これらはマネージド DLL (.net) ではないため、Reflector にメッセージが表示されます。

于 2009-05-14T10:21:11.263 に答える
2

かつて、リフレクターでクラッシュを引き起こした特定のILコードがあったと思いました。しかし、このバグは現在修正されています。

難読化は素晴らしいです-コードの特定の重要な部分を暗号化し、実行時に復号化+ロード+コンパイルすることもできます。問題は、パスワードの保存方法です。

リフレクターによって開かれるのを防ぐことはできません。

于 2009-05-14T10:47:44.990 に答える
2

Reflector が .Net アセンブリを開くのを防ぐ方法はありませんが、アセンブリを難読化することで無意味にします。難読化後、クラス/メソッド/フィールドの名前が変更され、メソッド内のインライン文字列が暗号化され、メソッド呼び出しが非表示になり、メソッド制御フローがスクランブルされます。そのため、Reflector を使用する人は誰でも大量のゴミを目にし、そのほとんどを理解することができなくなります。

免責事項: 私は、 Crypto Obfuscatorの開発者である LogicNP Software で働いています。

于 2011-08-11T05:04:46.217 に答える