こんにちは、C#の特定のdllがリフレクターで開かれるのを防ぐ方法はありますか?多くのdllを開くことができ、リフレクターを使用してコードを取得できます。ただし、一部のdllを開こうとすると、「特定のdllにCLIヘッダーが含まれていません」というエラーメッセージが表示されます。
どうすればこのようなdllを作成できますか?
これらのDLLがマネージコードdllであることを確認しますか?そうは思いません。CLIヘッダーが含まれていない場合、C#で記述されていません。
そしてあなたの質問のために、あなたはマネージドDLLが逆コンパイラで開かれるのを防ぐことはできません、あなたがすることができるすべてはそれを難読化することです。
.net dll を保護したい場合は、アセンブリを難読化できます
商用のものもあります...
「特定の dll には CLI ヘッダーが含まれていません。」. これらはマネージド DLL (.net) ではないため、Reflector にメッセージが表示されます。
かつて、リフレクターでクラッシュを引き起こした特定のILコードがあったと思いました。しかし、このバグは現在修正されています。
難読化は素晴らしいです-コードの特定の重要な部分を暗号化し、実行時に復号化+ロード+コンパイルすることもできます。問題は、パスワードの保存方法です。
リフレクターによって開かれるのを防ぐことはできません。
Reflector が .Net アセンブリを開くのを防ぐ方法はありませんが、アセンブリを難読化することで無意味にします。難読化後、クラス/メソッド/フィールドの名前が変更され、メソッド内のインライン文字列が暗号化され、メソッド呼び出しが非表示になり、メソッド制御フローがスクランブルされます。そのため、Reflector を使用する人は誰でも大量のゴミを目にし、そのほとんどを理解することができなくなります。
免責事項: 私は、 Crypto Obfuscatorの開発者である LogicNP Software で働いています。