2011-01-05 17 views
14

私たちは実稼働環境にアプリケーションを持っており、コードはPre-Compiled形式です。そのアプリケーションを開発した開発者は退社し、ソースコードのバックアップはありません。私たちが持っている唯一のアクセスは、サーバー内のPre Compiledコードです。今、アプリケーションの問題を修正する必要があります。プリコンパイルされたソースコードの逆コンパイルASP.NET

PrecompiledコードをDecompile(実際のソースコードに展開)する方法はありますか?

答えて

12

.NET ReflectorでDLLを開きます。あなたは、リフレクタのV6.5に対してそれをリンクするために、後者を再コンパイルする必要があります

http://www.denisbauer.com/NETTools/FileDisassembler.aspx

(最新:

http://www.red-gate.com/products/dotnet-development/reflector/

...プラス:で

+0

プリコンパイルされたコードにはDLLがありません。私が見るものは、aspxページとその他の画像、スキンフォルダです。 – msbyuva

+0

@msbyuva:アプリケーションのbinフォルダを確認しましたか? – adamjford

+0

いくつかのdllが表示されていますが、.NET Reflectorで開いた後、それらを逆アセンブルしましたが、コードは見られませんでした。また、.aspx.csファイルを表示するにはどうしたらいいですか? – msbyuva

2

スタート)このアドオンは、1つのクラスを手動でファイルにコピーアンドペーストする必要がないようにしたい場合に適しています。完全なアセンブリを.csファイルとしてダンプします。私はそれがcsprojを生成するかもしれないと思う。

両方のツールは無料です。

+0

プリコンパイルされたコードにDLLはありません。私が見るものは、aspxページと他のいくつかの画像、スキンフォルダです。どうすればaspx.csページを入手できますか? – msbyuva

+0

aspx.cs "ページ"は実際にページではなく、ソースコードファイルです。 C#コンパイラは、すべてのコンパイラと同様に、ソースファイルのコレクションを1つ以上のDLLに変換します。オリジナルの.csファイルを元に戻すことはできません。上記のツールを使用して、すべてのクラスをソースファイルとしてダンプし、既存のaspxページと一緒に新しいWebプロジェクトに追加する必要があります。 – x0n

+0

ありがとう...私はリフレクターを使用し、クラスファイルとコードビハインドファイルのすべてのコードを見ることができます。さて、2番目のツールFile Dissemblerの使い方を理解できませんでした。.NETリフレクタからすべてのdllを抽出しました。どのように2番目のツールを使用して、抽出されたdllのソースコードを抽出できますか? – msbyuva

0

.NET Reflectorツールを使用してdllを読み込むだけで、ソースコードを抽出できないことがわかりました。また、Webフォームがプリコンパイルされると、ファイルの背後にあるコードを取得することさえできません。私たちができることは、コードをデバッグして分析することだけです。

+0

.NET Reflectorは良いですが、無料のツールではありません。無料のdotPeekが見つかりました。http://www.jetbrains.com/decompiler/ – msbyuva

0

私は同様の問題があり、Reflectorを使用してそれを逆コンパイルしました。私はソースコードを入手し、私が望むビットを変更して再構築しました。その後、そのDLLをProductionサイトに再度コピーしました。私の変化を反映し始めました。プリコンパイルされたサイトにはすべてのページにdllがあり、更新可能であったため、dllにコードビハインドファイルしか存在しなかった可能性があります。参考のため

:uはVisual Studioでの.NET reflecter.its輸入をインストールhttp://www.reflector.net/

0

。 その後、メニューバーの.netリフレクターツールを見た。

.net reflectorをクリックします。>>デバッグするAsseblies(Dllファイル)を選択します。ため、私はDLLをからの私のプロジェクトを回復しなければならなかった最近のソース・コントロール・災害に

:XONの答え@更新する

3

。だから、悲しいことに、私は手続き上の知識豊富だ:

  1. はここからネットリフレクターを取得:http://www.red-gate.com/products/dotnet-development/reflector/

  2. あなたはFileDisassemblerを必要としていないようです。

  3. ビンを反射板にセットするか、ダブルクリックしてください。

  4. .Netフレームワークが元のプロジェクトファイル構造を維持していない可能性があることに注意してください。したがって、いくつかのASPXページが異なる.csファイル(I.E. Inheritsタグは同じですが、CodeFileタグが同じです)で同じ基本クラス名を共有する場合、単純に「ソースコードを書き出す」ことはできません。 盲目的にソースファイルをエクスポートしないでください。それは動作しません。

  5. 古いビルドボタンを起動するには、まだいくつかの作業があります。たとえば、 - DLLはプロパティのgetter/setterを直接参照できます。それを修正する必要があります。

幸運。

関連する問題