.NET アセンブリは .NET Reflector 等で簡単に逆コンパイルできてしまいますが、それを防ぐために難読化が行われます。今回はどの様な難読化ツールがあるのかを調べてみました。探してみると有料無料 (無償) あわせてたくさんあるみたいですね。ブックマーク的な意味合いも含めて、有料と無料 (無償) とに分けてまとめておきたいと思います。
有料の難読化ツール
- Dotfuscator
- {smartassembly}
- Spices.Net Obfuscator
- DeepSea Obfuscator
- CliSecure
- .NET Reactor
- Crypto Obfuscator For .Net
- Salamander .NET protector
- Salamander .NET Obfuscator
- Skater .NET Obfuscator
- Goliath .NET Obfuscator
- Demeanor for .NET
- Babel.NET
- LSW IL-Obfuscator
これらのソフトウェアは識別子を読めない文字に変更することや、文字列の暗号化、アンチ逆コンパイラ (アンチ逆アセンブラ)、余分なコードの除去、スタックトレースの復号化などが利用できます。詳細な比較は行いませんが、だいたいこれらの機能が利用できるようです。
無料 (無償) の難読化ツール
フリーで利用できる難読化ツールです。
NanDoKu
和製で基本的な識別子の名前変更ができます。商用利用もできるようです。
Eazfuscator.NET
ドラッグドロップで簡単に難読化できます。基本的な難読化に加えて、文字列の暗号化やコードの最適化などができます。Silverlight にも対応しています。
Phoenix Protector
こちらも識別子の名前変更や文字列の暗号化が可能です。
Babel.NET Free Edition
基本的な難読化から、文字列の暗号化や無効なコードの埋め込みなどが利用できます。
Skater .NET Obfuscator Freeware Light Edition
有料版の機能をは使えませんが、基本的な難読化ができます。