c# - C# 桌面应用程序。代码混淆。.Net Reactor 混淆的代码很容易被反混淆
问题描述
我们正在使用 C# 开发桌面应用程序(Windows 服务)。我们正在努力保护我们的知识产权,这就是我们决定使用 .Net Reactor 的原因
最初,它看起来像是一个强大的工具。混淆时,我选择了除“本机 exe 文件”之外的所有可用选项。(Necrobit, Anti ILDASM, Anti Tampering, Control Flow obfuscation, Obfuscation, String Encryption, Compress & Encrypt Resources)
我尝试使用 DotPeek 检查结果并对结果感到满意
但事实证明,有一个工具可以轻松地对所有程序集进行反混淆(出于明显的原因,我不会提及它是什么工具)。但我很好奇是否有人遇到过类似的问题。有谁知道保护将在客户端桌面/服务器上运行的 C# 代码的可靠方法
**请不要建议使用 C++ 重写应用程序
解决方案
一般来说,编写软件的成本比购买使用它的许可证要高出许多数量级。同样,维护成本很高。因此,在大多数情况下,与运营成本相比,知识产权的价值较低。因此,很少有(如果有的话)用户会足够成熟和经济优势足以对您的软件进行逆向工程以用于他们可能拥有的任何目的。
此外,一般来说,如果您分发对某物的物理访问权,无论是电话、计算机还是编译的软件,您就不再对任何东西的安全性有任何期望。
因此,我认为你的努力是错误的。如果有特别有价值的算法或方法,可以考虑将服务器作为 API 托管,或者申请专利。如果您必须分发此特别文章,请与您的客户签订强有力的保密协议。让他们尝试从逆向工程中受益具有经济风险。
推荐阅读
- laravel - 如果过期日期 id 大于 laravel Yajra 表中的当前日期,则显示删除按钮
- python - Raspberry Pi Acces Point - 如何连接到客户端的 80 端口
- javascript - message.guild.createChannel 不是函数
- django - Django:用户管理(创建、更改、删除)仅限于自己的组
- qt - QML 文件对话框(选择文件夹)
- javascript - 使用 html2canvas 和 JSPdf 从顶部截断图像
- python - 在 Laravel 控制器中运行 python 脚本:“sh: 1: python: not found”
- c - 从带有索引的C文件中读取信息
- java - Java freemarker 通过唯一键访问哈希值
- php - 在 PHP7 中,为什么子类的方法可以定义返回类型,而被覆盖的父方法没有?