通过二进制文件可以看到源代码吗? (C#)

时间:2011-01-15 15:17:20

标签: c# visual-studio-2008 binary-data

我用Vistual studio 2008在c#中编写了一个程序。

我编译并构建它并获得了一个.EXE文件。我的问题是 - 如果我给别人这个.EXE文件,他可以以任何方式查看源代码吗?函数,变量,调用,堆栈状态,什么?我希望尽可能保持谨慎。

5 个答案:

答案 0 :(得分:2)

他们可以使用像Reflector这样的工具来反编译可执行文件,这与您的代码不同,但是他们可以看到您编写的大部分内容。它是一个免费工具,因此您可以下载它以查看它可以用您的exe做什么。

如果您希望让其他人轻易看到您的代码,您将需要对代码进行模糊处理(尽管即使可以通过足够的时间和决心来克服)。您可以使用的工具是dotfuscator

答案 1 :(得分:2)

根据this SO帖子,可以对给定的可执行文件进行反向工程并获取用于构建它的代码。 This msdn博客显示了一些方法可以让逆向工程的过程变得更加困难,主要是通过使用obfuscation

答案 2 :(得分:1)

与您编写的完全相同的源代码。但他可以使用像Reflector这样的工具来反汇编它。为了使反汇编代码难以阅读,您可以obfuscate it

答案 3 :(得分:1)

是。

您可以使用反射器来反编译任何.net程序集。 http://www.red-gate.com/products/dotnet-development/reflector/

有些工具会混淆您的代码。但它仍然可见。默默无闻的安全无论如何都不起作用。

答案 4 :(得分:1)

正如所有人所说的那样 - 反编译程序很容易。除非您使用一些非常高端的商业工具,否则混淆提供的实际保护非常少。要注意的关键事项是,如果您的源代码中有加密密钥或安全令牌/凭证等内容,则很容易找到。

有一系列产品可供您将.net应用程序编译为本机代码,从而提供更好的保护。