问题标签 [copy-protection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
830 浏览

objective-c - 成为饼干的噩梦!

我正在尝试在 Mac 上使用 Objective-C 使代码难以破解。

我必须做的一件事是检查应用程序是否被破解。

我是 Objective-C 和 Xcode 的新手,无论我想象如何测试我的应用程序,我总是以可以轻松修补的基本测试结束。

例如:假设我要测试二进制文件的某个部分中是否存在给定值。该操作将类似于:

“这个值 = x 吗?” 如果否,则已破解。

这很容易破解。黑客可以轻松地修补测试并使其始终为真。

我试图想象一些可以测试某些东西的东西,而不是看起来可以很容易修补的测试。

我知道我无法 100% 阻止盗版,但至少我试图让事情变得更加困难,以阻止大部分的破解者。

任何关于这样的事情的想法可以在没有的情况下完成并且对于查看二进制文件的人来说变得困难?

谢谢你的帮助。

0 投票
5 回答
4201 浏览

.net - 产品密钥注册 - Visual Basic

我正在尝试为我的程序创建一个产品密钥注册器。我想要数据库中的产品密钥或字典类型的东西,我可以每天制作新密钥而不将它们放入程序中,并且每次都重新分配它们。我不确定从哪里开始,所以如果有人有任何想法,请发布它们

谢谢,

凯文

0 投票
4 回答
904 浏览

drm - 如何保护我的程序?

假设我设计了一个非常重要的系统,而这个系统花费了数千美元。我想用序列号保护我的系统,因为我知道破解者会尝试编辑二进制代码来绕过序列号。

我已经阅读了有关使用校验和函数并将其应用于我的二进制代码并检查值是否已更改的信息,但同样,我们谈论的是破解者可以通过编辑代码来避免的情况。

我的问题是:保护重要程序的最常用技术是什么?

0 投票
3 回答
3679 浏览

publishing - 防止软件复制的最佳实践

我正在开发一个应用程序,我正在寻找一些关于保护它免受复制的酷信息!你们知道一些关于它的书/文章/任何信息吗?

提前感谢您的建议!

0 投票
19 回答
5036 浏览

language-agnostic - 什么语言可以保护我的源代码?

我希望创建包含注册算法的共享软件。我正在寻找一种不能轻易反编译成可读代码的编程语言。例如,可以将 C# 反编译为可读代码。

我有哪些选择?

编辑:我正在寻找只能反编译成程序集的东西。例如,Delphi 不能像 C# 或 Java 那样被反编译,但据我所知,Delphi 正在消亡。

0 投票
3 回答
2847 浏览

.net - .NET 中的 LicenseProvider 使用 RSA 加密来保护产品许可证

我正在尝试使用 Microsoft 的 LicenseProvider 找到可靠的许可方案。我的想法是通过 RSA(具有 2048 位密钥的 RSACryptoServiceProvider)的方式使用异步加密。我发现这很容易,但我不确定这个机制到底有多安全。这不是为了好玩,需要对美国的许多产品(我们说的是大约 100 次安装)进行复制保护。不需要截止日期。

现在,我使用私钥来加密许可证文件 (.lic)。在客户的计算机上,许可证管理器将在运行时将计算机的唯一 ID 与 .lic 文件中存储的唯一 ID 进行核对。由于产品将具有相应的公钥,因此它可以解密文件。如果 ID 匹配,则许可证有效并且程序启动。

(顺便说一句,计算机 ID 是:MAC 地址 + CPU 序列号 + 硬盘驱动器序列号的组合。因此,如果其中一项发生更改,则需要更新许可证)

就这么简单?如我所见,即使您可以解密 .lic 文件,也永远无法再次加密它,因为您没有所需的私钥。

现在,除了购买昂贵的第 3 方解决方案、破解和规避许可 DLL 之外,您认为使用 RSA+computerID 的想法有多安全?

(是的,我们正在研究混淆代码以使其更好)

感谢您的反馈!

0 投票
9 回答
3495 浏览

c++ - 复制保护静态库

我很快就会发布一个付费的静态库,我想知道是否可以构建任何形式的复制保护来防止开发人员复制库。

理想情况下,如果(且仅当!)该库已被非法复制到开发人员的机器上,我想完全阻止该库被链接到可执行文件中。这可能吗?

或者,如果链接到库的非法副本的应用程序根本不起作用,这可能是可以接受的;然而,重要的是,这不会给这些应用程序的用户带来负担(例如输入许可证密钥、使用加密狗,甚至需要 Internet 连接)。

该库是用 C++ 编写的,面向包括 Windows 和 Mac 在内的许多平台。

我有什么选择吗?

0 投票
4 回答
333 浏览

encryption - 如何使用硬件解决方案创建“牢不可破”的加密或复制保护?

我想谈两种类型的问题:

  1. 假设您出于版权目的编写了一个要加密的程序(例如:拒绝未经许可的用户读取某个文件,或禁用该程序的某些功能),但大多数基于软件的加密都可以被黑客破解(只需查看数量HACK 程序可用的程序成为“完整版本”。)

  2. 假设您想将软件推送给其他用户,但想防止盗版(即,其他用户复制该软件并将其作为自己的软件出售)。有什么有效的方法来防止这种情况(类似于 CD 上的音乐保护,如 DRM)?无论是从软件角度还是硬件角度?

还是这两个属于同一类问题?(加密狗是基于硬件/芯片的解决方案,如下所述)?

那么,可以使用基于芯片或硬件的加密吗?如果是这样,究竟需要什么?您是否购买了一种特殊的 CPU、特殊的硬件?我们需要做什么?

任何指导表示赞赏,谢谢!

0 投票
3 回答
12866 浏览

comments - 贵公司是否对所有源代码文件放置了声明版权/商业机密/等的注释标题块?

如果是这样,你的政策是什么?您是否主张所有源代码文件的版权/商业机密,或者您是否主张所有版权/商业机密仅包含商业机密?

您能否发布带有法律术语的示例评论块以及您是如何得出它的?

我提出这个问题,因为前段时间,当我在 IBM 工作时,有一些关于在软件标头的法律部分中放入什么内容的具体说明,这似乎很有意义。有不同程度的保护要求。最低的是公开可用的,在这种情况下,您将提供标准的“AS-IS”/“无保修”/“免费”/“留下此消息”条款。下一个级别声称专有/机密,并声明只有明确授权的个人才被允许访问(并且如果员工/承包商结束他们的关系,他们必须返回/删除/销毁/等。最高级别声称内容是商业机密并去了更深入。

我知道这不是一个严格的编程问题,但我想不出更好的地方来调查真正的开发人员做了什么,并可能让人们发布他们的政策甚至示例标题(省略公司名称等)

我将首先发布我用作答案的那个。我通过在 Google 代码上运行搜索来构建它(奇怪且具有讽刺意味的是,那里有很多这样的标头公开可用),然后从每个代码中获取似乎是最好的东西。

我希望 SO 社区可以投票赞成/反对并为每个答案添加评论,我们可以发展为其他人可以遵循的最佳实践。

如果这是最好的社区 wiki,那我 100% 没问题。我会让其他人做出这个决定。

0 投票
4 回答
1516 浏览

ios - 有效的 iPhone 软件复制保护解决方案

是否有任何有效的复制保护解决方案来保护 iPhone 软件?