2009-05-14 2 views
3

HI、 C#で特定のdllがリフレクタで開かれないようにする方法はありますか?私はdllの多くを開くことができ、リフレクターを使用してコードを取得することができます。しかし、いくつかのDLLを開こうとすると、「特定のDLLにはCLIヘッダーが含まれていません」というエラーメッセージが表示されます。リフレクターのようなソフトウェアでDLLが開けないようにする方法はありますか?

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

答えて

11

これらのDLLは、マネージコードのDLLであることを確認してください。私はそうは思わない、彼らはCLIのヘッダーが含まれていない場合、彼らはC#で書かれていません。

あなたの質問では、マネージドDLLがデコンパイラで開かれないようにすることはできません。できることはすべて難読化することです。

+3

またはそのことについては、他の.NET言語... – Pondidum

+2

の開発者は、LogicNPソフトウェアのために働く彼はC#で記述されたDLLについて尋ねられたので、私は特に、C#のを述べました。 –

+0

DEVENV.EXEのようにCLIヘッダーを削除できないのはなぜですか? – AMissico

4

あなたは.NETのDLLを保護したい場合は、あなたのアセンブリ

Free .NET Obfuscation Tools

を難読化できますが、あまりにも商用のものを持っている...

「particual dllがCLIヘッダーが含まれていません。 "彼らは管理されたdll(.net)ではないので、Reflectorにメッセージが表示されます。

+4

管理DLLを逆コンパイルから保護することはできません。逆コンパイルされたコードをobfuscatorで理解することが難しくなります。 – smok1

+0

正確には... – abmv

2

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

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

リフレクタで開けないようにすることはできません。

2

Reflectorが.Netアセンブリを開けないようにする方法はありませんが、アセンブリを難読化することで無意味にすることができます。難読化後、クラス/メソッド/フィールドの名前が変更され、メソッドのインライン文字列が暗号化され、メソッド呼び出しが隠され、メソッド制御フローがスクランブルされます。だから、リフレクターを使用する人は誰もが大量のごみを見て、そのほとんどを感知できません。

免責事項:私は確かにCrypto Obfuscator

+0

実際には、リフレクタがチェックして、ネットアセンブリを開いているかどうかをチェックするので、チェックのいずれかを失敗させると、それが開かない – Qwerty01

関連する問題