为了账号安全,请及时绑定邮箱和手机立即绑定

保护.NET代码不受逆向工程的影响?

保护.NET代码不受逆向工程的影响?

慕虎7371278 2019-06-17 14:56:22
保护.NET代码不受逆向工程的影响?混淆是一种方式,但它不能防止破坏应用程序的盗版安全。如何确保应用程序不被篡改,以及如何确保注册机制不会被反向设计?此外,还可以将C#应用程序转换为本机代码,并且Xenocode太贵了。C#提供了许多特性,并且是我的代码的理想语言,所以用C+再次编写整个代码基是不可能的。安全证书可以很容易地从.NET中的签名程序集中删除。
查看完整描述

3 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

您不能完全保护任何应用程序(不管是否托管)。如果像PlayStation和iPad这样的系统能够被破解-供应商甚至可以控制硬件-那么你的应用程序有什么希望呢?谢天谢地,你不是真的想这么做。在我看来,你需要确保你的应用程序的安全,只要有人不能不慎盗版你的产品,再也没有了。

例如,如果您使用的是每台机器的许可证,那么当您在新的第二台计算机上安装它时,它就不应该只起作用。您需要一个很好的错误信息来防止额外的支持调用,但是不要花费额外的时间使其难以工作,也不要用它来打击用户。

另一个例子是有限时间的审判。甚至不用担心简单的事情,比如如果用户可以回滚系统时钟。这样做的人知道他们违反了你的许可证,只要是用户当他们违规时,你已经做得够多了。

您需要这样做,因为用户并不关心您的许可证。许可证是捏造的东西没人在乎直到他们需要。没有人读,他们真的不应该读。因此,告诉用户边界在哪里的最佳方法是,应用程序的开箱即用行为是否符合许可证。在第一种情况下,这意味着第二次安装失败或安装在试用版模式。对于后者,这可能只是意味着检查配置文件中的纯文本日期。无论是哪种方式,都要确保你以优雅、乐于助人和尊重的方式处理这件事。

所以这就解释了做那么多事情意味着什么。但为什么不更进一步呢?为什么不把你能找到的每一个小洞都堵上呢?答案分为两部分。首先,如果有人越过道德门槛自觉违反您的许可条款-即使是以简单的方式-他们也愿意做一些更困难或更危险的事情,比如将您的应用程序从洪流站点-在运行从不受信任的来源下载的应用程序时存在一定的危险。对这些用户来说,让它变得更加困难只是一个小小的麻烦,并且有可能给您的付费客户带来问题。保持简单,可能会阻止某人深入您的应用程序,并释放一个更全面的漏洞。第二,你几乎没有眼睛去寻找漏洞;黑客有很多,他们有更多的练习去发现它们。你只需要错过一个小小的缺陷,你的应用程序就会在盗版网站上有相同的发布,就好像你什么都没做一样。你每次都必须是对的,他们只要幸运一次就行了。因此,所需的努力非常高,任何衡量成功的标准的可能性都很低。

最终,如果有人想海盗您的应用程序(而不是仅仅使用它),这是他们的主要目标,他们会。你没办法阻止他们。这是软件的本质;一旦组成您的产品的文件在用户的计算机上,他们将要能够随心所欲地对待他们。这在托管环境(如Java或.net,但它肯定也适用于本机代码。时间是站在他们这边的,如果有足够的时间,任何数字安全都可能被破坏。

既然你不能阻止用户盗版你的产品,你最好的做法就是让这类用户以一种对你有利的方式使用他们。让他们为你工作,而不是反对你,往往是可能的。考虑到这一点,无论您的应用程序是什么,保持一个几乎完全可用且不会过期的免费版本可能是值得的。即使是一美元的价格标签和免费之间的差别是巨大的,如果没有其他原因以外,客户不需要信任你与他们的信用卡。免费版的产品不仅会有效地杀死盗版发行(既然你可以同样的价格合法,为什么要冒盗版的风险?),它有可能极大地扩大你的受众。

结果是,你可能需要提高付费版的价格,这样最终你就不用2000名用户,每人20美元,而是有10万免费用户,其中500人愿意为“专业”版支付99美元。这比你花大量时间锁定你的产品赚的钱更多。不仅如此,您还可以让这些免费用户参与进来,并以几种重要的方式利用这种关系。

一是支持。悲观主义者会利用这个机会抱怨支持10万免费用户的成本增加,但却发生了令人惊奇的事情:你的产品基本上是自我支持的。在没有资金支持费用的大型开源项目中,您总是可以看到这一点。用户会站出来让它发生。

免费用户通常一开始就降低了对支持的期望,这是有充分理由的。你所需要做的就是将免费版标记为只有获得社区支持的资格,并为此目的建立一个用户主持的在线论坛。您的支持知识库是自我生成的,高级用户将指导那些需要为您额外牵手的人。更重要的是,这将使您能够更快地识别和纠正错误,最终提高产品质量并降低总支持成本。这以前是不可能的,因为你的用户基础还不够大,但是当你把免费用户当作客户对待的时候,它可以很好的工作。

另一个是反馈。通过观看你的论坛,你会学到一些你可能从来没有想过的重要的改进想法。这可以让你最终把更多的免费用户变成付费用户,并创造出更有吸引力的产品,吸引更多的观众。

最后,你需要考虑营销。所有这些免费用户现在是球迷,而不是对手,他们将采取相应的行动。不仅如此,当发布您的下一个版本时,这些用户都将通过您批准的分发渠道,而不是其他未知的机制。这意味着,对于你的下一个版本,你开始与一个更大,高度感兴趣和支持的受众联系起来。

为专业版保留的最佳特性是旨在使公司部署和管理变得容易的工具。一位黑客不会认为这是一个足够有说服力的理由来破解它供他自己使用,但是对于一个想要购买300个许可证并在公司范围内推出它的企业来说,这是必须的。当然,专业版无论如何都会被盗版,但再说一遍:不要操之过急,因为不管你做了什么,你都不可能把产品卖给那些海盗,所以它不会花你的钱。任何收入。

虽然在心理上,你很难把你的产品送出去这么多,但希望你能理解它是如何真正是最好的方式。不仅如此,从长远来看,这也是唯一的出路。我知道有人认为他们不想这样做。毕竟,他们多年来一直在销售他们锁定的20美元产品。但那太糟糕了,因为如果你不这样做,最终会有人..他们的产品会和你的一样好,或者说足够近,他们就可以这么说了。然后,突然之间,你的价格看上去太离谱了,销量急剧下降,你也无能为力了。如果你必须的话,你可以选择一个额外的中间层,但这不太可能对你有帮助。


查看完整回答
反对 回复 2019-06-17
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

根据我的经验,使您的应用程序或库更难破解损害您的诚实的客户,而只是轻微拖延不诚实的客户。专注于制造一个伟大的,低摩擦力的产品,而不是花费大量的精力来拖延不可避免的事情。


查看完整回答
反对 回复 2019-06-17
  • 3 回答
  • 0 关注
  • 468 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信