Dll 反编译代码(独立于语言)

Dll 反编译代码(独立于语言),dll,decompiling,Dll,Decompiling,什么软件可以用来查看.dll文件中的源代码,而不考虑源代码使用的编程语言?您对反编译程序集感兴趣。下面是反编译.NET程序集的开始: .NET社区中用于反编译程序集的流行工具是它们是不同的格式 对于.NET dll,您可以使用ildasm.exe(与.NET framework一起安装)或.NET Reflector(下载)如果它是托管dll(.NET),您可以使用诸如或之类的工具打开它,您将看到IL代码。(编辑2017-02-03:在7年多的时间里,.NET反汇编程序当然有了很大的进步,现在能

什么软件可以用来查看.dll文件中的源代码,而不考虑源代码使用的编程语言?

您对反编译程序集感兴趣。下面是反编译.NET程序集的开始:


.NET社区中用于反编译程序集的流行工具是

它们是不同的格式

对于.NET dll,您可以使用ildasm.exe(与.NET framework一起安装)或.NET Reflector(下载)

如果它是托管dll(.NET),您可以使用诸如或之类的工具打开它,您将看到IL代码。(编辑2017-02-03:在7年多的时间里,.NET反汇编程序当然有了很大的进步,现在能够生成非常体面的C#代码)


如果它是一个非托管DLL(本机),那么你就倒霉了。你能做的最好的事情就是装一个反汇编程序。除非你确切知道你想去哪里,否则你几乎一事无成。

要反编译.Net DLL,你可以使用。它适用于任何.Net语言编写的DLL

要反编译Java JAR文件,请尝试

反编译本机代码(C++)要困难得多。

不可能(1)将目标代码反编译为源代码。检查接口完全是另一回事;有一些工具是存在的,但我不知道有什么现成的

(1) -嗯,好的,在某些语言和特定条件下是可能的,但生成的代码不会完全可读

您将获得的唯一可读代码是汇编语言(有许多程序用于此)。有些语言可以反编译为原始(或接近原始)源代码,如Visual Basic 3。但是现在谁用VB3编写程序呢?没有人就DLL的导入/导出而言,您可以从以下位置使用Dependency walker程序:

对于某些语言,例如Visual Basic或C#,如果使用良好的反编译器,并且代码没有被混淆(大多数情况下不是这样),则可以获得可读的源代码

如果您对反编译感兴趣,请访问此网站:


对于.Net来说,.Net Reflector是一个不错的选择。它会将您的dll反编译为C#或VB.NET

,除非您在.NET领域,否则dll中包含的是二进制代码。你能看到这一点的唯一语言是汇编语言——这只是一种表示机器语言的助记符方式

对于.NET,将执行此操作;(现在在预览中)有一个VisualStudio插件,允许您调试到VSIDE本身中的大多数托管代码中,而不是作为一个单独的工具。到目前为止,它看起来非常甜美


无论您使用何种.Net语言,所有内容都将编译为MSIL(Microsoft中间语言)。您可以使用Ildasm等工具将其转换为可读的“反汇编文本”:

您也可以使用反射器:


为了检查类和方法(它支持不同的.Net语言)

关于反编译.Net已经说得够多了。如果您决定从反向工程本机二进制文件开始,我建议您使用


它支持不同的操作系统、处理器架构、检测和显示标准库的使用情况(因此您可以轻松找到感兴趣的地方)、显示子例程之间的依赖关系图、显示堆栈中的过程参数等。它还可以编写脚本,还有一些脚本可以编写,还可以执行许多其他操作。这是一个很棒的工具,并且有免费版本。

对于本机DLL,Hex-Rays反编译器(位于优秀的IDAPro反汇编程序调试器之上的一层)可能是您所能获得的最接近的。它不还原原始代码,而是将反汇编转换为类似C的伪代码。不过这并不便宜。

了解“查看源代码”的各种定义。干杯,你。net DLL代码我可以看到,但我有win32语言的DLL。是否可以进行反编译。谢谢,但是win32 DLL如何?它们不太容易反编译为原始语言。我不知道有什么好的工具,除了disassembler(然后您将只看到x86汇编…)之外。关于IDA的一些注意事项:1。免费版本(可在上获得)是商业版本之后的许多版本,仅支持32位二进制文件;2.“starter”商业版目前售价589美元,“不支持64位文件”;3。“专业版”(支持64位文件)价格为1129美元。