.NETアプリは保護が難しいことを知っています。私はRedGateReflectorを使用しており、一般的に言えば、多くの.NETdllからソースコードを取得できることを知っています。
しかし、私の質問は-アプリケーション全体を逆コンパイルすることは実際に実行可能ですか?
つまり、実行可能なVSソリューションを作成して、海賊がF5キーを押すだけで、作成者が自分のマシンにいる場合とまったく同じ結果を得ることができるようにしますか?
.NETアプリは保護が難しいことを知っています。私はRedGateReflectorを使用しており、一般的に言えば、多くの.NETdllからソースコードを取得できることを知っています。
しかし、私の質問は-アプリケーション全体を逆コンパイルすることは実際に実行可能ですか?
つまり、実行可能なVSソリューションを作成して、海賊がF5キーを押すだけで、作成者が自分のマシンにいる場合とまったく同じ結果を得ることができるようにしますか?
Reflectorには、アセンブリをコードにダンプできるプラグインがいくつかあります。
http://www.denisbauer.com/home/reflectorfiledisassembler
http://filegenreflector.codeplex.com/
しかし、それでプロジェクトファイルを作成できるかどうかはわかりません。
小さなアプリケーションの場合、それは可能であり、実行可能です。クラスを1つずつ逆コンパイルし、コードをコピーしてVisualStudioに貼り付ける必要があります。
大規模なアプリケーションの場合、可能ではありますが、コピー/貼り付けプロセスが非常に面倒になるため、実際には実行できません。
それは本当にあなたが書いているコードの種類に依存します。ラムダ式、自動プロパティ、yieldなど、C#3以降の多くの新機能を使用する場合、逆コンパイルされたソースコードは実行できず、コンパイルするにはかなりの作業が必要です。
これらの機能がなくても、私は通常、完全なwinformsアプリケーションの逆コンパイルされたソースコードをコンパイルする際に少なくともいくつかの問題を経験しました。
最近、.NETアプリケーションを逆コンパイルから保護する多くの難読化ツールがあります。そのような難読化ツールの1つは、http://www.red-gate.com/products/smartassembly/index.htmです。彼らはあなたのよく構造化された.NETILコードを逆コンパイラーが元のコードを生成できないspegattiコード(それでも機能する)にしようとします。海賊が再コンパイル可能なコードを取得できないことを100%確信しているわけではありませんが、難読化ツールを使用する場合、逆コンパイルするのは簡単ではありません。
はい、Reflectorからエクスポートするだけで、アセンブリ用の完全な実行可能なプロジェクトを取得できます。私はそれを数回やりました。通常、プロジェクトを自分のバージョンのVSに移行する必要があり、場合によってはマイナーな修正が必要になりますが、通常は機能します。