C# - 服务器端反射/动态方法调用?

时间:2018-05-04 20:52:21

标签: c#

这可能是一个非常广泛的问题。 但有没有办法让我的应用程序代码(或其中一些)存储在服务器上,并下载并安全地执行它?

我到处都看到ASP.net,但我并不完全理解它。这基本上正是我正在寻找的,还是某种C#网站托管,比如xampp?

无论哪种方式,我想要做的是,能够下载一些C#方法,而不是整个命名空间,并能够从这些方法引用代码,如System。*,Program,Form1等。

我设法让CSHarpCodeProvider工作,并使用CSharpParameter使用系统引用,但它使用直接命名空间,基本上要求一个完整的有效.cs文件,而我只想加载方法而不是让它隐藏但是可与所有现有代码互动。

这可能有很多要问,可能并不存在。

这是我的公式:

  • website.com/api/login.php?e=email@domain.ext&p=Pass123发出请求,返回混淆的C#代码以及第一行文本,即C#代码的MD5哈希值,电子邮件,密码和随机生成的字符串/数字/符号。
  • 在C#客户端生成验证哈希,将返回的哈希值发送回不同php脚本的网站,该脚本将验证它是否正确并返回会话令牌,即使它是' s不正确的哈希(意味着请求被篡改)。
  • C#从第一个请求返回,这似乎很好,一切都匹配。使用来自请求2的令牌替换<!!TOKEN!!>之类的占位符服务文本,而不进行任何验证检查。
  • 执行最终的C#代码。
  • 最终的C#代码将执行诸如将在整个应用程序中使用的创建方法之类的内容,包括在应用程序获得许可/购买时返回的私有bool x()。
  • 使用创建的方法正常使用应用程序。

注意:

  • 在散列和bool x()内部进行一些unixtime检查,这样可以进一步防止未经许可的入侵。

优点:

  • 从理论上讲,应用程序几乎不可能“破解”#34;要破解它,您必须手动替换所有功能。在返回C#客户端之前,在服务器端对代码进行模糊处理,这将非常困难,而且非常耗时。
  • 可以自动更新,除非您进行了大量更改,否则无需更新.exe。

缺点:

  • 根据用户群的大小,需要更多服务器功能。
  • 如果您销售申请许可证,则会使您付出代价并使利润小得多。
  • 互联网连接不需要什么 - 什么!
  • 启动时间会慢一些。
  • 停机会严重影响您的申请。

0 个答案:

没有答案