web-dev-qa-db-ja.com

Windows実行可能ファイルのソースコードを取得する方法

古いWindows実行可能ファイルがいくつかあります。 Visual Studio 2010でそれらを編集するにはどうすればよいですか? exeのソースコードを表示する方法は何ですか?

17
Ali Poder

ExeからC++ソースを取得することはできません。また、リフレクションを介してC#ソースの一部のバージョンのみを取得できます。あなたが質問をした方法から判断すると、どちらもあまり役に立ちません。

23
i_am_jorf

プログラムがC#で記述されている場合は、 。NET Reflector を使用して、元の形式のalmostでソースコードを取得できます。コメントとローカル変数名は表示できませんが、非常に読みやすくなっています。

C++で書かれている場合、それはそれほど簡単ではありません...コードを有効なC++に逆コンパイルできたとしても、インライン化された関数や最適化が元に戻せないため、元のソースに似ていることはほとんどありません。

ソースコードをリバースエンジニアリングおよび変更すると、自分で作成したか、作成者から許可を得ない限り、プログラムの使用条件に違反する可能性があることに注意してください。

18
Mark Byers

ネイティブコードの場合は、逆アセンブルできます。しかし、元のコードはプログラマーによって書かれたものとは思わないでしょう。コンパイラー(アセンブラー)によって生成されたコードが表示されます。このコードはおそらく最適化されており、意味的には同等ですが、通常のASMよりもはるかに読みにくい場合があります。

バイトコード(MSILまたはjavabytecode)の場合、かなり良いソースコードを生成できる逆コンパイラがあります。 .netの場合、これはリフレクターになります。

6
Henri

IDA Proを使用して実行可能ファイルを逆コンパイルします(そして使用しました)。半完全なコードが作成されます。アセンブリまたはCに逆コンパイルできます。

デバッグシンボルのコピーがある場合は、それらを逆コンパイルする前にIDAにロードすると、多くの関数、パラメーターなどに名前を付けることができます。

3
ssube

あなたがそれについてできることは何もありません、私はあなたが読みやすい形式でそれを見ることができないので恐れています、それはかなり意図的であり、解釈されたマシンコードを表示します.cs/.cファイルを取得します。

それは、ほとんどヒットアンドミスのシナリオです。

誰かが既に別のサイトでそれについて尋ねています website

0
Jamie Keeling