问题标签 [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 投票
1 回答
246 浏览

android - 适用于 Android 的 Dictionary 应用程序的内容保护(许可)

我们正在为 Android 开发一个字典应用程序。我们从权威出版社购买了授权的词典内容,并将它们捆绑在应用程序中。必须在应用程序发货后保护内容。为了性能效率和易于开发,我们希望将字典内容存储为 SQLite 数据库表。

我们计划将字典应用程序与平板电脑的字典内容一起预装——我们有一个客户是安卓平板电脑供应商,并继续通过 Android Market 或其他一些在线购买机制为客户提供即将推出的字典名称。

我的问题是:

  1. 对于应用程序和内容预装在 Android 平板电脑上的情况,什么样的加密机制足以保护内容不被黑客入侵。
  2. 对于网购新增标题的案例,有没有好的例子可以借鉴?
0 投票
2 回答
5397 浏览

password-protection - 软件序列号的实现

假设我编写了一个程序并希望将其分发给人们。我希望能够在安装过程中向用户请求一个序列号,这将验证他们是否拥有该软件的许可副本。此外,我希望序列号存储他们可以访问的软件版本以及许可证何时到期。

我至少可以想到两种概念方法来实现这一点:

  1. 在用户购买软件的服务器上生成一个序列,并通过电子邮件发送给他们。该软件在安装过程中连接到服务器并激活产品。服务器返回许可证权限和到期时间。序列号没有特定的格式/数学规则,它只是根据服务器上的数据库进行检查。

  2. 为客户生成序列并通过电子邮件发送给他们。该系列具有一些特殊的数学属性,允许程序检查它是否有效、它对应的许可证以及到期时间。

我最感兴趣的是第二种方法。在序列号中编码此信息时使用了哪些技术?如果你能给出一个简短的概述,那就太好了。否则,你能推荐一些讨论这个的好书或网站吗?

我觉得奇怪的是,在我编码的这些年里,我从未真正看到过这些技术的实现或描述。

0 投票
11 回答
11756 浏览

android - Android游戏不断被黑客入侵

所以我们现在已经经历了几次,我们发布了一个游戏(便宜),有人破解了它并将它放在镜子上。我们为所有应用设置了 Google 快讯,因此我们每天都会被告知谁在进行黑客攻击。到目前为止,我们已经按照 Google 的建议实施了许可服务,每次使用唯一设备 ID 启动许可时,我们的盐都是随机生成的。当应用程序第一次启动时,我们运行一次检查服务。然后,我们为键和存储的值生成一个 512 个字符的哈希值,然后在 SharedPreferences 中进行比较。

现在,我知道检查一次可能是应用程序被阻止的地方。我们的字节码很可能在没有启动检查的行的情况下被查看和重新编译。

从这里开始,我不想混淆我们的代码,因为我之前已经看到它被破坏了。我想要一些更扎实的东西,我也想学习如何正确地做到这一点。在这一点上,我对学习比赚钱更感兴趣,因为只有 2% 的人会寻找破解版。

到目前为止,我自己已经想出了一个随机数生成器,它放置在游戏的几个启动区域中。启动时(例如,50 次中有 1 次)检查许可证。我知道这会使破解变得更加困难,因为破解者必须消除每个案例,编译,消除,编译。但是,这种方法仍然可以破解……那么你们有什么建议?同样,我对这个安全过程非常感兴趣,所以请教育,不要把它变成关于混淆或基于时间戳定期检查的讨论。

谢谢

0 投票
2 回答
617 浏览

cloud - 云软件的加密狗替代品

我们的软件目前受 USB 加密狗保护。如果我们想在云环境中运行它,显然这不再是一种选择。

云本身将由我们的客户控制——他们已经建立了这样的环境。

这样的环境有什么好的保护方案吗?

0 投票
1 回答
94 浏览

validation - 如何禁用无效身份验证的产品?

我对此有点难过。我有一个非常独特的散列算法等,用于创建密钥/许可证;我不担心那部分。

我需要的想法是如何禁用无效的产品......呃,验证。

它在 linux 平台上并使用配置文件等。

我有几个基于无效许可证的操作选择:

-清除配置文件(但是,很容易从备份中恢复)

-用非功能性二进制文件替换二进制文件(但这些可以很容易地从备份等中恢复)

- 只需标记支持人员以供以后联系,但这仍然不能解决禁止非许可副本的问题。

想法?到目前为止,我还没有一个令人满意的解决方案。

0 投票
4 回答
3096 浏览

android - 如何复制保护PhoneGap Android 应用程序?Android Market Copy 保护功能有用吗?

我在 Android 中有 PhoneGap 应用程序。现在我准备发布它,但我想保护应用程序免受脚本小子的眼睛。我首先认为这是不可能的,然后我在市场上发布应用程序时发现了“复制保护”功能。所以我很兴奋,但是当我打开它时,它实际上并没有什么作用。

我可以毫无问题地在有根手机上安装该应用程序,我可以将其复制到 SD 卡上并查看所有来源。我认为这个“复制保护”功能将不允许拥有根手机的人安装该应用程序。还是我错过了什么?

有什么方法可以让人们在我的应用程序中看到我所有的 HTML 和 JS 源代码,如果根本不禁用它,至少会变得困难吗?

0 投票
2 回答
311 浏览

windows - 对于我的 Azure 应用程序二进制文件被盗,我应该有多偏执?

我需要将一个巨大的应用程序迁移到 Windows Azure。该应用程序依赖于第三方库,该库需要存储在角色实例文件系统上的特殊二进制文件中的激活密钥。

显然,该密钥必须包含在角色包中或存储在角色可以获取它的某个位置。激活密钥不会绑定到机器(因为我不知道角色将在云中的确切位置运行),因此任何人都可以使用它来制作该库的副本。

由于 Azure 角色在不受我们控制的地方运行,我对密钥被盗并广泛可用感到有些偏执。

如何评估窃取包含在 Azure 角色中的二进制文件的可能性?我如何减轻此类风险?

0 投票
1 回答
144 浏览

php - 验证哪个服务器发送 HTTP 请求

如何验证发送 HTTP 请求的服务器是我所期望的?

我想制作一个基本的代码保护系统,该软件在允许的网络服务器上运行并执行 Am_I_Allowed?对我的服务器的 HTTP 请求。然后,我的服务器将确定发送请求的服务器,并检查白名单。

IP 地址已失效,因为如果受保护的代码在共享托管服务器上运行,它将返回托管公司的 IP 地址。$_SERVER['REMOTE_HOST'] 基于 IP 地址,它将解析网络托管公司的域名。

服务器可以在 HTTP 请求中发送并用于身份验证的东西有什么独特的(并且难以欺骗)吗?一个简单的密码是行不通的,因为如果您确实将“复制”粘贴到另一台服务器,那么第二台服务器也将在代码中嵌入一个有效密码。

非常感谢

0 投票
2 回答
3619 浏览

html - HTML5 复制保护

我正在构建一个在线游戏,类似于 Flash 在线游戏,但仅使用 HTML。(HTML5)

我想阻止人们复制它并将游戏放到他们的网站上。

使用 flash,我过去常常通过添加 URL 检查来确保它在我的网站上运行,但如果我只能在 Javascript 中进行检查,这似乎没用。

有什么可以阻止某人简单地复制游戏吗?

作为后续..

我可以完全保护源吗?(除了用 javascript 混淆之外。)

谢谢!

0 投票
1 回答
141 浏览

php - 如何保护我的应用程序,使我的服务提供商不会获取代码和数据库并将其发布到另一个地方

我为我的公司(php-mysql-jquery)开发了一个应用程序,我们正试图将这个应用程序出售给不同的公司。问题是我们不是直接销售它,而是我们的服务提供商作为中介。我的老板担心,由于我们的服务提供商托管了应用程序,他可以简单地复制应用程序的文件夹 db,然后将其作为自己的出售。

那么,问题来了,有没有办法可以将应用程序锁定为仅在特定服务器上运行?我在想的是某种“stratup check”,基于服务器的 ip 和“index.php”的实际文件夹,如果没有通过,就会阻止应用程序。当然我混淆了我的代码,所以它是无法撤销工程检查。

类似的东西(只是为了清楚):

您是否有更好的想法,或者更好的是,有一些标准程序 - 最佳实践?