8

私は、JVM バイトコード (ASM、cglib、jad など) を操作、生成、逆コンパイルするための Java ツールについてよく知っています。CLR バイトコード用の同様のツールはありますか? 人々は CLR のバイトコード操作を行いますか?

4

5 に答える 5

14

Reflector は常に優れていますが、Mono.Cecil は全体的に求めることができる最高のツールです。何らかの方法で CIL を操作するのに非常に役立ちます。

于 2008-09-23T20:39:30.613 に答える
7

Mono.Cecilは ASM のような優れたツールです。Mono のサブプロジェクトであり、完全にオープン ソースです。System.Reflectionよりも優れた機能を提供します。

于 2008-12-18T16:34:26.917 に答える
4

ILDASMReflectorが思い浮かびます。

于 2008-09-23T20:38:19.057 に答える
2

バイトコードはバイナリ形式です。.NET アセンブリは、実行命令を格納する方法がかなり異なります。

バイトコードのような構造にコンパイルする代わりに、.NET 言語は中間言語にコンパイルされます (実際、それは単に IL と呼ばれます)。

これは人間が読める言語で、オブジェクト指向バージョンのアセンブラーのように見えます。

そのため、個々のアセンブリの IL を調べたり操作したりするという点では、Reflector や ILDASM などのツールを使用すると、任意のアセンブリの IL を簡単に表示できます。

操作は少し異なります。.NET スペースの AOP ツールのいくつかを調べてみることをお勧めします。また、MS が進行中のコンパイラ プロジェクトである Phoenix も検討することをお勧めします。これには、非常に優れたコンパイル後の操作機能がいくつかあります。

.NET AOP ツールについて詳しく知りたい場合は、別の質問を開くことをお勧めします (これはまったく別のワームです)。

また、IL の詳細を説明する本もいくつかあります。学ぶのはそれほど複雑な言語ではありません。

于 2008-09-23T20:43:42.897 に答える
1

NDependを使用すると、.NET アセンブリの静的分析 (コード メトリック、依存関係分析など) を実行できます。NDepend は、依存関係マトリックス、依存関係グラフ、およびツリーマップ メトリックの視覚化を使用して、.NET アセンブリの構造の概要を取得するのに非常に役立ちます。

また、Reflector とも統合されています。たとえば、タイプ/メソッドランク メトリック(Google ページ ランクに似たコード メトリック) をそれぞれ使用して、アセンブリ内の重要なタイプとメソッドを検出し、NDepend から Reflector に直接ジャンプして逆アセンブルを取得できます。 C#、VB.NET などのコード。

于 2010-05-06T10:27:57.867 に答える