反编译代码(独立于语言)
您对反编译程序集感兴趣。那么这里是在反编译.NET程序集启动:http://aspnet.4guysfromrolla.com/articles/080404-1.aspx
在反编译程序集的.NET社区的流行工具是.NET Reflector
他们是不同的格式。
对于.NET的DLL,您可以使用程序Ildasm.exe(安装了.NET框架)或.NET反射器(下载)
谢谢, 但是win32 DLL怎么样? – Naruto 2009-10-22 11:45:30
他们不太容易反编译成他们的原始语言。我不知道有一个好的工具,除了一个散布者(然后你会看到x86汇编......) – 2009-10-22 12:10:52
要反编译.Net DLL,可以使用.Net Reflector。它适用于以任何.Net语言编写的DLL。
要反编译Java JAR文件,请尝试Java Decompiler。
反编译本机代码(C++)要困难得多。
不可能(1)将目标代码反编译为源代码。检查界面完全是另一回事;有工具存在,但我不知道任何副手。
(1) - 好了,好了,有可能对某些语言和在一定条件下产生的,但将不完全可读的代码...
唯一可读的代码,你会得到的是汇编语言(有很多这样的程序)。有些语言可以反编译为原始(或接近)源代码,如Visual Basic 3.但是现在谁写VB3程序?没有人。至于看到DLL的导入/导出,您可以使用Dependency walker程序: http://www.dependencywalker.com/
对于某些语言,例如Visual Basic或C#,如果使用良好的语言,您可以获得可读的源代码反编译器和代码是不混乱(它大部分的时间不算)
检查这个网站,如果你有兴趣在反编译: http://www.program-transformation.org/Transform/DecompilationPossible
对于.NET,.NET反射器是必经之路走。它会反编译你的DLL到C#或VB.NET http://www.aisto.com/roeder/dotnet/
除非你在.NET土地,DLL是什么是二进制代码。您可以看到的唯一语言是汇编器 - 这只是提供机器语言的助记符方式。
对于.NET,Reflector将执行此操作; "Pro" version(现在处于预览状态)有一个Visual Studio插件,可让您在VS IDE本身内部调试大多数托管代码,而不是单独的工具。到目前为止,它看起来非常甜蜜。
Reflector EAP http://www.simple-talk.com/community/blogs/alex/attachment/74919.ashx
无论您使用的是.NET语言的 - 一切都将被编译成MSIL(Microsoft中间语言)。您可以使用工具,如ILDASM将其转换为可读的“拆解文”:
http://msdn.microsoft.com/en-us/library/f7dy01k1.aspx
检查类和方法(它支持不同的网络语言)
关于反编译.NET已经足够说了。如果您决定从反向工程本机二进制文件开始,我推荐使用IDA。
它支持不同的操作系统,处理器体系结构,检测并显示标准库的使用情况(以便您可以轻松找到感兴趣的地方),显示子例程之间的依赖关系图,显示堆栈中的过程参数等。也可以脚本化'detect C++ classes and try-catch blocks,finds COM interfaces names for UUIDs和做许多其他事情的脚本。这是一个很棒的工具,它有免费的版本。
关于IDA的一些注意事项* 1.免费版本(可在[下载中心] (https://www.hex-rays.com/products/ida/support/download.shtml))是商业版本背后的许多版本,并且只支持32位二进制文件; 2.“初学者”商业版目前费用为589美元,“不支持64位文件”; 3.“专业”版本(支持64位文件)花费1129美元。 – 2016-09-17 23:01:57
对于本地DLL的this program,Hex-Rays反编译器(优秀的IDAPro反汇编程序调试器之上的一层)可能尽可能地接近您可以得到的。它不会恢复原始代码,但会将反汇编转换为类似C的伪代码。这虽然不便宜。
对于“查看源代码”的各种定义。干杯。 – 2009-10-22 11:23:14
ya .. .net DLL代码我可以看到, 但我有win32语言的DLL。这是可以解编的。 – Naruto 2009-10-22 11:44:35