2

さまざまな重要な.NET4.0C#プロジェクトを失い、残ったのはexeファイルだけです。

プロジェクトを取り戻すために、私はこれを試しました:http: //mrdublin.net/2008/07/31/retrieve-c-code-out-of-exe-assembly/

現在の.NETReflectorは同じようには見えませんが、私はできる限りガイドに従い、プロジェクトを取得しています。Visual Studio 2010で開くときは、最初にプロジェクトを現在のバージョンとビルドに変換する必要があります。

質問は:

  1. .NETを2.0から4.0に変更する必要がありました(最初から)、なぜリフレクターが2.0に設定したのですか?
  2. このコードは元のコードとまったく同じで、代替ソリューションなどはありませんか?
4

3 に答える 3

1

私はもうReflectorにあまり詳しくありませんが、デフォルトで.net 2.0になっていると思います。おそらく、どこかでそれを変更するオプションがあります。別の方法として、 JetBrainsdotPeekをチェックアウトすることもできます。

質問2に関して:いいえ、コードは元のソースとまったく同じようには見えない可能性があります(PDBファイルがない場合)。コメントや変数名などはすべて失われます。コンパイルされたコードにはそのような詳細が含まれていないため、逆コンパイルされたソースはすべて非常に一般的です。

于 2013-02-11T16:11:21.880 に答える
1

私は通常のreflector.netを使用しましたが、exectコードが再生成されなかったとしても、何もないよりはましでした。

于 2013-03-05T08:50:37.037 に答える
0

最近、アセンブリからコードを回復する必要がありました。JetBrainsのdotPeekを使用しました。それは仕事をしました。リフレクターではなく、それを試してみてください。

あなたの質問に関して:あなたが従った指示は2008年からのものでした(!)。その時点で現在のバージョンは3.0/3.5で、2.0と互換性がありました。.NET 4.0は2010年にリリースされました。おそらく、Reflectorはバージョンを検証できないものに設定しませんでした。

2つ目はもっと簡単です。「代替ソリューション」の意味はわかりませんが、exeのILがc#に変換されます。これは、復元されたコードが元のコードとは異なることを意味します。一方、オリジナルがない場合、それをどのように検証しますか?Y変数名が異なり、コメント、テスト、およびexeの外部にあるその他すべてが失われます。実行可能ファイルのPDBファイルがまだあるかどうかを確認します。これは、変数名と実際の記述されたC#コードに役立ちます。

于 2013-02-11T16:20:45.723 に答える