首页
社区
课程
招聘
[旧帖] [求助][原创]写注册机问题 0.00雪花
发表于: 2009-3-24 09:59 3061

[旧帖] [求助][原创]写注册机问题 0.00雪花

2009-3-24 09:59
3061
http://bbs.pediy.com/showthread.php?threadid=8043
注册码D1D2D3D4通过下面这个式子子转换成中间码:
((((D1<<6+D2)<<6)+D3)<<6+D4)=中间码
现在我知道中间码怎么逆运算过去推出D1,D2,D3,D4呢?
原文破解如上链接,但是他说的逆运算推出注册码,要怎么逆啊谁能说下么?
谢了!~~~~~~~~~~

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
上面不是有keygen嘛?
2009-3-24 11:55
0
雪    币: 59
活跃值: (41)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
我要自己写啊!
2009-3-24 12:21
0
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个就是左移相加,和小学做的乘法竖式一个意思。这里左移6位就是乘以64。d1,d2,d3,d4就相当于中间码的64进制的“千,百,十,个“位。用%和/就可以算出来了。

d4 = 中间码 % 64
d3 = (中间码 >> 6) % 64
d2 = (中间码 >> 12) % 64
d1 = 中间码 >> 18

不过,这样算下来d2,d3,d4都是0~63,可能正好可以做你的那个keygen的index;不过要是单独看这个帖子里的式子,((((D1<<6+D2)<<6)+D3)<<6+D4)=中间码。D1~D4的范围应该都是0~255。
0~63的时候没有进位
64~127进位为1
128~191进位为2
192~255进位为3
根据你需要的数字的范围,在逆推的时候,把前面那一位减去借位的数字就行了。比如你想算的d2,d3,d4在64到127之间。那么进位都是1
d4 = 中间码 % 64 + 64
d3 = ((中间码 >> 6) - 1) % 64 + 64
d2 = ((((中间码 >> 6) - 1) >> 6) - 1) % 64 + 64
d1 = (((((中间码 >> 6) - 1) >> 6) - 1) >> 6) - 1

只不过d1的范围这里无法指定,应该最后算出来在什么范围就在什么范围了。

举个例子,比如中间码是 0x123456,要求d2,d3,d4在64以内,那么
d1=0x04
d2=0x23
d3=0x11
d4=0x16
"d1d2d3d4"=0x04231116

如果要求d2,d3,d4在64~127之间,那么
d1=0x03
d2=0x62
d3=0x50
d4=0x56
"d1d2d3d4"=0x03625056

其他的范围以此类推就行了。

如有不对的地方,欢迎讨论。
2009-3-24 12:47
0
雪    币: 59
活跃值: (41)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
这个就是左移相加,和小学做的乘法竖式一个意思。这里左移6位就是乘以64。d1,d2,d3,d4就相当于中间码的64进制的“千,百,十,个“位
呵有道理啊,这么简单我都没想到郁闷啊!
2009-3-24 19:41
0
雪    币: 59
活跃值: (41)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
恩你分析得很全面,他算法里面D1,D2,D3,D4范围在1到64要考虑进位
2009-3-24 19:44
0
游客
登录 | 注册 方可回帖
返回
//