【问题标题】:C# code at runtime?运行时的 C# 代码?
【发布时间】:2011-07-05 05:06:17
【问题描述】:

如何在运行时编译原始 C# 代码?因此,如果我想通过删除重要的代码片段并通过服务器下载来增加安全性,然后在我的应用程序中执行它?

【问题讨论】:

  • 是的,我就是这个意思。

标签: c# dynamic-compilation


【解决方案1】:

您要下载源代码还是编译版本?

您可以下载 MSIL 并使用 Assembly.Load(byte[]) 加载它以执行。

但是这些方法都没有增加安全性。如果您以任何格式将代码发送到用户的计算机,他们可以捕获副本。永远不要将其保存到磁盘只会增加一个小减速带。

请参阅:The #1 law of software licensing

【讨论】:

  • 下载的源代码是加密的。这是一个仅限在线的程序,因此不便之处将一直存在。
  • @Dark:没关系,因为解密密钥在用户的计算机上。只是另一个减速带,没有真正的安全性。
  • @Dark:无论如何,既然可以加密并发送 C# 编译器的 MSIL 输出,为什么还要发送源代码?
  • 因为我不知道该怎么做。
  • @Dark:只需构建一个 DLL 项目。发送该文件,当您在接收端解密时,而不是将其写入磁盘,调用Assembly.Load(byte[])
【解决方案2】:

我前段时间写了这个来简化代码执行,希望对你有帮助:

CSharpCompiler

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 2011-08-02
    • 1970-01-01
    相关资源
    最近更新 更多