web-dev-qa-db-ja.com

dllファイルからクラスのソースコードを抽出するにはどうすればよいですか?

これを行うソフトウェアはありますか?インターネットで役に立つ情報が見つからなかったので、ここで質問しています。

23
ILoveMusic

正確なコードを取得することはできませんが、逆コンパイルされたバージョンを取得することはできます。

最も人気のある(そして最良の)ツールは Reflector ですが、他の.Netデコンパイラ( Dis# など)もあります。 [〜#〜] ildasm [〜#〜] を使用してILを逆コンパイルすることもできます。これは、.Net Framework SDKツールにバンドルされています。

25
adrianbanks

c#Javaなどのマネージ言語のみを完全に逆コンパイルできます。完全なソースコードを表示できます。 Win32 dllの場合、ソースコードを取得できません。

CSharp dllの場合DotPeek becozを無料で使用し、 ReDgate .Net Compiler

楽しんで。

15
Vikas Kumar

。NETリフレクター を使用します。

5
Petar Minchev

dotPeek を使用します

enter image description here

を選択 .dllを逆コンパイルする

enter image description here

それでおしまい

3
student

ReflectorAdd-InFileGenerator を使用して、ソースコードをプロジェクトに抽出できます。

2
ShahidAzim

Refractorを使用します。 here からダウンロードします。

  1. インストール後にソフトウェアを開きます。
  2. Ctrl + Oを押して、DLL File。
  3. DLLは左ペインに表示されます。
  4. Dllを右クリックして、[ソースコードのエクスポート]を選択します。
  5. ファイルをエクスポートするフォルダーを選択します
  6. 2〜3分かかる場合がありますのでしばらくお待ちください

enter image description here

1
Singh T

dotPeek を使用することができます。使用する場合、クラスを右クリックしてダブルクリックする代わりにDecompiled Sourceを選択します。そうしないと、dotpeekはローカルのコンテンツのみを表示します。逆コンパイルされたコンテンツではなく、csファイル。 オプションインスタンス

0
我零0七

Refractor を使用して、dllファイルからスクリプト/コードを復元しました。

0
Carlo Jumagdao

Dllアセンブリ内のいくつかの基本のみを知りたい場合クラス、メソッドなど、動的にロードする

microsoftが提供するIL Disassemblerツールを使用できます。

通常、「C:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.0A\Bin」にあります

0
riaz
 var destinationfilename = "";
        if (System.IO.File.Exists("nameoffile.dll"))
        {
          destinationfilename = (@helperRoot + System.IO.Path.GetFileName(medRuleBook.Schemapath)).ToLower();
          if (System.IO.File.Exists(destinationfilename)) System.IO.File.Delete(destinationfilename);
          System.IO.File.Copy(@'nameoffile.dll", @destinationfilename);
        }
        // use dll-> XSD
        var returnVal =
          await DoProcess(
            @helperRoot + "xsd.exe", "\"" + @destinationfilename + "\"");
        destinationfilename = destinationfilename.Replace(".dll", ".xsd");
        if (System.IO.File.Exists(@destinationfilename))
        {
          // now use XSD
          returnVal =
            await DoProcess(
              @helperRoot + "xsd.exe", "/c /namespace:RuleBook /language:CS " + "\"" + @destinationfilename + "\"");
          if (System.IO.File.Exists(@destinationfilename.Replace(".xsd", ".cs")))
          {
            var getXSD = System.IO.File.ReadAllText(@destinationfilename.Replace(".xsd", ".cs"));

          }
        }
0
BobSpring