给软件增加防复制/盗版的功能,大家有什么好的建议?

2019-01-04 10:40:56 +08:00
 mathzhaoliang

领导要求我给公司的软件产品开发一个防复制 /盗版的功能,就是说,防止用户私自将软件拷贝到另一台电脑上运行。为此需要将软件的注册号和硬件信息绑定(硬盘序列号,mac 地址), 最好是能和 cpu id 绑定,但是好像 cpu id 在 i3 以后就不能用了。开发语言限定为 C 语言。

我们的软件目前是和硬件一起捆绑卖的,即卖出的电脑上安装了我们的系统,所以卖出电脑的硬件信息是知道的。

现在有两个选择:

  1. 使用开源库 (这个是最好的方案,但是我不知道有什么这样的开源库?)

  2. 自己动手写一个。

自己写一个的话,我的方案是这样的:

我知道破解的时候可以用跳转的方式跳过判定相等这一步,这种情况先不考虑,毕竟我们这个防破解只打算防一般的用户,不防高手。请大家看一看,这个方案可行不?有没有明显的漏洞?

8891 次点击
所在节点    程序员
63 条回复
mathzhaoliang
2019-01-04 15:15:37 +08:00
@zzzzzzZ 意思是说用任意的 (E', Pub_Key') 替换掉原本的 (E, Pub_Key) ,使得验证总能通过是吧?那前提是要反编译找到程序中的 (E, Pub_Key) ?
cst4you
2019-01-04 15:31:00 +08:00
做成云服务
P0P
2019-01-04 15:36:56 +08:00
既然是卖硬件,那也可以直接往 kernel 里面加自定义模块,然后软件检测 kernel 对应模块,这样用户也不可以自己升级系统了
luanluan
2019-01-04 15:37:43 +08:00
脱了壳 照样破,
murmur
2019-01-04 15:38:31 +08:00
@mathzhaoliang 不说壳还有什么可以谈的,一个逆向然后改掉你的判断就破解了,做序列号第一件事就是加大破解难度
mathzhaoliang
2019-01-04 15:42:46 +08:00
@murmur 是这样的,我们这个原则上就是防君子不防小人,有个基本的保密功能而已。而且我们在考虑增加一个后台发送信息的功能,把动态计算出的哈希值 H 发到我们的服务器上和数据库进行比对,这样他只能伪造硬件信号。
WordTian
2019-01-04 15:42:48 +08:00
@mathzhaoliang 对啊,所以大家让你加个强壳,不让别人找到(E, Pub_Key)啊
dearmymy
2019-01-04 16:11:14 +08:00
相信我,别自己写,不是安全行业的自己写,破解你跟玩一样。直接花钱买一个 vmp。你要的什么需求都有
neoblackcap
2019-01-04 16:40:44 +08:00
@dearmymy 真便宜,旗舰版才卖 999 刀,一个程序员一个月的工资都不够。我觉得还行,现在 999 刀还招不到一个能开发壳的程序员。不过这东西稳吗?我感觉还是联网实时校验更稳。就不知道 LZ 的设备能不能联网。联网一切好说
luny
2019-01-04 16:45:11 +08:00
这种纯软的方式不建议,最好增加一个 i2c 的 eprom (我用的是 FM24C08D,2 毛多)或者专用的加密芯片,每个芯片的 id 是不一样的,这样可以绑定硬件,算法自己定,破解难度相对大些,抄板也没用。
dearmymy
2019-01-04 17:24:26 +08:00
@neoblackcap 我当时加密自己软件,买过一个旗舰版,没用他联网那套模块,用的是本机授权那套。稳定性很好。毕竟这么多年了。本身加上 vmp 就已经劝退很多人了。lz 那种加密方式。想破解真实太多地方可以下手了
mathzhaoliang
2019-01-04 17:53:06 +08:00
@luny 淘宝上有卖?能给个地址吗?
tabris17
2019-01-04 17:55:09 +08:00
核心业务逻辑放云端执行,否则都是不可控的。要不就上硬件加密狗吧,提高破解难度
mathzhaoliang
2019-01-04 17:59:19 +08:00
@luny 我找到一个淘宝链接,他卖 3 毛。我不太懂的是这个应该怎么用?是写好程序烧进去,然后集成到硬件上?可以解释下吗?
Cryse
2019-01-04 18:00:46 +08:00
核心逻辑云端+硬件加密狗
binbex
2019-01-04 18:01:15 +08:00
其实就是给用户算个用户 GUID,然后最好这个算法 vmp 下
mathzhaoliang
2019-01-04 18:02:18 +08:00
@Cryse
@tabris17

不行,软件比较复杂,必须放在客户端跑,公司没有能力支持那么复杂的云服务器。加密狗的话每套成本要增加小 100 左右,也不好。
won
2019-01-04 18:04:58 +08:00
lz 方案可行。既然捆绑硬件卖,为什么在硬件上加装个前置摄像头和 4g 模块,人脸识别很现成了
jinhan13789991
2019-01-04 18:09:06 +08:00
给你推荐一招,盗版也能继续用,数据量给它搞一定的偏移。 后面企业发现问题就会想办法解决,然后盗版用户就转正版了。一箭双雕!
lovelybear
2019-01-04 18:10:47 +08:00
VM 加壳

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/523758

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX