首页
社区
课程
招聘
[求助][求助]磁盘逻辑序列号计算注册码的逆向算法困惑
2009-6-5 00:59 5516

[求助][求助]磁盘逻辑序列号计算注册码的逆向算法困惑

2009-6-5 00:59
5516
初学逆向,好不容易跟踪了一个软件,等到写逆向算法的时候,仔细推敲变量的时候傻眼了
注册时候软件显示以下两个数值
computerkey: 001P1E38(这个值经过观察试验成功一次加一)
network add:xxxxxxxxxx这个肯定不变了,网卡地址
license type :one day 注册类型选择
license  key:这个要我们输入了
经过跟踪分析算法发现
程序在计算注册码的时候用了一下5个数值
A=磁盘逻辑序列号
B=软件版本号
C=NTFS/FAT32
D=网卡序列号
E=注册成功次数(该软件注册后过一段就会过期,不同的注册模式使用时间不同,应该是变相的computerkey了)
array=0123456789ABCDEFGHIGKLMNOPQRSTUVWXYZ
计算注册码是用一个函数依次处理这5个数值然后把返回值累加得到值F
即:F=FUN(A)+FUN(B)+FUN(C)+FUN(D)+FUN(E)
然后通过除法运算G=F%36
取array[G]作为注册码,一共取八次得到8位注册码,可喜的是次注册码会明码显示在堆栈中

通过分析小弟有以下困惑,甚为不解?
如果写出注册机是不是只能在本机注册成功(因为硬盘序列号重复可能性太小了)?对付其他机器可能就不行了?
针对不同的机器这个磁盘逻辑序列相当于不确定的量了,如何绕过这个呢?
各位大侠是否有同样的经历,望指点一二。从哪里入手分析寻找突破呢?

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

收藏
点赞0
打赏
分享
最新回复 (4)
雪    币: 230
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
bingaoyi 2009-6-5 09:54
2
0
自己先顶,继续困惑,闭关找资料中。。。
雪    币: 517
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
BlueT 2 2009-6-5 12:16
3
0
使用磁盘卷标作机器码进行注册而制作注册机没什么不行,只不过是问题多多。
其一是每次重装系统,磁盘卷标都会改变的。软件制作者采用这种方法,通常对安装次数会作出限制,否则他自己会累趴下的。
雪    币: 230
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
bingaoyi 2009-6-5 12:55
4
0
然而据我所知该软件的确有注册机,
注册时候只要提供
computerkey: 001P1E38(这个值经过观察试验成功一次加一)
network add:xxxxxxxxxx这个肯定不变了,网卡地址
license type :one day 注册类型选择
三项,客服就给出一个注册码的,我的磁盘序列号他们怎么知道呢?这种实现方式实在想不通,我确定对软件计算注册码的方式没跟踪错,
雪    币: 157
活跃值: (376)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
likecrack 2009-6-6 11:26
5
0
新手.不便多说.程序显示这些信息.作都能给你注册码.别人也可以用这些来计算注册码.关键是对算法的理解.
游客
登录 | 注册 方可回帖
返回