.NET Reflector再び


.NET Reflectorは.NETアセンブリを逆アセンブルするためのツールだ。

元々.NETには"ILDASM"(ildasm.exe)という目的が同じツールがVisual Studioと共に導入される。

ILDASM


このツールを使っても逆アセンブルは出来るのだが、.NET Reflectorの表現力はILDASMとは比較にはならない程リッチなものである。

.NET Reflector


このようにソースコードレベルまで逆アセンブルが可能であり、.NETで扱うことができる各種言語(C#VB、MC++、Delphi、F#)のソースコードを生成することができる。※1

未知のアセンブリを解析したり自分が生成したアセンブリの確認などに非常に重宝するこの素晴らしい道具は無償だったこともあり、.NET開発者にはほぼ必須なツールになっていた。

「なっていた」と書いたのは、このツール現在は有償で提供されているからだ。(.NETからは暫く離れていたので最近まで全然知らなかった。)
InfoQ: RedGate,.NET Reflector のフリー提供を終了

良いソフトウェアに対価を支払うのは全く惜しくないが、元々無償で使えていたものが有償になることで手が遠のく人が増えるであろうことが残念だ。

とはいうものの無償ツールとしての経緯を無視している訳でもないようで、使い続けてきたユーザには旧バージョンを無償のまま使い続けるオプションも用意されているのには安心した。

Red Gate to offer free perpetual licenses for users of .NET Reflector 6.x versions | EON: Enhanced Online News
.NET Reflector v7は有料だけどv6.8は無料で使い続けられるようにするよ - 猫とC#について書くmatarilloの日記

私もかなり古いバージョンを使っていたが、アップグレードすることで最後の無償バージョンを使うことできた。※2


※1:無論、難読化されているものはそれなりにしか解読できないが、Microsoft Intermediate Language (MSIL) はその性質上完全な難読化は中々困難である。

※2:古いバージョンを起動したときに「手動でアップグレードする」を選ぶと旧exeが削除されて唖然とする。暫くぶりで起動するユーザは自動更新にすることで無償版の最後であるversion 6.8.2.5を取りあえず使い続けるチャンスを得る可能性がある。