是否可以从 exe 中检索源文件?

是否可以从 exe 中检索源文件?

我看到我的朋友从java'*.类'文件。他使用了某种软件。

是否可以使用'*。EXE文件'?如果是,我该怎么做?另外,考虑到可执行文件只是一个没有版权的小文件,这样做合乎道德吗?

答案1

这取决于开发人员使用的底层语言。

对于 Java 和 .NET 语言来说,大多数时候都可以“反编译”源代码。它不会是真正的原始代码(变量名称会有所不同,编译器的优化会重新排列代码等)但它会接近。

其他语言如C/C++就没那么容易了。

就道德而言,如果你只是个对玩玩感兴趣的业余程序员,那没问题。但是,如果你是专业人士,并且试图获取源代码来复制应用程序,那么这是非常不道德的,是绝对不允许的!

答案2

如果应用程序是用 .NET 语言(VB/C#)编写的,则可以使用 Red Gate 的 Reflectorreflector.red-gate.com将应用程序反汇编为相应的源文件。但并非每个应用程序都是用托管语言编写的,反编译 C++ 应用程序或用 Delphi 或其他非托管语言编写的应用程序并非易事,您真正能得到的只是十六进制转储,而这些转储很难重建为实际应用程序。

答案3

如果您的代码是 C/C++ 的话,您无法做到这一点.exe,但如果是 C# 的话,您可以做到这一点。我不知道有什么好的工具可以做到这一点,但一种方法是使用 ANTS Profiler。它可以显示 C# 二进制文件中的所有对象、方法和参数。

答案4

技术方面:是的,可以反编译代码……某种程度上。您得到的将不是原始源代码,甚至可能与原始源代码完全不同,除非可执行文件是在启用完整调试符号的情况下编译的。但是,最终生产版本通常会禁用调试符号,以保持可执行文件尽可能小,并避免向检查可执行文件的任何人提供超过最低限度的信息。

法律方面:根据《数字千年版权法》,试图对版权持有人试图保护的任何软件进行反编译或逆向工程的行为是违法的。根据法院迄今为止的解释,无论这种尝试多么荒谬无力,它仍然是非法的。即使没有技术措施来保护代码,也可能有许可协议规定您不得对可执行文件进行反编译或逆向工程。

一般来说,我倾向于认为这些事情完全合乎道德,只要你这样做不是有意伤害他人,但法律往往不同意。

相关内容