120

我丢失了类库的解决方案,我可以打开.dllclass-library.

4

8 回答 8

143

最好使用 redgates .net reflector 或 jetbrains resharper 反编译器等反编译器。有开源的也喜欢

http://www.jetbrains.com/decompiler/

http://ilspy.net/

于 2013-08-05T04:35:24.037 回答
47

请按照以下步骤..

  1. 转到开始菜单。
  2. 键入 Visual Studio 工具。
  3. 转到上面的文件夹。
  4. 在 VS 2013 的情况下单击“VS 2013 的开发人员命令提示符”,在 VS 2010 的情况下单击“Visual Studio 命令提示符”。
  5. 将命令提示符加载到屏幕类型后,ILDASM.EXE按 ENTER。
  6. ILDASM窗口将打开。将.dll文件从您的文件夹拖到窗口。或单击。File->New然后添加所需的.dll 文件。
  7. 完成上述步骤后,将出现 Mainfest 和.dll文件。双击这些文件以查看其中包含的内容。
于 2016-05-21T03:59:23.033 回答
10

我想你已经下载了 .NET Reflector 和这个 FileGenerator 插件http://filegenreflector.codeplex.com/,如果你这样做了,

  1. 打开 Reflector.exe,

  2. 转到查看并单击加载项,

  3. 在加载项窗口中单击添加...,

  4. 然后找到你下载的dll

  5. FileGenerator.dll(女巫带有 FileGenerator 插件),

  6. 然后关闭加载项窗口。

  7. 转到文件并单击打开并选择要反编译的dll,

  8. 打开它后,它会出现在树形视图中,

  9. 转到工具并单击生成文件(Crtl+Shift+G),

  10. 选择输出目录并根据需要选择适当的设置,单击生成文件。

或者

使用http://ilspy.net/

于 2013-08-05T04:38:23.913 回答
5

你不能得到确切的代码,但你可以得到它的反编译版本。

最受欢迎(也是最好的)工具是Reflector,但也有其他 .Net 反编译器(例如Dis#)。

您还可以使用与 .Net Framework SDK 工具捆绑在一起的ILDASM对 IL 进行反编译。

于 2013-08-05T04:35:16.737 回答
2

我用的是Jetbrains Dot peek Software,你也可以试试

于 2020-05-18T21:07:48.353 回答
1

Telerik 的 Just Decompile 是我用过的最好的。使用电子邮件注册后,它是免费的。

在此处输入链接描述

于 2018-09-14T13:16:12.803 回答
0

.dll用视觉工作室打开文件。或资源编辑器。

于 2013-08-05T04:32:43.283 回答
-13

*.dll 文件是使用 winzip/7zip 等打开的存档文件。这并不是说所有 .dll 文件都是存档,您可以使用 .dll 扩展名保存任何内容,但是大多数 windows .dll 文件都生成为存档示例,例如 windows >twain_32.dll 这是一个存档文件,但 twain.dll 不是如果您查看 twain.dll,您会看到一个 MZŽ 作为前三个记事本字符,表示已编译的 C 文件/程序或程序的一部分。而 MZ 似乎是一个档案。

此外,大多数 .exe 文件是主要包含文件和 Windows 安装程序包的图标图像等的存档,它们还包含程序运行图像、电影等所需的所有信息,以及包括安装信息和纯文本文件的目录。

我在这里有一个游戏game.exe,它包含java类文件一个图像一个指示.exe运行.bat文件的指针。显然,您的 .bat 文件将从存档中运行 javac 调用并运行游戏,还有一些包含 java 类文件的 .dll 存档。

[autorun]
ICON=AUTORUN\MINCRAFTLOGO.ICO

此处的标准图标重定向 .ico 是 .exe 文件中的 .dll 文件中的图像文件。所以 .exe 文件上看到的图像就是我的世界标志。这是在一个名为 autorun.inf 的文件中。第二个例子

[discstarter]
    startpage=Autostart\Disk1.html
    uselanguagestartpage=1
    windowcaption=Solid Edge
    licensee=Siemens PLM Software
    productguid=05B227DF-DB00-4934-B3C8-40B7D8FAA54A
    singleinstance=1
    hidesplashscreen=1
    noscrollbars=0
    showstatusbar=1
    splashscreentime=0
    windowwidth=750
    windowheight=775
    buttondir=Autostart
    toolbarcolor=16777215
    toolbar=goback,goforward,gohome,print,exit
    [autorun]
    open=autostart.exe
    icon=Autostart\ENGINE.ICO

这是solidedge.exe 中包含的solidedge autorun.inf 文件 Autostart\ 是Autostart.dll 目录。open=autostart.exe 指定要从原始 solidedge.exe 存档中运行的 autostart.exe 文件。这是一个使用 .dll(动态链接库)文件http://www.flipcode.com/archives/Creating_And_Using_DLLs.shtml的示例程序。

它还显示了它们是如何创建的。如您所见,dll文件的内容由exe文件调用,正如我之前解释的那样,这里还有一个教程http://msdn.microsoft.com/en-us/library/ms235636.aspx,正如我之前所说只要您有 .dll 文件,7zip 或 winzip 就会将动态链接库作为存档打开。如果动态链接库的内容显然已经编译,则需要一个可以读取该文件的程序。

但是,由于 .dll 文件根据定义只是存档库文件,因此 dll 本身应该是可读的,而不是编译后的 C、C# 文件等 基本上 .dll 文件是存档,应该是在 Visual Studio 中创建 .dll 文件时,dll 是创建并加密您存储在 dll 文件中的任何信息。大多数情况下,这种加密是由 Visual Studio 本身处理的,通常不是手动编辑的。当您将 .dll 文件内容作为 .exe 读取时,内容会自动解密。现在,当我们谈论编译程序时,我们正在将内容更改为机器易于解释的字节码。

此文件大小将小于相同内容的原始文件。但是文件大小较大,表明该文件实际上已被加密。可能是为了阻止人们阅读他们的代码。因此,读取 .dll 内容称为解密而不是反编译。反编译会将已编译的 txt 文件转换为不可读的字节码。标准 .dll 文件的使用根据定义不是开源的,因为它涉及故意混淆字节码。

于 2014-02-25T21:38:01.327 回答