如何让本地程序不被破解?

2014-04-20 13:47:45 +08:00
 matrix67
最近研究source insight这个软件已经好久没有更新了,不过他的可用度已经很高了。其注册价格有点贵,200+美刀。不过后来我去主页上看到,M$,intel,amd,三星……你叫的上名字的大公司都在用它,大公司应该都是正版用户吧。如果他有1W+的正版注册,作者应该早就财务自由了,怪不得他跑到另一个星球上度假去了:)

话说他的防盗版措施其实很不严格,另一款看代码的神器understand也是(授权高达800+美刀)。这么贵的东西为啥不用一把好一点的锁锁起来呢。

我想了一想,如果程序放在本地的话,不联网,很难不被破解的吧。你一个用户一个序列号,要是有谁把它发到网上去了就没用了。

要是提取机器某些特征,如mac地址,硬盘序列号,我又可以把它们改掉。

那就只能用加密狗了,这样做全球化工作又不好做。

最好是要某一段信息传到服务器中去,服务器再返回结果,理论上讲,桌面软件是不可能不被破解吧。

所以桌面程序员把程序写的好好的,让大公司都用上,才能不差钱吧。

哎,感叹一下!
5583 次点击
所在节点    程序员
25 条回复
cxe2v
2014-04-20 13:58:38 +08:00
完善的法律制度才是保护不被破解的唯一途径,我之前所在的公司客户都是国外的软件公司,产品也就一个授权码验证一下,而且还是本机验证,可想如果有谁买了一个授权码然后发网上去,全世界都能用,但是老外就没有这么干的,因为这么干了要受到法律制裁!
akfish
2014-04-20 15:35:37 +08:00
你个人用用,人家其实无所谓,在天朝的大环境下,也不能把你怎样对吧,反而还起到推广作用。
但如果一个企业敢用盗版,呵呵,等着被起诉赔款吧,在天朝也是一样的。
法律对于企业级的版权纠纷,还是解决得很热情的。
而这些企业也就只需要斗几个大地主,就够活下去了,更何况别人其实本来合法用户也不少。

想起之前曾经看到过某行业内论坛扒的事情,说某行业应用开发商A,会定期假装成另一个开发商B的销售人员,给各个公司打电话假装推销他们的产品/做市场调查。
其中就有一个问题就是:”你们现在有在使用同类产品吗?“
如果回答是有,而且是A家的产品,别人一看正版用户列表里面没有,第二天律师函就发过去了。
结果这些公司就只得买N套正版授权,才能避免法律诉讼。

所以这个故事告诉我们,把羊养肥了,再剪毛,比简单粗暴的上锁可操作性更强,收益更高。
jsonline
2014-04-20 15:53:00 +08:00
法律
yangff
2014-04-20 16:19:38 +08:00
不可能。
在中国你也别指望什么法律了,让破解成本>>购买成本吧。
guoruei
2014-04-20 16:21:11 +08:00
相比之下 copyleft 比较爽,大部分情况下可以随意修改,可以重新打包再发出去。也可以付款给开发者开发新功能。
tmqhliu
2014-04-20 16:28:01 +08:00
行业软件都是有锁的 从国产的 Senselock 到国外的 HASP Sentinel 等等

但即使这样,也难逃被破解的命运。破解之后,这些人会给软件加上自己的锁——当然都是入门级的那种便宜锁,然后以盗版锁的名义放到淘宝上卖。 一套正版的行业软件,便宜的上万,贵的十万百万都有,淘宝上卖的盗版,只要上百元,这样的盗版仍然是很有销路的,做盗版的人一个月卖几十把锁,也挣了不少钱。

这些人有点像应用商店里的打包党,以重新打包出售别人的版权作品获利。虽然是违法,但目前的管理仍然是空白。
dianso
2014-04-20 16:35:29 +08:00
在程序目录放一个txt文档,写上最恶毒的诅咒就可以,然后找和尚开下光。
dong3580
2014-04-20 16:56:57 +08:00
@matrix67
不管桌面程序还是非桌面,只要在需要在本地运行,都需要将资源加载到本地的内存中,都有办法破解,只不过难度不一样。如果害怕破解,可以选择部分开源,核心收费,这样,常见的基本功能免费,针对软件的功能进化不错,针对大众;核心保留授权。
imsuwj
2014-04-20 17:13:35 +08:00
让你的程序值得购买。
qian19876025
2014-04-20 17:17:36 +08:00
只要是在桌面被破解可行性是很高的 当然要对得起破解的费用

现在的企业都在做的神码云 就是楼主说的那种 只提供服务 把软件重新安装回 企业的机器

Google 就是成功的例子 别个提供的服务就让你欲罢不能 从而达到让你付费的 (当然别个是饶了个大弯 向投广告的 要钱) 你普通人看广告
zakokun
2014-04-20 18:18:04 +08:00
本地程序不可能完全保护的。即使有,那花的成本太高,反而得不偿失。都是靠法律的。
andrewhxism
2014-04-20 19:23:14 +08:00
本地程序不可能,微软的windows和office基本上是这个星球上最高水平的软件了吧,不联网验证都是白瞎。
yingluck
2014-04-20 19:30:33 +08:00
@dianso 让我想想,能对诅咒开光的,要么是藏传的什么活佛,要么就是街上骗人的假和尚了吧
wdlth
2014-04-20 19:42:49 +08:00
当年育碧的DRM连育碧自己都觉得恶心……
还搞“最好是要某一段信息传到服务器中去,服务器再返回结果”这种,用户不会买账的。
matrix67
2014-04-20 20:16:06 +08:00
楼主懂了,楼主做了一番research,从技术角度上说,《保护软件着作权要注意避免的思路误区》这篇文章基本把破解-保护的思路都点到了,另外,另一位小哥说道:

===
ECC是防注册机,不是防爆破的。如果所有的软件都使用签名算法,KeyGen这东西基本上就要消失了。
关于防爆破问题,从理论上说,只要软件可以在机器上正常运行所有功能一次,这个软件就可以有爆破版,因此无论你如何做,也无法防止正版用户的破解。 这也是就是说,随着保密技术的不断加强,Cracker业余爱好者将无软件可pj。
因为pj模式会变成这样:
1、D版商或Cracker业余爱好者从软件作者那里购得软件正确的注册码或Keyfile
2、实行pj
3、将pj版发布到网上供他人下载
因为要涉及到购买环节,所以说Cracker为了自己的爱好,很难不和盗版商勾结。(不幸)

我认为彻底解决这个问题只有Server-Client模式
将关键代码做成接口,放在服务端。客户端只有输入正确的用户名和密码,服务器才会运行这个接口,并将结果返回给客户程序。当然客户端增多,会加大服务器的负担。
这样所有的Cracker就要转行当hacker了。
==

以上基本上是桌面软件所有反破解方法了。

其实根源上,就是yuange1975的那个思想,安全是一个条件语句,而反盗版也是一个条件语句的检查,爆破总可以找到这个条件语句,而你的反制措施就是花大力气做检查(术语称为暗桩),付出的代价是软件结构化问题,效率问题,稳定性问题等等。

为了保护好利益,一是开发面向版权意识比较发达国家为目标用户的软件,对于行业软件,则需要做大做强,拿起法律的武器~
shierji
2014-04-20 20:40:13 +08:00
我总感觉。本地的程序应该都难保不被破解吧。。。
66450146
2014-04-20 21:17:15 +08:00
原谅我又把这个例子搬出来了

Oracle 做得最绝,什么注册码都不用,几百万授权费花出去,让你去官网下载。。。。
sandtears
2014-04-20 21:19:52 +08:00
便宜的东西加大破解难度,不会有人为了破解一百人民币的软件忙上一下午吧?

贵点的东西就靠法律途径来保护。
jarnanchen
2014-04-20 22:08:13 +08:00
我一直不能理解为什么没有一款面向C++编辑器可以超越SI,SI已经那么久没更新了,那个界面我看了都难受。
C++的程序员都比较守旧么难道?
alexapollo
2014-04-20 22:31:11 +08:00
@jarnanchen SI是全语言的。

另外,我觉得VS比SI好太多了。。

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

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

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

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

© 2021 V2EX