你如何提取课程'来自dll文件的源代码?

时间:2011-01-16 16:00:31

标签: c# asp.net dll reverse-engineering source-code-protection

有没有软件可以做到这一点?我没有在互联网上找到任何有用的信息,所以我在这里问。

10 个答案:

答案 0 :(得分:23)

您无法获得确切的代码,但您可以获得它的反编译版本。

最受欢迎(也是最好的)工具是Reflector,但也有其他.Net反编译器(例如Dis#)。您还可以使用与{Net Framework SDK Tools捆绑在一起的ILDASM对IL进行反编译。

答案 1 :(得分:15)

只有c#Java等托管语言可以完全反编译。您可以查看完整的源代码。 对于Win32 dll,您无法获取源代码。

对于CSharp dll 免费使用DotPeek becoz,与ReDgate .Net Compiler

相同

玩得开心。

答案 2 :(得分:5)

使用.NET reflector

答案 3 :(得分:3)

使用dotPeek

enter image description here

选择要编译的mat = as.matrix(dist(mymatrix)) mat[row(mat) == col(mat) + 1] # [1] 2.828427 3.000000 2.828427

enter image description here

那是

答案 4 :(得分:2)

您可以使用Reflector并使用Add-In FileGenerator将源代码提取到项目中。

答案 5 :(得分:1)

使用折射镜。 从here下载。

  1. 安装后打开软件。
  2. 按Ctrl + O并选择您的DLL文件。
  3. Dll将显示在左窗格中。
  4. 右键单击Dll并选择“导出源代码”。
  5. 选择要在其中导出文件的文件夹
  6. 等待一段时间,可能需要2-3分钟

enter image description here

答案 6 :(得分:0)

如果您只想知道dll程序集中的一些基础知识,例如用于动态加载它们的类,方法等

您可以使用Microsoft提供的IL Disassembler工具。

通常位于:" C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin"

答案 7 :(得分:0)

我用Refractor从dll文件中恢复了脚本/代码。

答案 8 :(得分:0)

您可以使用dotPeek 我唯一要说的是,使用它时,在类上单击鼠标右键以选择“反编译源”,而不是双击,否则dotpeek将仅显示本地cs文件的内容,而不显示反编译的内容。 Option instance

答案 9 :(得分:0)

 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"));

          }
        }