Silverlight 2 アプリケーションの難読化
昨日は、MSDN オフラインセミナー「Silverlight 2 による Rich Interactive Application 開発概要」が開催されました。講師は、アーキテクトエバンジェリストの鈴木章太郎が担当し、私は司会(および質疑応答)を担当していました。実にたくさんの方がご来場くださり、誠にありがとうございました。また後からお越しの方は後ろで見づらかったかもしれません。失礼しました。
さて、その質疑応答の際に「Silverlight 2 のマネージコードアプリケーションは難読化できるのか」というご質問がありました。.NET Framework のアセンブリは、プログラミング中の名前をそのまま外部とのインターフェースに使うため、アセンブリを解析すると、内部の名前から個々の機能を推察され、知的財産を保護しにくくなってしまうことがあります。これを防ぐように「読み難くする」というのが難読化です。
このときには、アプリケーションの実行に使われるマネージコードの形式は通常の .NET アプリケーションと同じなので、原理的には対応可能なはず、というあいまいなお答しかできませんでした。Silverlight 2 におけるマネージコードアプリケーションは .xap という拡張子のファイルに収められているのですが、このファイルの実体は .zip であり、エクスプローラで拡張子を .zip にすると、その中に dll とマニフェストファイルが保管されていることがわかります。
現在、Visual Studio 2008 に付属している Dotfuscator Community Edition ではまだ対応していないのですが、念のために発売元のサイト(AG-TECH社)で Dotfuscator の情報を調べたところ、最新版の Dotfuscator 4.3 では .NET Framework 3.5/Visual Studio 2008 のサポートとともに、Silverlight のサポートが追加されているようです。これで、いっそう安心してプログラミングできますね。