问题描述
一個軟件需要註冊,突然想到的,但還沒思路實現。需求如下:1、軟件是單機版2、軟件讀取機器碼,通過機器碼加密算法A計算出註冊碼,然後進行註冊,軟件OK3、軟件功能升級,同時升級機器碼加密算法A到算法B問題:如何讓以前已經註冊過的機器不用重新註冊?這麼做的原因是,軟件發布後,可能很快就會有註冊機,註冊機出來後,更新加密算法,註冊機就失效了。如何應對製作出新註冊機不做討論。
解决方案
解决方案二:
新版本怎么知道是之前注册的,还是破解注册机注册的呢?
解决方案三:
网络验证这个
解决方案四:
该回复于2015-05-26 19:32:59被版主删除
解决方案五:
你能区分出注册码是你发放的,还是註冊機生成的吗?显然不能,否则就是你的算法有问题
解决方案六:
本帖最后由 caozhy 于 2015-05-26 19:34:04 编辑
解决方案七:
只有购买凭证是无法做假的,如果你连用户有没有付钱给你都搞不清楚,那就干脆不要做生意了。
解决方案八:
引用楼主Javpp的回复:
3、軟件功能升級,同時升級機器碼加密算法A到算法B
升级的根本不是什么“加密算法”,而是验证功能。例如原来的软件在5个地方“以不同的方式”进行验证结果(有些地方明知道是d版但是不“发作”,只偷偷记录和联网上传信息),如果被人破解了3个地方(使得程序看起来好像是全部被破解),那么下一个版本就会更新验证方法。这里至少有两个要点:1.根本没有什么加密被解密。你把破解说成是“解密”,这是完全不理解破解机制的。破解的机制在于“跳过验证代码”,而不是解密。2.根据上面这条就知道,防破解的手段就是防跳过、防修改程序动态执行过程。这样就很容易防住。根本不是防什么解密。
解决方案九:
如果你认为加密就是:验证一个data文件里边的byte被解密之后其中有某个商标文字就算是正版,那么不管你怎么”升级加密算法“也不能保证保证真正意义上的软件升级。你只能让所有客户再重新交钱买一次软件,以便获得新的加密结果。实际上根本不是这个机制的。实际上软件会使用”非对称的“加密算法,几乎根本不存在(或者说一般的计算机在几百年之内不可能)解密的可能性,即使正版软件自己也不解密。软件原来在3个地方有验证本机环境在加密之后跟这个加密结果是否符合的代码,如果不符合就会诡异地引导d版程序最终崩溃。如果这3个地方被人“跳过去了”,那么下一个版本会换成另外4个地方,并且还会加上程序自身签名(确保可执行代码没有被篡改),这样破解补丁就必须跟着升级。这里最关键地,正版软件自己也不解密。那么防破解谈何”升级解密算法“呢?另外告诉你一个信息,我的一些朋友公司在群里散播自己的流行软件(上万中小企业用户软件)的盗版,自己做自己的盗版。为什么?为了忽悠更多的csdn或者其它地方里边的一些“好事之人”。人的丑恶的一面,也是值得利用的。