数年前にクライアント用のC#アプリケーションを作成しましたが、ソースコードはもうありません。私が持っているのは、クライアントのPCに配置したEXEだけです。EXEからC#ソースコードを生成する方法はありますか?
数年前にクライアント用のC#アプリケーションを作成しましたが、ソースコードはもうありません。私が持っているのは、クライアントのPCに配置したEXEだけです。EXEからC#ソースコードを生成する方法はありますか?
回答:
ReflectorとそのアドインFileDisassembler。
リフレクターはソースコードを見ることができます。FileDisassemblerを使用すると、それをVSソリューションに変換できます。
Red Gateが.Net Reflectorの無料版はもうなくなると言ったとき、私はILSpyとTelerikのJustDecompileを使い始めました。ILSpyはJustDecompile(まだベータ版です)よりも正確に逆コンパイルできることがわかりました。Red Gateは彼らの決定を変更し、まだ.Net Reflectorの無料バージョンを持っていますが、今はILSpyが好きです。
ILSpy Webサイト(https://github.com/icsharpcode/ILSpy/)から:
ILSpyは、オープンソースの.NETアセンブリブラウザーおよび逆コンパイラです。
更新:
2012年4月15日、ILSpy 2.0がリリースされました。バージョン1.0と比較した新機能:
更新:
一般的にReflectorは無料ではありませんが、オープンソース開発者に無料で提供しています:http : //reflectorblog.red-gate.com/2013/07/open-source/
しかし、DevExtrasやJetBrainsのようないくつかの企業が無料の代替案を作成しました。
Denis BauerのReflectorおよびFile Disassemblerアドイン。実際には、アセンブリからソースプロジェクトを生成します。Reflector自体では、分解されたソースのみが表示されます。
追加:私の最新のお気に入りはJetBrainsのdotPeekです。
Telerik JustDecompileは無料で、.NETアセンブリからプロジェクトを作成する機能があります。
Microsoftのildasmについて誰も言及していないことに驚いています。ILSpyやReflectorほど美しくはないかもしれませんが、Visual Studioに付属しているため、多くの開発者が既に持っています。
それを実行するには(VS 2013を想定し、他のバージョンでも同様である必要があります):
これで、DLL構造をナビゲートできます。クラスメンバーをダブルクリックして、ILを表示します。ファイル>ダンプを使用して、ILをファイルにエクスポートします。