打印

注册机---正版软件的墓地

[复制链接]
5209|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2010-8-21 19:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hotpower 于 2010-8-21 19:28 编辑

讨论之地的54楼https://bbs.21ic.com/icview-190954-1-1.html


注册机---正版软件的墓地

本友情加密方法的核心为唯一ID+辅助ID构成128位的注册码。
它与目前流行的软件注册机制是雷同的。它需要用户在得到光盘(或免费下载)后,要想要全部功能必须到出版商网站注册。
这种注册机制实际是将用户的一些唯一信息(如硬盘、注册表、网卡)提交给网站,网站根据某一不公开的算法得到一串注册码返回给用户。
这个过程的自动完成软件就称之为注册机。
软件出版商手里肯定有合法的注册机,那么软件的解密者如果通过反汇编的跟踪及分析,则就会知道唯一ID和
辅助ID之间的关系即算法。他就会通过唯一ID推算出辅助ID来,即完成了对唯一ID的注册过程。

一旦推导出注册机,那么解密者将不会再考虑加密者复杂的加密和解密过程,这些过程对于拥有注册机的解密者而言它们不过是些不必要的延时过程。

网站的注册过程即注册机的算法运行过程对用户是绝对保密的,即合法注册机。
解密者根据N个合法注册用户及反汇编的跟踪和分析,就有可能推导出算法并且构造出伪造的注册机。

假若合法的注册机与伪造的注册机完成的注册过程完全一样,则伪造的注册机就可以离线替代网站!!!

故此本楼标题成立,注册机---正版软件的墓地

所以,本主题的加密方法最大的任务是混淆唯一ID与辅助ID之间的关系,使解密者难以从N个合法ID推导出算法。

菜农HotPower@163.com 2010.8.21 于雁塔菜地

相关帖子

沙发
eydj2008| | 2010-8-21 19:35 | 只看该作者
本帖最后由 eydj2008 于 2010-8-21 19:41 编辑

:P
香主又提醒大家 又有一个好的思路,就是那个副ID不让 **者找到
在验证的时候 有明解密 和 暗解密 还是可以达到别人不能简单**而直接使用的目的

使用特权

评论回复
板凳
流行音乐| | 2010-8-21 19:52 | 只看该作者
我有完美的解决办法:用数字签名技术(例如RSA)对用户发过来的 ID 进行数字签名,这样就不怕算法公开,因为算法本来就是公开的。数字签名技术就是不怕算法公开。

使用特权

评论回复
地板
tingtang| | 2010-8-21 19:54 | 只看该作者
mark

使用特权

评论回复
5
tingtang| | 2010-8-21 19:54 | 只看该作者
在这还能看见菜农,名人啊!!!

使用特权

评论回复
6
hotpower|  楼主 | 2010-8-21 20:01 | 只看该作者
数字签名在密码学上实际就是单向散列函数,即任意长度的信息流都会被散列为长度固定的散列值。
它是一对多和不可逆的,它号称“碰撞概率”极低难以伪造。但这只是数学理论上的概念。
银行系统采用数字签名主要是防止银行内部职员伪造签名,由于它在理论上无法避免碰撞,故还是可以**的。

使用特权

评论回复
7
hotpower|  楼主 | 2010-8-21 21:42 | 只看该作者
本帖最后由 hotpower 于 2010-8-21 21:53 编辑
我有完美的解决办法:用数字签名技术(例如RSA)对用户发过来的 ID 进行数字签名,这样就不怕算法公开,因为算法本来就是公开的。数字签名技术就是不怕算法公开。 ...
流行音乐 发表于 2010-8-21 19:52


首先应该区别数字签名和公开公钥密码体系之间的关系,前者为密钥(公开)固定的不可逆算法,后者为有2把密钥(公钥和私钥)的可逆运算。两者的算法都是公开的。

前者的代表作如MD5,后者如RSA.

俺举个例子就知道数字签名的“碰撞”是什么回事:
今天是周六,那么7天前或后都是周六。
那么我们可以知道每7天一周的循环,即有很多日子对应于周六,但周六到底是某一日就无法确定了。
所以,星期也是一个单向散列函数。它与MD5等最大的不同在于它的周期是固定的,而且周期恒为7天。故7天就会发生一天星期碰撞。

由于MD5的碰撞周期不确定而且非常大,故假定“碰撞概率”极低。
所以我们就可以认为某一数字经过MD5运算后只能得到一个固定的唯一散列值(很难找出碰撞,但并不代表没有)
反之,知道了这个唯一的散列值(数字签名)而且知道MD5算法也很难知道原始的数字是多少。
银行就是用此原理来防止签名伪造的。但是理论上是可以伪造签名的,因为理论上有碰撞的发生。

银**在取钱时是临时输入密码的,提款机经过散列函数得到散列值与数据库比较即可认定是否是合法用户。密码并不存在在银行的任何数据库中,数据库中只有用户的数字签名。

但对于MCU加密就不适用了,因为这个不存在的密码必须联网密码提交,显然是不现实的。
那么将此密码存入MCU某个FLASH单元中即HEX文件中的话,解密者即可**做出注册机来。

使用特权

评论回复
8
lie88| | 2010-8-21 21:42 | 只看该作者
:lol硬盘ID,网卡MAC地址,都是可以用软件改的吧!

使用特权

评论回复
9
hotpower|  楼主 | 2010-8-21 21:47 | 只看该作者
:lol硬盘ID,网卡MAC地址,都是可以用软件改的吧!
lie88 发表于 2010-8-21 21:42


所以PC端加密的难度远远大于嵌入式产品。
这就是为什么流行“纯软件不值钱,加硬件就无价”了~~~

使用特权

评论回复
10
zoudejile| | 2010-8-22 15:20 | 只看该作者
呵呵学习了

使用特权

评论回复
11
xixihaha0| | 2010-8-22 17:37 | 只看该作者
21ic 在hotpower的带领下,加密解密风常刮不停啊

使用特权

评论回复
12
mcuisp| | 2010-8-22 17:55 | 只看该作者
面对nop**,数字签名也没用。
直接修改判断之处就行了。
不过只要用了反拷贝技术,就可以防堵大部分低级**者。
加密也需要咱们电工,解密也需要咱们电工。大大增加咱们电工的总体利益,呵呵。

何乐而不为呢。

使用特权

评论回复
13
歪 歪| | 2010-8-22 18:15 | 只看该作者
西西

解密的人可以直接爆破,加个跳转语句就可以绕过防线了。

最有效的办法是“暗桩”。

你得分析解密者心理,他要有成就感,你给他一个very easy就可以解的,那他就不想玩了。

当然,too easy的会伤害解密者的感情,总得给盗版的人一条活路啊。所以,给他一颗糖豆吃,加密不能简单得一塌糊涂,至少要经过一番思考,绕点路,让盗版的人有一种智慧上升的感觉。

怎么也要1个小时才能解开,然后他发布,1个月后,解密失效,用户不能用了,但是盗版者可能已经不再关注这个软件了。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
mxh0506 + 1
14
歪 歪| | 2010-8-22 18:27 | 只看该作者
我做的软件都是承诺90天内无理由退货的,即使退货也不必归还注册码和赠品,还可以接着使用,只是不能升级。

使用特权

评论回复
15
mcuisp| | 2010-8-22 18:52 | 只看该作者
呵呵,13楼是有过不少研究。
这种策略是非常有必要的。
我称之为“多点反拷贝”。

使用特权

评论回复
16
hotpower|  楼主 | 2010-8-22 19:43 | 只看该作者
本帖最后由 hotpower 于 2010-8-22 19:45 编辑

轻易被人爆破是加密者的分支造成的。结果参与输出和代码防止改写多层保护才是正道。俺还是那句话:被**或被**未遂,是软件作者的荣耀,否则是他一生的悲哀和无奈。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
mxh0506 + 1
17
huangqi412| | 2010-8-23 12:18 | 只看该作者
MARK

使用特权

评论回复
18
vlog_fans| | 2012-2-28 14:39 | 只看该作者
16# hotpower

这句话是精髓中的精髓

使用特权

评论回复
19
lyz6118| | 2012-2-28 15:09 | 只看该作者
我做加密的时候不用比较语句。而是把密码运算到某个关键的参数上。。。。

使用特权

评论回复
20
wangc111| | 2012-2-28 15:48 | 只看该作者
加密

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1460

主题

21619

帖子

506

粉丝