我用Vistual studio 2008在c#中编写了一个程序。
我编译并构建它并获得了一个.EXE文件。我的问题是 - 如果我给别人这个.EXE文件,他可以以任何方式查看源代码吗?函数,变量,调用,堆栈状态,什么?我希望尽可能保持谨慎。
答案 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应用程序编译为本机代码,从而提供更好的保护。