如题,想请教各位业界大佬,一个软件给到客户处,客户不联网,时间不会跟着网络时间更新,根据本地时间的话,他可以私自改动时间导致控制不住,开服务的话,服务也可能被关掉吧。想请教一下有没有什么好的控制方式?
101
iorilu 2019-09-20 21:08:46 +08:00
定时监控系统时间, 发现时间比上一次靠前就知道改了, 然后退出
|
102
kizunai 2019-09-20 22:44:22 +08:00
你们上面说的方法能对付使用 虚拟机快照 的用户吗?
第一次使用之前创建快照 之后每次使用都恢复到最初的快照 |
103
charseer 2019-09-20 23:10:31 +08:00
我到蛮想知道上面的读硬盘 s.m.a.r.t 信息的方案怎么读的。
|
104
freelancher 2019-09-20 23:35:08 +08:00
我来了。直接按打开软件次数计时。例如打开 9 次。就直接锁定。要激活码就好了。到时如果还要用,就远程输一下激活码。反正也是加密的。
|
105
churchmice 2019-09-20 23:46:15 +08:00 via Android
除非联网或者额外加硬件,不然无解
大不了客户找台机器改个时间重新装下你的软件 或者直接镜像系统,你一个软件是无法跳出这个局限的 |
106
GeruzoniAnsasu 2019-09-21 00:12:48 +08:00 10
V2EX › 程序员
不联网的情况下,怎么控制一个软件的过期不准使用? ............................. 果然都是程序员 其实 2b 的产品,控制使用授权还相对简单,license 绑定硬件,然后卖东西出去的时候许可证定了那么长,到时间让商务联系对方续期就完事了。如果对方拒绝续费私下继续用,对产品方来说并没有什么区别,反正第一期的钱已经收了,绑定硬件的东西他也没法转手出去。2b 产品卖的就是个持续更新和售后支持,要么就建议对方买永久 license,原价打个折,一般不会抠这点预算的。私下使用是违背合同的行为,对于商业客户来说还是挺致命的,解决授权问题不必全从技术上考虑。 企业客户一般不会自己重装更不会尝试破解,一是不一定有专业能力,二是会跟自身公司的审批流程和管理部门相关,很复杂,三是数据对他们来说很重要,回滚代价会很大。 如果你们主要用户是 C 端的,那最好的方法是把产品做成 web app,第二是 硬件 key, 第三是搞一堆复杂的联网认证离网不可使用,第四是,不赚软件的钱。 |
107
hst001 2019-09-21 00:23:53 +08:00
什么办法都是防不住的,具体情况具体对策。几百几千的软件根本就不用防,你一直出新功能总有一天会来找你买新版本的
|
108
ylrshui 2019-09-21 00:40:22 +08:00 via iPhone
每次启动软件到关闭软件,记录时间差,每次叠加,达到一定值,破坏软件。需要把时间差记录在你的 exe 上,才可能使人不会发现配置更改,也就是每次启动后都会更新你的 exe
配合其他方法一起使用,比如每次启动随机性的成功失败,失败则破坏掉你的 exe |
109
ylrshui 2019-09-21 00:42:32 +08:00 via iPhone
重要的是随机破坏 exe,让用户找不到头脑,无法分析限制使用的方法
|
110
ylrshui 2019-09-21 00:44:38 +08:00 via iPhone
当然这是在备份有限的情况下才有用。如果有无数个备份,如虚拟机快照那种,怎么都没办法
|
111
neetrorschach 2019-09-21 02:43:29 +08:00
加密狗啊,自带时钟。很多国产企业软件都是这么干的。
|
112
iceheart 2019-09-21 02:50:15 +08:00 via Android
让程序的运行对时间产生依赖,修改时间就会运行异常。
|
113
msg7086 2019-09-21 03:05:36 +08:00
没有硬件辅助的话没法防。
上面说的虚拟机快照恢复是一个很典型的手段。 至于时间检测,与变速齿轮类似的软件就可以破。直接让你软件读到的时间慢无数倍。 |
114
billlee 2019-09-21 03:08:22 +08:00 1
然后客户使用了 sandbox/虚拟机 /全盘备份
|
115
icekingcy 2019-09-21 03:30:03 +08:00 via iPhone
不联网无解。本地任何地方存记录都解决不了,使用者直接删除记录或者把初始版做 N 个副本,拷贝到新电脑里继续使用
|
116
Greatshu 2019-09-21 03:42:33 +08:00
和朋友讨论过这个问题,大概有这些想法
1、最基本的,反虚拟机,反调试 2、如果能用自己的硬盘,用 VeraCrypt 或 BitLocker 给整个硬盘加密,并在加密的硬盘上启动软件。绑定硬件,检测到未绑定的硬件就关机。系统自带一个 HIPS,阻止除系统程序和你的程序以外的所有软件启动。 3、加密狗 |
117
EugeneYWang 2019-09-21 03:53:50 +08:00
你这个问题不就是游戏正版验证问题嘛, 一个游戏行业和一个微软已经想了几十年都搞不通最终还是只能靠 DRM 机制联网认证(游戏行业)或者基本不防(微软)。。。你们觉得还能有什么百分百的方法。。。
不如向上面的网友说的,To B 的就直接让商务交流,To C 就只能靠 Web App, 还有总的来说就是一直更新,他们自然会找你买新的(可恶的 Parallel ) |
118
gtlions 2019-09-21 07:03:20 +08:00 via iPhone
1、程序文件生成 MD5
2、将步骤 1 结果进行加密存储 3、获取运行环境硬件信息生成 MD5 4、将步骤 3 结果进行加密存储 5、程序执行时候分别使用步骤 2、4 内容比对 6、签发授权文件,基于步骤 4 的内容 7、程序执行时候比对授权 8、程序执行时比对时间,基于授权文件 |
119
azuginnen 2019-09-21 08:07:56 +08:00
v2ex 有个老哥提供过一个思路的,过期不是不让用,是搞些错误数据出来,把正确数据寄到 xlog 里面,等到他们发现了之后再收钱解密。
|
120
azuginnen 2019-09-21 08:13:37 +08:00
|
121
Counter 2019-09-21 08:53:46 +08:00 via Android
@azuginnen 这软件要是用到数据库就好办了,相当于软件有了“状态”,很多方式可以让用户老实
|
122
azuginnen 2019-09-21 10:01:04 +08:00
|
123
hkitdog 2019-09-21 10:04:52 +08:00 via iPhone
不可能的,大廠的遊戲還不是被逆向,Adobe,jetbrain 還不是一大堆破解,你覺得自己能防住?
|
124
ztcaoll222 2019-09-21 10:10:47 +08:00
你去反编译一下讯飞的 sdk? 我记得那些是有时间限制的
|
125
raptor 2019-09-21 10:49:00 +08:00
加硬件吧,用一个 USB 狗限制
|
126
brucewuio 2019-09-21 10:53:32 +08:00
设置允许使用时常 t,已使用时常 u,然后每次运行软件获取 monotonic clock,退出时 u+使用时常,打开时检查 if u > t
|
128
yankebupt 2019-09-21 12:00:25 +08:00
windows 当年就是这么干的,就算你用在 ATM 上生产环境半年一年都不打补丁是要闹哪样?给我定时激活!限于内网隔离安全措施 KMS 也行!但是后来有后患……
现在改成了一段时间不激活就削了你大部分额外功能,基本功能完全不影响保证你不会因为系统罢工闹出这样那样的赔偿损失,但用着肯定不会爽就是了…… |
129
XuanFei990 2019-09-21 12:16:44 +08:00
防不胜防的,有利可图怎么都想办法搞了
有说加密狗的,没用,,加密狗程序花钱也能解决的。 北京有家做激光打标卡的,连 cpld 程序,加密狗程序,都反向的明明白白的,山寨的满天飞 最后北京哪家升级版本,做 asic 芯片,算是防住了大部分盗版的人,不过以前版本的已经没办法控制了, 不一定什么时候利润驱使下,asic 芯片也是可以反向的,就问你怕不怕。。 |
130
yankebupt 2019-09-21 12:17:18 +08:00 1
@fileinthehole 另外我记得这个离线授权有个笑话……
某软件离线授权,为了避免硬件狗不透明,送了一张 1 年刮刮卡,一天刮个数,连续运行几天按要求随机刮几个数输进去...... 等用户觉得这 TM 三个月 ghost 一次不就完事了么太好破解了,一次两个月后突然弹出 6 个坐标问你哪几个刮了哪几个没刮不然就自爆…… 逃……(这个笑话很可能是另一个时间线的我编的,不记得了)…… |
131
XuanFei990 2019-09-21 12:19:44 +08:00
如果你们公司很强势,满可以不联网不让用,就完了,
|
132
XuanFei990 2019-09-21 12:22:05 +08:00
@laravel 那应该是加密狗
|
133
in4 2019-09-21 16:57:46 +08:00
老板要把用户想想成高级黑客,又要全程离线使用,那感觉这问题就无解了
|
134
cnyang 2019-09-21 17:50:37 +08:00
不联网又不基于时间这就是无解题,所以还得从时间上下手,离线能保证授权的最简便方法就是用自带独立硬件时钟的加密狗
|
135
Befehishaber 2022-08-19 15:05:01 +08:00
@newtype0092 exe 在运行没办法修改吧
|