.NET EXE を読み取り可能な C# ソース コードに逆コンパイルするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/179741

質問

数年前にクライアント用の 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のようないくつかの会社は、無料の代替を作成しました:

DevExtras CodeReflect

JetBrains DotPeek

ReflectorおよびDenis Bauerの File Disassembler アドイン。実際には、アセンブリからソースプロジェクトを生成します。Reflector自体は、逆アセンブルされたソースのみを表示します。

追加:最新のお気に入りはJetBrainsの dotPeek です。

Telerik JustDecompile は無料で、.NETアセンブリからプロジェクトを作成する機能を備えています。

Microsoftの ildasm 。 ILSpyやReflectorほどきれいではないかもしれませんが、Visual Studioに付属しているため、多くの開発者が既に持っています。

実行するには(VS 2013を想定し、他のバージョンでも同様である必要があります):

  1. [開始]を選択>すべてのプログラム> Visual Studio 2013> Visual Studioツール。
  2. VS2013の開発者コマンドプロンプトをダブルクリックします。
  3. " ildasm"を実行します結果のコマンドプロンプトから。
  4. ツールで、[ファイル]>を選択します実行可能ファイルまたはDLLを開いて開きます。

これで、DLL構造をナビゲートできます。クラスメンバーをダブルクリックして、ILを表示します。ファイルを使用> ILをファイルにエクスポートするためのダンプ。

リフレクターが必要です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top