如何打开.dll文件,看看里面写的是什么?

时间:2013-08-05 04:30:42

标签: c# .net class-library

我丢失了类库的解决方案,我可以打开由.dll创建的class-library文件。

7 个答案:

答案 0 :(得分:90)

你最好使用像redgates .net反射器或jetbrains resharper反编译器这样的反编译器。有开源的也喜欢

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

http://ilspy.net/

答案 1 :(得分:21)

按照以下步骤操作..

  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文件。双击这些文件,看看它包含的内容。

答案 2 :(得分:6)

我认为你已经下载了.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. 选择输出目录并根据需要选择适当的设置,  单击生成文件。

  11. 使用http://ilspy.net/

答案 3 :(得分:3)

使用visual studio打开.dll文件。或资源编辑。

答案 4 :(得分:3)

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

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

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

答案 5 :(得分:1)

我使用Jetbrains Dot peek软件,您也可以尝试

答案 6 :(得分:-8)

* .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中包含的可靠边缘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,正如我之前所说的7zip或winzip将打开一个动态链接库作为存档因为你有.dll文件。如果编译动态链接库的内容显然需要一个可以读取文件的程序。

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

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