如何打开.dll文件看里面写的是啥?
Posted
技术标签:
【中文标题】如何打开.dll文件看里面写的是啥?【英文标题】:How to open .dll files to see what is written inside?如何打开.dll文件看里面写的是什么? 【发布时间】:2013-08-05 17:09:04 【问题描述】:我丢失了类库的解决方案,我可以打开由class-library
创建的.dll
文件吗?
【问题讨论】:
反射器...... DotPeek......... 另外:尝试使用源代码控制...... Opening and snooping DLLs的可能重复 dependencywalker 好用 dependencywalker.com 【参考方案1】:最好使用 redgates .net reflector 或 jetbrains resharper 反编译器等反编译器。有开源的也喜欢
http://www.jetbrains.com/decompiler/
http://ilspy.net/
【讨论】:
jetbrains.com/decompiler 为我工作。为此+1。感谢您的建议! ilspy ++++++++++++++++++++ ildpy +1。不错。 ILSpy。你在监视什么?【参考方案2】:按照以下步骤..
-
进入开始菜单。
键入 Visual Studio 工具。
转到上面的文件夹。
在 VS 2013 的情况下单击“VS 2013 的开发人员命令提示符”,或者只是
VS 2010 中的“Visual Studio 命令提示符”。
命令提示符加载到屏幕类型
ILDASM.EXE
后,按ENTER。
ILDASM
窗口将打开。将.dll
文件从您的文件夹拖到窗口。或单击File->New
。然后添加所需的.dll
文件。
经过上述步骤后,Mainfest 和.dll
文件将出现。双击这些文件以查看其中包含的内容。
【讨论】:
我按照您的明确说明使用 VS 2012 和 2015 / Windows 7 Pro。但是,ILDASM 为我尝试检查的 .dll 文件发出以下消息:has no valid CLR header and cannot be disassembled
。
这个过程用于反汇编CLR生成的中间语言。【参考方案3】:
我想你已经下载了 .NET Reflector 和这个 FileGenerator 插件http://filegenreflector.codeplex.com/,如果你这样做了,
打开 Reflector.exe,
转到查看并单击加载项,
在加载项窗口中单击添加...,
然后找到你下载的dll
FileGenerator.dll(女巫自带 FileGenerator 插件),
然后关闭加载项窗口。
转到文件并单击打开并选择要反编译的dll,
打开后会出现在树状图中,
进入工具,点击生成文件(Crtl+Shift+G),
选择输出目录并根据需要选择适当的设置, 点击生成文件。
或
使用http://ilspy.net/
【讨论】:
您具体建议哪一个? ILspy 还是反射器?利弊【参考方案4】:你无法得到确切的代码,但你可以得到它的反编译版本。
最流行(也是最好的)工具是Reflector,但也有其他的.Net 反编译器(例如Dis#)。
您还可以使用 ILDASM 反编译 IL,它与 .Net Framework SDK 工具捆绑在一起。
【讨论】:
【参考方案5】:我用的是Jetbrains Dot peek Software,你也可以试试
【讨论】:
【参考方案6】:Telerik 的 Just Decompile 是我用过的最好的。使用电子邮件注册后即可免费使用。
enter link description here
【讨论】:
【参考方案7】:使用 Visual Studio 打开 .dll
文件。或资源编辑器。
【讨论】:
当我尝试使用 Visual Studio Express 2013/Windows 7 Pro 打开一个 .dll 文件时,它发出以下消息:There is no editor available for (file I tried to open). Make sure the application for the file type (.dll) is installed.
【参考方案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中包含的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,正如我之前所说,7zip或winzip将打开一个动态链接库作为存档,只要你有.dll文件。如果动态链接库的内容显然已经编译好了,你需要一个可以读取文件的程序。
但是,由于 .dll 文件根据定义只是存档库文件,因此 dll 本身应该是可读的,而不是编译的 C、C# 文件等dll 被创建并且您存储在 dll 文件中的任何信息都被加密。大多数情况下,这种加密是由 Visual Studio 本身处理的,通常不是手动编辑的。当您将 .dll 文件内容作为 .exe 读取时,内容会自动解密。现在,当我们谈论编译程序时,我们正在将内容更改为机器易于解释的字节码。
此文件大小将小于相同内容的原始文件。但是文件大小较大,表明该文件实际上已被加密。可能是为了阻止人们阅读他们的代码。因此,读取 .dll 内容称为解密而不是反编译。反编译会将已编译的 txt 文件转换为不可读的字节码。使用标准 .dll 文件根据定义不是开源的,因为它涉及故意混淆字节码。
【讨论】:
我不确定这在计算机界是否算作叛教或异端。如何改进?如果是在纸上,我可以用火柴把它从痛苦中解救出来。以上是关于如何打开.dll文件看里面写的是啥?的主要内容,如果未能解决你的问题,请参考以下文章