.NET EXE を読み取り可能な C# ソース コードに逆コンパイルするにはどうすればよいですか?
-
05-07-2019 - |
質問
数年前にクライアント用の C# アプリケーションを作成しましたが、ソース コードがもう手元にありません。私が持っているのは、クライアントの PC に展開した EXE だけです。EXE から C# ソース コードを生成する方法はありますか?
解決
Reflector とそのアドイン FileDisassembler 。
Reflectorはソースコードを見ることができます。 FileDisassemblerを使用すると、VSソリューションに変換できます。
他のヒント
Red Gate が .Net Reflector の無料バージョンはもう存在しないと言っていたとき、私は .Net Reflector を使い始めました。 ILSpy そしてテレリクさんの ただデコンパイルする. 。ILSpy は JustDecompile (まだベータ版) よりも正確に逆コンパイルできることがわかりました。Red Gate は決定を変更し、依然として .Net Reflector の無料版を使用していますが、今では ILSpy が気に入っています。
ILSpy Web サイトより (http://www.ilspy.net/):
ILSpy は、オープンソースの .NET アセンブリ ブラウザーおよび逆コンパイラーです。
ILSpyの機能
- アセンブリの参照
- ILの分解
- C# への逆コンパイル
- ラムダと「yield return」をサポート
- XMLドキュメントを表示します
- 資源の節約
- 型/メソッド/プロパティ (部分文字列) の検索
- ハイパーリンクベースのタイプ/メソッド/プロパティのナビゲーション
- 基本型/派生型のナビゲーション
- ナビゲーション履歴
- BAML から XAML への逆コンパイラ
- アセンブリを C# プロジェクトとして保存
- フィールド/メソッドの使用法を検索する
- プラグイン (MEF) 経由で拡張可能
アップデート:
2012 年 4 月 15 日、ILSpy 2.0 がリリースされました。バージョン 1.0 と比較した新機能:
- アセンブリリスト
- 式ツリーの逆コンパイルのサポート
- Nullable でのリフトされた演算子のサポート
- Visual Basic に逆コンパイルする
- スペースで区切られた複数の文字列を検索します (ILSpy.exe で「Assembly manager」を検索すると、AssemblyListManager が見つかります)。
- ローカル変数をクリックすると、その変数の他のすべての出現箇所が強調表示されます。
- Ctrl+F を使用して、逆コンパイルされたコード ビュー内を検索できます。
アップデート:
- ILSpy 2.1 は非同期/待機逆コンパイルをサポートします
Reflectorは一般に無料ではなくなりましたが、オープンソースの開発者に無料で提供しています: http://reflectorblog.red-gate.com/2013/07/open-source/
しかし、DevExtrasやJetBrainsのようないくつかの会社は、無料の代替を作成しました:
ReflectorおよびDenis Bauerの File Disassembler アドイン。実際には、アセンブリからソースプロジェクトを生成します。Reflector自体は、逆アセンブルされたソースのみを表示します。
追加:最新のお気に入りはJetBrainsの dotPeek です。
Telerik JustDecompile は無料で、.NETアセンブリからプロジェクトを作成する機能を備えています。
Microsoftの ildasm 。 ILSpyやReflectorほどきれいではないかもしれませんが、Visual Studioに付属しているため、多くの開発者が既に持っています。
実行するには(VS 2013を想定し、他のバージョンでも同様である必要があります):
- [開始]を選択>すべてのプログラム> Visual Studio 2013> Visual Studioツール。
- VS2013の開発者コマンドプロンプトをダブルクリックします。
- " ildasm"を実行します結果のコマンドプロンプトから。
- ツールで、[ファイル]>を選択します実行可能ファイルまたはDLLを開いて開きます。
これで、DLL構造をナビゲートできます。クラスメンバーをダブルクリックして、ILを表示します。ファイルを使用> ILをファイルにエクスポートするためのダンプ。
リフレクターが必要です。