【问题标题】:Protecting a .Net assembly [duplicate]保护.Net程序集[重复]
【发布时间】:2014-06-04 09:00:41
【问题描述】:

最近,我开始研究如何保护我们开发的应用免遭黑客入侵。我们同意我们将使用本地许可证服务器(没有互联网连接)+机器硬件锁。我发现了很多能够做到这一点的工具。我不是在这里寻找推荐使用的工具,而是想知道我应该在那里期待什么样的功能。

我们公司真的很担心那些试图破解软件的人(他们过去在这方面遇到过很多问题),但这是我们公司的第一个 .Net 应用程序,它有很多细节。

为了让我使用迄今为止调查的工具检查我的应用程序中的许可证,我需要插入对该库的单个调用,以检查代码中的许可证。理论上这个调用可以被移除。当然,应用程序会被混淆,而且真的很难做到这一点,但我想这仍然是可能的。破解者还可以选择用不执行任何操作的虚拟 dll 替换该工具。

我应该担心吗?如果需要,我有什么解决方案?

【问题讨论】:

  • 如果你写了一个减号 - 请解释你的原因。我试图让这个问题具有建设性 - 如果你不这么认为,请告诉我我能用它做什么,而不是仅仅投反对票
  • 我想你不应该担心这个。如果您的应用程序很受欢迎,它无论如何都会被破解。保护不应该打扰普通用户的主要事情。编辑:如果受欢迎程度较低,您可以使用硬件键。
  • @LexLi - 这对我来说是针对许可/盗版而不是反射/知识产权的保护
  • 混淆主要不能防止破解,它只会让你的代码更难理解。
  • 该应用不会受欢迎。它的售价将是最好的 100 倍——但价格非常高。由于价格巨大-用户尝试破解它实际上是合理的。

标签: c# .net security obfuscation


【解决方案1】:

保护某些东西的最佳方法是将一些重要逻辑中继到远程应用程序上,例如服务器。

【讨论】:

  • 是的。那就是:不要放弃最有价值的东西。
  • 我完全同意 - 但不幸的是,我们不能使用它。我们的应用在完全与互联网断开连接的环境中运行。
  • @Archeg 在这种情况下,没有必要浪费大量时间来保护无论如何都可能被破坏。
【解决方案2】:

学习像 .net 黑客一样思考,并查看来自 Jon Mccoy 的关于 hacking .net apps 的所有会话。这个人在他的网站上有几个非常有用的工具。您可以将 .dll 注入正​​在运行的应用程序中。域,修改和替换现有的 dll...您可以将返回 true 推送到执行许可证检查并轻松绕过安全性的函数。

Somewehre 在 ndc 2012 的会议中,他建议将所有有价值的东西放入一个单独的非托管 c++ dll 中,并从 .net 进行互操作调用。

这不是为了让你的应用程序防弹,而是关于“提高黑客攻击成本”,所以如果你在项目中包含非托管 dll,你可能会大大提高成本。

【讨论】:

    猜你喜欢
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    • 2011-01-29
    • 2011-03-03
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    相关资源
    最近更新 更多