能力值:
( LV2,RANK:10 )
2 楼
谁说一定会有真码
能力值:
( LV2,RANK:10 )
3 楼
看着个界面,好有年代感啊
能力值:
( LV2,RANK:10 )
4 楼
像20年前的东西
能力值:
( LV2,RANK:10 )
5 楼
运行就是提示这个 --------------------------- 预付费售电管理软件V3.1 --------------------------- '2010-11-10' is not a valid date. --------------------------- 确定 ---------------------------
能力值:
( LV2,RANK:10 )
6 楼
srand((unsigned int)time(NULL));
unsigned char cdkey[8] = { 0 };
SYSTEMTIME tm;
GetLocalTime(&tm);
cdkey[0] = tm.wYear % 2000;
cdkey[1] = tm.wMonth;
cdkey[2] = tm.wDay;
cdkey[3] = 30;//3.0 版本号
cdkey[4] = 0;
cdkey[5] = 0;
cdkey[6] = 0xA + rand() % 0x63;//随机填充一位 所以你会看到机器码每次不一样
cdkey[7] = 0;
//先把效验值算出来
int hash = 0;
for (int i = 0; i < 8 - 1; i++)
{
hash += cdkey[i];
if (hash >= 0x64)
{
hash -= 0x64;
}
}
cdkey[7] = hash;
//保留最后一位效验值,这样起到效验前面数据的作用
for (int i = 0; i < 7;i++)
{
cdkey[i] = cdkey[i] + cdkey[i + 1];
if (cdkey[i] >= 0x64)
{
cdkey[i] -= 0x64;
}
if ((cdkey[i] & 0xf0) < 0x60)
{
cdkey[i] ^= 0x3;
}
}
//这样你可以理解注册码了 算法相同.只是填充的数据 算法就是这样子了
printf("生成机器码:%02d%02d-%02d%02d-%02d%02d-%02d%02d\n", cdkey[0], cdkey[1], cdkey[2], cdkey[3], cdkey[4], cdkey[5], cdkey[6], cdkey[7]);
以上就是完整的注册算法了. 可以用来生成机器码. 只要填参数就可以生成可以用的注册码.
机器码为什么随机在代码里面也可以看到了.
实际上这个机器码和注册码没什么关系.
比如这个注册码,随便都可以注册使用.
2307-1234-2532-2291
有效期为: 2021-05-30
最后于 2021-3-14 23:07
被Mxixihaha编辑
,原因:
能力值:
( LV3,RANK:20 )
7 楼
先强改存入注册码,找到存储位置,返回真一样能爆破吧,死教条你就输了。
能力值:
( LV2,RANK:10 )
8 楼
Mxixihaha
srand((unsigned int)time(NULL));
unsigned char cdkey[8] =&am ...
这个与CDK码没有关系的注册码?这个注册算法还是看不明白,我是菜鸟,刚初学还没有达到写注册机的水平
能力值:
( LV2,RANK:10 )
9 楼
开心一族
这个与CDK码没有关系的注册码?这个注册算法还是看不明白,我是菜鸟,刚初学还没有达到写注册机的水平
那你就慢慢先学习基础, 像这类数据软件作为商用的,暴破只要有一处弄得不好 就有可能出现功能异常,数据异常,非常不保险的. 效验的地方多,如果不是注册码注册很有可能发现不了其他检测的地方,等实际操作的时候出现莫名的问题.
先从基础开始 , 看不明白证明你的能力还不够玩这个东西. 相信你经过学习之后再来看会有收获的.
能力值:
( LV2,RANK:10 )
10 楼
所以我一开始就想尝试追注码,
能力值:
( LV2,RANK:10 )
11 楼
开心一族
所以我一开始就想尝试追注码,
没有明码的注册码,不是所有的东西都会有 strcmp 的. 所以没有明文比较.找不到的.