我有一个用 c#和 .Net 编写的网络服务,我有以下问题:
答案 0 :(得分:1)
当我选择发布项目时会发生什么?
它编译项目(到.dll文件)并将项目导出到文件夹
代码仍然可读吗?
是的,使用Reflector
如果没有,反转它有多容易?
非常简单..只需安装Reflector ..
答案 1 :(得分:0)
当您在Visual Studio或MSBuild中执行发布操作时,它只是编译代码并将其复制到某个特定的目标位置。
编译将可读源代码更改为更易读机的形式。在C#和其他基于CLR的语言(即VB.NET)中,输出是中间语言(IL)。这种语言本身并不是人类可读的,但它可以通过许多不同的工具相对容易地反向设计回C#。
编译发生时,代码将更改为对代码执行某些优化,因此反向工程代码很可能看起来与原始源不完全相同。评论和不会影响执行的代码的其他部分将被删除。
有些工具可以在编译代码之前对代码进行模糊处理。例如,dotfuscator将随Visual Studio一起提供。不幸的是,这些混淆可以通过反向编译C#代码的相同工具很容易地逆转。
答案 2 :(得分:-1)
当我选择发布项目时会发生什么?
您的C#代码符合托管DLL文件,该文件是图片中的红色框。
只有 C ++ 可以编写非托管代码,这很难反编译。
代码仍然可读吗?如果没有,那是多么容易 扭转了吗?
是的,这很容易。您可以使用以下工具来反编译源 -
Obfuscation不提供100%的代码保护。如果您不信任托管服务,那么底线就是不托管您的Web应用程序。
图片来源:图片来自Daniel Solis的Illustrated C#2012