Reflectorに代わるオープンソース?[閉まっている]


419

RedGateのReflectorに代わるオープンソースのことを誰かが知っているかどうかを尋ねるだけですか?Reflectorに似たツールが実際にどのように機能するかを調べてみたいと思います。

あなたは自由しかしを知っている場合は、ないリフレクターにオープンソースの代替には、以下の関連質問に答えることができます。

概要-2011年5月11日更新

提案されているさまざまなオープンソースプロジェクトとツールの簡単なまとめ:

  1. Common Compiler Infrastructure(CCI)
  2. モノセシル
  3. ILSpy
  4. dnSpyILSpyのフォーク、プロジェクトはオリジナルよりもアクティブに見えます)
  5. Dotnet ILエディター(DILE)
  6. IL.View
  7. モノフレクター(2011年4月の時点で非アクティブ

次のリソースも参考になります。

  • TypeView.cs
  • .NETの分解に関するJason Haleyのメモ
  • Adrian Bankの最近のブログ投稿には、以下に記載されていないいくつかのオプションを含む、いくつかのReflectorの代替案がまとめられています。
  • Mark Lichtenbergの詳細なブログ投稿。いくつかのオープンソースの選択肢(DILE、ILSpy、MonoDevelopを使用したMono Cecil)をReflectorと比較しています。

2
:FYI、無料無期限になるでしょうV6のバージョン今がありますeon.businesswire.com/news/eon/20110426007021/en/.NET-Reflector/...
thecoop


2
@マット、日付を確認すると、この質問は.NETリフレクターよりも優れている前に行われましたか?質問。また、この質問は特にオープンソースの代替案を求めています。
MagicAndi

回答:


31

私が知っている2つのオプション。

  • CCI
  • モノセシル

これらはC#を与えません。


レッピー、ありがとう。これはあなたの答えとジェイソン・ヘイリーの間の難しい選択でしたが、私はこれを答えとして受け入れています。
MagicAndi

CCIにはGUIフロントエンドがありません(私が知っています)。しかし、codeplexの現在のソースには、逆コンパイルされたASTをC#に変換するためのかなり単純なAPIがあります。
justin.m.chase

2
Mono.Cecilは単なるライブラリですよね?
Robert Jeppesen

175

2011年12月13日更新

次のオープンソースツールを使用できます。


1
私は数年前にdileを使用しました-これは優れた逆アセンブラーおよびデバッガーです-使用していたときに強くお勧めします。しばらく使用していません。
Jason Haley

8
ILSpyの現在のバージョン(ILSpy v1.0.0.440、20010228)は、期待どおりに動作しています。PDBファイルがなくても、C#libのメソッド、プロパティ、さらにはソースコードを参照できます。
mathijsuitmegen 2011年

6
ILSpyを使い始めたばかりです。これまでのところ、とても満足しています。完璧なreplacemenet。SharpDevelopありがとうございます!
codemonkey

1
このツールに出会ったばかりで、.NET開発者のツールベルトの定番の代替品を見つけて非常に満足しています。いくつかの逆コンパイルは少し奇妙です(文字列の連結は、ILがそれを見るのと同じように表示されますが、必ずしもコードが書かれたとおりではありません-悪いことではありません)が、全体的には素晴らしいツールです!
CodeMonkey1313、2011年

5
ILSpyを試してみましたが、うまくいきました!ラムダ式とイテレータ( "yield return")メソッドも再構築します。私は感銘を受けて!
Qwertie、2011年

38

もう1つの置き換えはdotPeekです。JetBrainsはそれを無料のツールとして発表しました。Resharperと一緒に使用すると機能が増える可能性がありますが、単独で使用しても非常にうまく機能します。

ユーザーエクスペリエンスは、スタンドアロンの逆アセンブラーよりもMSVSに似ています。Reflectorよりもコードの読み取りが好きです。Ctrl + Tナビゲーションも私にぴったりです。ツリーをコードペインと同期させるだけの方が良いでしょう。

全体として、それはまだ開発中ですが、すでに非常にうまく使用できます。


2
素晴らしいツールですが、オープンソースではありません。それは無料ですが、オープンソースの同等物からスポットライトを奪う可能性があります。
Drew Noakes、2011年

フェルディナンド、クローズドソースツールの場合は-1。これをReflectorのリンクされた質問の1つに追加してみてください。
MagicAndi

3
情報をより完全にするために、ここに答えを残しておきます。このスレッドはグーグルで見つけるのが最も簡単で、ここにある他のツールのリストも最も完全です。(すべてではないそれらのOSSはところでです。)
フェルディナンドPrantl

フェルディナンド、私は常にクローズドソースソリューションを提供するすべての回答に反対票を投じ、質問テキストを繰り返し更新して、私がOSSのみに関心があることを明示し、質問の要約のすべてのソリューションがオープンソースであることを確認しました。この質問スレッドには、他にも1つだけクローズドソースのソリューションがあります。この質問は、Redgateが今年初めにチャージバックを決定する前に尋ねられ、特にオープンソースの代替案を求めています。さらに何をする必要がありますか?
MagicAndi

9
@MagicAndi文句を言うのをやめることから始まります。無料の代替案を探しているときに、Googleからこのスレッドを見つけました。それがオープンソースであるかどうかに関係なく、私はあまり気にすることができませんでした。@Ferdinand dotPeekリンクに感謝し、有望に見えます。
ウィンストンスミス

15

Telerikは本日、独自の逆コンパイルツールであるJustDecompileのベータ版をリリースしました。クローズドソースですが、無料で有望に見えます。


レイさん、お詫びしますが、GrayWolfの回答へのアプローチと一致するように、私はこの回答に反対票を投じる必要があります。この質問は、特にオープンソースの代替案を対象としています。.NETコミュニティは、クローズドソースソリューションに依存することで、この混乱に陥ることを許可しました。誰がツールを提供しているかに関係なく、将来的にこれを回避する必要があります。-1
MagicAndi

レイ、私のKaliroの提案もクローズドソースユーティリティであることがわかりました。反対投票にご遠慮なくお気軽にどうぞ。私はそれに値します!残念ながら、あなたは自分の答えに投票することはできません。
MagicAndi

1
@MagicAndi-反対票を投じるよりも、回答を削除する方が簡単でしょう。付加価値を感じない場合は、「存在しない」ようにする力があります。
jpierson '06 / 06/18

1
この回答を削除/投票しないでください。無料の代替案に関する他のSOの質問は、モデレーターによってこの質問の「重複」としてクローズされています!情報はここにある価値があります。
Alex

JustDecompileは、常にクラッシュし、コードが存在するはずの多くの例外を表示する、恥ずかしそうにバグのあるアプリケーションです。それとは別に、それは非常に遅いです。.NET Reflectorはそのがらくたよりもはるかに優れています!
Elmue、2015

12

ILSpyは素晴らしい働きをします!

私が知る限り、Reflectorが行ったすべてのことを行い、外観も同じです。


10

実際、Reflectorは逆コンパイラ機能を備えた逆アセンブラと見なされていると思います。アセンブリのファイルからバイトを読み取り、アセンブリ言語(この場合はILasm)に変換するため、逆アセンブラ。ILをよく知られているパターン(式やステートメントなど)に解析して、C#やVB.Netなどの上位レベルの言語に翻訳することで提供する逆コンパイラ機能。ReflectorのアドインAPIを使用すると、独自の言語トランスレータを作成できますあなたが望む...しかし、それがILを表現ツリーに解析する方法の魔法は、厳重に守られた秘密です。

ILの逆アセンブラがどのように機能するかを理解したい場合は、上記の3つのうちのいずれかを確認することをお勧めします。Dile、CCI、Monoはすべて、これらの良い情報源です。

Ecma 335仕様とSerge Lidinの本も入手することを強くお勧めします。


このリンクはダウンしているようです
Lyra

ええ、申し訳ありませんが、去年そのサイトを削除し、置き換えませんでした。
Jason Haley

8

私がReflectorを使用した主な理由(そしておそらく、ほとんどの人がそれを使用した主な理由)は、その逆コンパイラーのためでした:メソッドのILをソースコードに戻すことができます。

その点で、Monoflector注目すべきプロジェクトです。リフレクションを行うCecilと逆コンパイルを行うCecil.Decompilerを使用します。しかし、Monoflectorは両方のライブラリの上にUIを重ねます。これにより、APIの使用方法について非常に良いアイデアが得られます。

Monoflectorは、Reflectorの完全な代替品でもあります。これにより、型を参照してメソッドを逆コンパイルできます。これは、人々がReflectorを使用した目的の99%です。端が荒いですが、すぐに変わると思います。


5

まあ、Reflector自体は.NETアセンブリなので、ReflectorでReflector.exeを開いて、その構築方法を確認できます。


14
いいえ、できません。リフレクターは難読化されています。
ジェフイェーツ2010年

14
リフレクターでリフレクターを開けませんか?私はそれをやったばかりです-識別子と型名が壊されているので難読化は単にILの読みやすさを損ないますが、それはあなたがそれを分解できないことを意味しません。
Andrew Hare

13
アンドリュー-穴に
入ったら

2
うーん...私はバージョン5.1.6.0を持っていますが、ソースをうまく見ることができます-難読化されているのは識別子の名前だけです。完璧ではありませんが、現在、ReflectorのC#ソースを調べています。:)
Andrew Hare

7
@Andrew Hare:リフレクターのリフレクターを介してメソッドの実装を確認しようとすると、「これは難読化されています」と表示され、表示されないので、リフレクターを使用できません。その上、OPがOPに何を望んでいるかについて知識を深めることは、敗戦です。
ジェフイエーツ2010年

3

現在、Assembly Analyzerと呼ばれるオープンソースの逆アセンブラー/逆コンパイラーに取り組んでいます。メソッドのソースコードを生成し、アセンブリのメタデータとリソースを表示し、依存関係をウォークスルーできます。

プロジェクトはCodePlex => http://asmanalyzer.codeplex.com/でホストされています


1

ReflectorツールはReflectionを使用します。  -明らかにこれは正しくありません。

あなたは2つのことを求めました-リフレクターが何をするかを示すコードと、リフレクターの代替です。

以下に例を示します。Reflectorの機能を大幅に簡略化していますが、リフレクションの手法を示しています。

オープンソースのReflectorを置き換える提案はありません。


ええと、 "Reflection"で.NETフレームワークの "System.Reflection"を参照する場合、私はそれを非常に疑います。
Christian.K

3
@ Christian.K:いいえ、ReflectorはSystem.Reflectionフレームワークでは使用していません。Roederは、アセンブリのロードとアンロードの問題のため、非常に早い段階で述べています。
casperOne 2011

@casperOne、私は.NET Reflectorが内部でどのように動作するのか正確にはわかりませんが、System.Reflection.NET Reflectorの初期の頃から名前空間が拡張されています。それは今リフレクションのみのコンテキストでロードとアンロードされたアセンブリをサポートしています。stackoverflow.com/questions/225330/...
ドリューNoakes

1
@Drew Noakes:これは本当ですが、この変更が行われると、RoederはReflectionに戻ったと(私の知る限り)述べたことはありません。
casperOne 2011年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.