C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

配布用exeからデコンパイル /工場プログラマー (21/01/08(Fri) 12:07) #96671
Re[1]: 配布用exeからデコンパイル /魔界の仮面弁士 (21/01/08(Fri) 13:06) #96672
  └ Re[2]: 配布用exeからデコンパイル /工場プログラマー (21/01/08(Fri) 13:22) #96673
    └ Re[3]: 配布用exeからデコンパイル /魔界の仮面弁士 (21/01/08(Fri) 13:32) #96674
      └ Re[4]: 配布用exeからデコンパイル /工場プログラマー (21/01/08(Fri) 14:27) #96676 解決済み


親記事 / ▼[ 96672 ]
■96671 / 親階層)  配布用exeからデコンパイル
□投稿者/ 工場プログラマー (51回)-(2021/01/08(Fri) 12:07:21)

分類:[.NET 全般] 

Windows10 VB.NET
データ移行に失敗して配布用exeだけ残っているのですが、
exeからデコンパイルする方法はありますか?

[ □ Tree ] 返信 編集キー/

▲[ 96671 ] / ▼[ 96673 ]
■96672 / 1階層)  Re[1]: 配布用exeからデコンパイル
□投稿者/ 魔界の仮面弁士 (2946回)-(2021/01/08(Fri) 13:06:30)
No96671 (工場プログラマー さん) に返信
> Windows10 VB.NET
> データ移行に失敗して配布用exeだけ残っているのですが、
> exeからデコンパイルする方法はありますか?

自分は .NET Reflector と ILSpy を使っています。基本的には後者。
https://www.microsoft.com/ja-jp/p/ilspy/9mxfbkfvsq13
https://www.atmarkit.co.jp/fdotnet/dotnettips/1055ilspy/ilspy.html

.NET Reflector は、現在は有償ですが、EXE の内容を MSIL / C# / VB に逆コンパイルできます。
ILSpy は無償ですが、VB への逆コンパイルはできず、MSIL / C# に逆コンパイルできます。
[ 親 96671 / □ Tree ] 返信 編集キー/

▲[ 96672 ] / ▼[ 96674 ]
■96673 / 2階層)  Re[2]: 配布用exeからデコンパイル
□投稿者/ 工場プログラマー (52回)-(2021/01/08(Fri) 13:22:07)
No96672 (魔界の仮面弁士 さん) に返信
> ■No96671 (工場プログラマー さん) に返信
>>Windows10 VB.NET
>>データ移行に失敗して配布用exeだけ残っているのですが、
>>exeからデコンパイルする方法はありますか?
>
> 自分は .NET Reflector と ILSpy を使っています。基本的には後者。
> https://www.microsoft.com/ja-jp/p/ilspy/9mxfbkfvsq13
> https://www.atmarkit.co.jp/fdotnet/dotnettips/1055ilspy/ilspy.html
>
> .NET Reflector は、現在は有償ですが、EXE の内容を MSIL / C# / VB に逆コンパイルできます。
> ILSpy は無償ですが、VB への逆コンパイルはできず、MSIL / C# に逆コンパイルできます。

やっぱり逆コンパイルすると疑似コードになっちゃうんですかね?
[ 親 96671 / □ Tree ] 返信 編集キー/

▲[ 96673 ] / ▼[ 96676 ]
■96674 / 3階層)  Re[3]: 配布用exeからデコンパイル
□投稿者/ 魔界の仮面弁士 (2947回)-(2021/01/08(Fri) 13:32:55)
No96673 (工場プログラマー さん) に返信
> やっぱり逆コンパイルすると疑似コードになっちゃうんですかね?

IL レベルではそこそこ正確なコードとして復活しますが、
コンパイル時に最適化されることもありますし、
同じ IL を呼び出すために複数の書き方があるため、
元のコードと完全に一致するわけではありません。

・コメントは消えます。ただしドキュメント コメントは、
 XML ファイルがあればそこから復元されます。
・Option Strict Off によって、レイトバインドや暗黙の型変換が使われているコードの場合、
 Microsoft.VisualBasic.CompilerServices 名前空間のクラス呼び出しに変わることがあります。
・最適化によって、「Visual Basic(あるいは C#)の文法では表現できない」形にコンパイルされていた場合、
 逆コンパイル結果は、疑似コードになったり、そこだけ IL 文法の補助コメントが付いたりします。
[ 親 96671 / □ Tree ] 返信 編集キー/

▲[ 96674 ] / 返信無し
■96676 / 4階層)  Re[4]: 配布用exeからデコンパイル
□投稿者/ 工場プログラマー (53回)-(2021/01/08(Fri) 14:27:18)
No96674 (魔界の仮面弁士 さん) に返信
> IL レベルではそこそこ正確なコードとして復活しますが、
> コンパイル時に最適化されることもありますし、
> 同じ IL を呼び出すために複数の書き方があるため、
> 元のコードと完全に一致するわけではありません。
>
> ・コメントは消えます。ただしドキュメント コメントは、
>  XML ファイルがあればそこから復元されます。
> ・Option Strict Off によって、レイトバインドや暗黙の型変換が使われているコードの場合、
>  Microsoft.VisualBasic.CompilerServices 名前空間のクラス呼び出しに変わることがあります。
> ・最適化によって、「Visual Basic(あるいは C#)の文法では表現できない」形にコンパイルされていた場合、
>  逆コンパイル結果は、疑似コードになったり、そこだけ IL 文法の補助コメントが付いたりします。

やっぱりそうなんですね、ありがとうございました。
解決済み
[ 親 96671 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -