在浪费了一个多月的时间查看和阅读.Net保护之后,我确信没有办法100%保护.Net免受反编译,即使它不会持续很长时间。
然而,我是关于将我的应用程序远程重建到使用c#构建的服务器。
我的问题是:
1 - 是否可以将方法发送到我的应用程序以在那里使用? (那不应该是一个完整的方法转移)
2 - 套接字多线程的最佳实践,用于处理服务器上每个客户端的数据。
答案 0 :(得分:2)
一般来说,如果您希望保持已编译的C#代码不被反编译,请不要让编译后的字节码可供任何人使用。您似乎意识到这将需要客户端 - 服务器系统,这是正确的。您还需要一个瘦客户端,"这意味着客户端不应该包含任何应用程序的业务逻辑,而是依赖服务器来处理除用户输入和数据表示之外的所有内容。您可以使用自定义C#客户端或使用HTML和JavaScript编写的内容在Web浏览器中运行。 (如果您使用Web应用程序,请确保您不在JavaScript中包含任何业务逻辑,因为它将以纯文本形式发送到浏览器。)
至于从服务器向客户端发送可执行字节码的想法,这似乎不如Web应用程序安全。即使你加密客户端和服务器之间的通信,客户端仍然会得到可在客户端反编译的可执行字节码。
答案 1 :(得分:0)
在开始实施通信协议之前,请先查看WCF。如果您的客户端和服务器都是基于.NET的,那么WCF是最简单的方法。