概要
JetBrains社の.Net言語デコンパイルツール dotPeek を試してみたメモです。
更新履歴
日付 | 内容 |
---|---|
2021/04/01 | デコンパイル結果についての記述を修正。 |
環境
Windows10
VisualStudio2017
JetBrains dotPeek 2019.1.2
参考
インストール
ダウンロード&インストール
JetBrains社のサイトからダウンロードします。
https://www.jetbrains.com/decompiler/
インストーラーexeファイルを起動します。
とりあえず dotPeekをInstallにします。
画面下部のライセンス同意にチェックを入れて[Next]をクリック、インストールが始まります。
完了です、特に問題になることはありませんでした。
起動
dotPeekを起動してみます。
起動画面
起動直後は以下の様になります。
exeやdllをドラッグ&ドロップすると以下のような画面になります。
pdb が使用可能な場合はデコンパイル結果ではなくソースファイルが表示されます。
表示はC#のみのようですが、元ソースがVBとかの場合はどうなるのかは試していません。
操作メモ
いくつか操作を試したメモです。
File Structure
[windows] -> [File Structure]
で現在開いているファイルの変数リストが見られます。
プロパティ
右クリック -> [Properties] でアセンブリ情報が見られます。
Find Usages
Assembly Explorer のツリーから右クリック -> [Find Usages]を選択すると、使用されている箇所が表示されます。
IL Viewer
[windows] -> [IL Viewer] で中間言語を見ることができます。
Show Compiler-generated Code
これを有効にすると、コンパイラが生成したコードが見られるようです。
namespace ConsoleApp1
{
class Program
{
// ラムダ式
static public Func<int, int> func = x => x * 10;
static void Main(string[] args)
{
Console.WriteLine("Result : {0}", func(5));
}
}
}
<.cctor>b__3_0(int x):int というのが元ソースのラムダ式から生成されたコードの様です。
まとめ
ドラッグ&ドロップで手軽にデコンパイルできたので、すごいツールだと思います。
リリースノートを見ると、細かくアップデートされているようです。
デコンパイルした後の表示はC#のみのようですが、F#などの関数言語コードはどんな感じに表示されるのかが気になります。