gpt4 book ai didi

c# - 保护 .NET 代码免遭逆向工程?

转载 作者:行者123 更新时间:2023-12-03 19:44:21 28 4
gpt4 key购买 nike

混淆是一种方法,但它不能防止破坏应用程序的盗版保护安全。如何确保应用程序不被篡改,以及如何确保注册机制不能被逆向工程?

也可以将 C# 应用程序转换为 native 代码,以及 Xenocode太贵了。

C# 提供了很多功能,并且是我代码的理想语言,因此用 C++ 再次编写整个代码库是不可能的。

可以轻松地从 .NET 中的签名程序集中删除安全证书。

最佳答案

你不能。

您可以采取一些步骤使其更难,但最终本地计算机上的任何可执行文件都是可破解的。最终,该代码必须转换为本地机器代码,并且每个可运行的应用程序都容易受到攻击。

你想要做的只是让它变得足够难以破解,让它不值得人们为之烦恼。

我有一些建议可以帮助保护您的应用程序:

  • 混淆 你的代码。 Dotfuscator有一个免费版本,并带有 Visual Studio。
  • 使用 public/private key非对称加密生成您的产品许可证。这确保只有您可以生成您的许可证代码。即使您的应用程序被破解,您也可以确定他们不会为您的应用程序发布 key 生成器,因为无法逆转 key 生成算法。
  • 使用 第三方包装商将您的 .NET 可执行文件打包到加密的 Win32 包装应用程序中。 Themida是最好的之一。这会阻止人们在 .NET Reflector 中反射(reflect)您的应用程序并且打开包装倒车很痛苦。
  • 自己写 定制包装机 .如果第三方打包程序太贵,请考虑编写自己的打包程序。有时自定义打包程序可能非常有效,因为没有关于如何解包它们的良好发布方法。教程How to write your own packer提供了大量关于编写自己的 Win32 打包程序的好信息。

  • 但最终,如果人们希望您的应用程序被破解,他们会的。看看所有拥有大量资源来保护其应用程序的商业软件,但它们甚至在应用程序向公众发布之前就被破解了。

    熟练的逆向工程师可以启动 IDA-Pro不管你做什么,像黄油一样切开你的应用程序。打包的应用程序可以解包,混淆只会阻止它在公园里散步。您对复杂许可证代码的所有辛勤工作都可以通过一个字节补丁来完成。

    您只需要接受人们很可能会盗版您的软件。有些人无论如何都不会为您的申请付费,而这些人是您无需担心的。

    然而,有许多企业永远不会冒着诉讼的风险并乐于购买软件许可证,而许多计算机用户要么不想冒险,要么发现它错了,要么对技术不够了解盗版。这些是您的真正客户,您应该集中精力为他们提供良好的用户体验,而忽略破解您软件的人。

    我的应用程序以前被盗版过,我认为这是对我个人的侮辱。在这里,我是一个小型开发人员,将我的全心全意投入到一个应用程序中,而这些人竟然敢从我这里盗版?!他们直接从我的口袋里拿钱!

    我立即添加了一堆严酷的 DRM 代码,并试图使用非法或破解的副本来破坏任何人。我当然应该一直致力于使我的应用程序更好,而不是试图阻止不可避免的事情。不仅如此,我正在使用所有这些额外的保护措施伤害了我的真正客户。

    经过长时间的战斗,我意识到我正在与潮汐作斗争,所有这些浪费的时间都是徒劳的。除了准系统许可证功能外,我取出了所有电话家庭代码,再也没有回头。

    关于c# - 保护 .NET 代码免遭逆向工程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17468497/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com