7

ソース コードに使用されているプログラミング言語に関係なく、.dll ファイル内のソース コードを表示するには、どのソフトウェアを使用できますか?

4

10 に答える 10

17

マネージ DLL (.NET) の場合は、ReflectorILDASMなどのツールを使用して開くことができ、ILコードが表示されます。(編集 2017-02-03: 7 年以上で、.NET 逆アセンブラーはもちろん大幅に進歩し、今では非常にまともな C# コードを生成できるようになりました)

アンマネージ DLL (ネイティブ) の場合は、運が悪いです。あなたができる最善のことは、逆アセンブラをロードすることです。どこに行きたいかを正確に把握していない限り、これはほとんどどこにもつながりません。

于 2009-10-22T11:23:06.680 に答える
1

オブジェクトコードをソースコードに逆コンパイルすることはできません(1)。インターフェイスの検査は、まったく別の問題です。存在するツールはありますが、私は手に負えないものを知りません。

(1)-ええと、OK、それはいくつかの言語と特定の条件下で可能ですが、生成されたコードは正確に読めるわけではありません...

取得できる唯一の読み取り可能なコードはアセンブリ言語です(これには多くのプログラムがあります)。Visual Basic 3など、元の(またはそれに近い)ソースコードに逆コンパイルできる言語がいくつかあります。しかし、最近VB3でプログラムを作成しているのは誰ですか?誰でもない。DLLのインポート/エクスポートを確認する限り、次の場所からDependencyWalkerプログラムを使用できます 。http ://www.dependencywalker.com/

Visual BasicやC#などの一部の言語では、優れた逆コンパイラーを使用し、コードが難読化されていない場合(ほとんどの場合、難読化されていない)、読み取り可能なソースコードを取得できます。

逆コンパイルに興味がある場合は、次のサイトを確認してください:http: //www.program-transformation.org/Transform/DecompilationPossible

.Netの場合、.NETReflectorが最適です。dllをC#またはVB.NETに逆コンパイルしますhttp://www.aisto.com/roeder/dotnet/

于 2009-10-22T11:25:30.033 に答える
1

.NETの場合、Reflectorがこれを行います。「Pro」バージョン(現在プレビュー中)には、個別のツールではなく、VSIDE自体内のほとんどのマネージコードにデバッグできるVisualStudio用のプラグインがあります。これまでのところ、とても甘く見えます。

リフレクターEAPhttp://www.simple-talk.com/community/blogs/alex/attachment/74919.ashx

于 2009-10-22T11:27:55.860 に答える
1

アセンブリの逆コンパイルに興味があります。さて、.NET アセンブリの逆コンパイルについて説明します: http://aspnet.4guysfromrolla.com/articles/080404-1.aspx

.NET コミュニティでアセンブリを逆コンパイルするための一般的なツールは、.NET Reflectorです。

于 2009-10-22T11:22:16.307 に答える
1

それらは異なる形式です。

.NET dll の場合、ildasm.exe (.net フレームワークと共にインストール) または .NET Reflector (ダウンロード) を使用できます。

于 2009-10-22T11:22:57.007 に答える
1

.NET の逆コンパイルについては十分な説明がありました。ネイティブ バイナリのリバース エンジニアリングを開始する場合は、IDAを使用することをお勧めします。

さまざまな OS、プロセッサ アーキテクチャをサポートし、標準ライブラリの使用状況を検出して表示し (関心のある場所を簡単に見つけることができます)、サブルーチン間の依存関係のグラフを表示し、スタックでのプロシージャの引数を表示します。C++ クラスと try-catch ブロック検出し、UUID の COM インターフェイス名を見つけ、その他多くのことを行います。これは素晴らしいツールで、無料版もあります。

于 2009-10-22T12:40:14.907 に答える
0

.Net DLLを逆コンパイルするには、 .NetReflectorを使用できます。これは、任意の.Net言語で記述されたDLLで機能します。

Java JARファイルを逆コンパイルするには、JavaDecompilerを試してください。

ネイティブコード(C ++)の逆コンパイルははるかに困難です。

于 2009-10-22T11:25:01.173 に答える
0

.NETランドにいない限り、DLLに含まれているのはバイナリコードです。これを見ることができる唯一の言語はアセンブラーです-これは機械語を提示するための単なるニーモニックな方法です。

于 2009-10-22T11:26:53.523 に答える
0

使用する.Net言語に関係なく、すべてがMSIL(Microsoft中間言語)にコンパイルされます。Ildasmなどのツールを使用して、読み取り可能な「分解されたテキスト」に変換できます。

http://msdn.microsoft.com/en-us/library/f7dy01k1.aspx

リフレクターを使用することもできます: http ://www.builderau.com.au/program/asp/soa/Look-inside-NET-DLL-files-with-Reflector/0,339028371,339287377,00.htm

クラスとメソッドを調べるため(さまざまな.Net言語をサポートします)

于 2009-10-22T11:28:38.107 に答える
0

ネイティブ DLL のこのプログラムの場合、Hex-Rays Decompiler (優れた IDAPro 逆アセンブラー デバッガーの上にあるレイヤー) は、おそらく可能な限り近いものです。元のコードを復元するのではなく、逆アセンブリを C のような疑似コードに変換します。安くはないけど。

于 2009-10-22T12:41:28.520 に答える