发布C#Web项目

时间:2015-09-08 16:28:02

标签: c# asp.net

我有一个用 c# .Net 编写的网络服务,我有以下问题:

  • 当我选择发布项目时会发生什么?
  • 代码仍然可读吗?
  • 如果没有,反转它有多容易?

3 个答案:

答案 0 :(得分:1)

当我选择发布项目时会发生什么?

  

它编译项目(到.dll文件)并将项目导出到文件夹

代码仍然可读吗?

  

是的,使用Reflector

如果没有,反转它有多容易?

  

非常简单..只需安装Reflector ..

答案 1 :(得分:0)

当您在Visual Studio或MSBuild中执行发布操作时,它只是编译代码并将其复制到某个特定的目标位置。

编译将可读源代码更改为更易读机的形式。在C#和其他基于CLR的语言(即VB.NET)中,输出是中间语言(IL)。这种语言本身并不是人类可读的,但它可以通过许多不同的工具相对容易地反向设计回C#。

编译发生时,代码将更改为对代码执行某些优化,因此反向工程代码很可能看起来与原始源不完全相同。评论和不会影响执行的代码的其他部分将被删除。

有些工具可以在编译代码之前对代码进行模糊处理。例如,dotfuscator将随Visual Studio一起提供。不幸的是,这些混淆可以通过反向编译C#代码的相同工具很容易地逆转。

答案 2 :(得分:-1)

  

当我选择发布项目时会发生什么?

enter image description here

您的C#代码符合托管DLL文件,该文件是图片中的红色框。

只有 C ++ 可以编写非托管代码,这很难反编译。

  

代码仍然可读吗?如果没有,那是多么容易   扭转了吗?

是的,这很容易。您可以使用以下工具来反编译源 -

Obfuscation不提供100%的代码保护。如果您不信任托管服务,那么底线就是不托管您的Web应用程序。

图片来源:图片来自Daniel Solis的Illustrated C#2012