运行基本思路:将输入的文本替换-为空后,转换为long(记为B),再和 801183672215322752异或(结果记为C),最后的结果整除0xaff3L,如果结果为0,则判断正确。在这里,让C等于0xaff3L是最简单的方法(一倍,为0或任意倍数皆可)。换句话说,我们需要找个数字 num, 满足 801183672215322752^num=0xaff3L。
考虑到异或运算的特征,直接将其它俩数字异或即可得到这个数:
num=801183672215322752^0xaff3L=801183672215302003
====
PS:忘记考虑了长度限制,待我再想想。
====
默认一倍率算法算出来的数字18位,超出了最大值16位,因此需要处理下。
基于异或的特征,我们可以从倍率下手:通过倍率调整运算得到的数字,这样异或后的C在800000000000000000到809999999999999999之间即可。换句话说,我们可以把基础倍率设置为800000000000000000/0xaff3L,然后逐渐往上加,直到最后的结果依侍升然符合这个要求即可。
算法程序如下,仅供测试:
public static void Main(){
var code1=801183672215322752
var code2=0xaff3L
var rate=800000000000000000/code2
long result=0L
do{
result=code1^(rate*code2)
游谈氏 Console.WriteLine(result)
rate++
神散 }while(result.ToString().Length>16)
Console.WriteLine("注册码是:"+result)
Console.ReadKey(true)
}
提供一个参考注册码:1208968776231053
PS:让数字保持那个范围是为了把最高位的80消掉。
源代码是只编写软件时写的代码,这个你如果学过VB,那么你的VB工程就是贺腊源代码,而你生成的exe程序才是软件,注册码是一些软件用来赚钱的方式,一般来说每个软件在每台电脑上启动后都会生成一串字符串——,一般称此字符串为机器码或其他,而每个字符串对应一个注册码,当你在软件上输入正确的注册码后软件的某些功能就不会受到限制,一般如果不注册,那么软件可能会有使用次数的限制,或者某些功能不可用,注册机是用来计算注册码的!举例:
你要用一个软件,但是软件提示必须注册,否则只能用30次,那么软件会给你一个问题(机器码),比如1+1=? 而你必咐拍伏须输入正确答案,当然,答案不衡携一定是2,这个答案是有写软件的作者制订的,而注册机就是一个计算器,计算答案的,比如在此软件的注册机上输入1+1=?,计算的结果是100,那么你在软件上输入100进行注册,软件就不会有任何限制了……
好啰嗦
程序名 返回值类型 公开 备 注__启动窗口_创建完毕 精易论坛
参数名 类 型 参考 可空 数组 备 注
变量名 类 型 静态 数组 备 注
注册码 文本型
注册表 文本型
XP风格 (1)
注册码 = 到文本 (取硬盘特征字 () + 2234240 × 0)
注册表 = 到文本 (取文本注册项 (4, “SOFTWARE\ceshi\zhucema”, ))
如果 (注册码 = 注册表)
载入 (窗口1, , 假)
销毁 ()
编辑框1.内容 = 到文本 (取硬盘特征字 ())
子程序名 返回值类型 公开 备 注
_按钮1_被单击 精易论坛
参数名 类 型 参考 可空 数组 备 注
如果 (编辑框2.内容 = 到文本 (取硬盘特征字 () + 2234240 × 0))
信息框 (“注册成功”, 0, )
写注册项 (4, “SOFTWARE\ceshi\zhucema”, 到文本 (取硬盘特征字 () + 2234240 × 0))
载入 (窗口1, , 假)
销毁 ()
信息框 (“注册失败”, 0, )
子程序名 返回值类型 公开 备 注
_按钮2_被单击 精易论坛
参数名 类 型友乎山 参考 可空 数组 备 注
结束 ()
-------------------------------------------------------------------------------
【注册机源码】
窗口程序集名 基 类 公 开 备 注
窗口程序集1 精易论坛
变量名 类 型 数组 备 注
子程序名 返回值类型 公开 备 注
__启动窗口_创建完顷哗毕 精易论坛
参数名 类 型 参考 可空 数组 备 注
XP风格 (1)
子好中程序名 返回值类型 公开 备 注
_按钮1_被单击 精易论坛
参数名 类 型 参考 可空 数组 备 注
变量名 类 型 静态 数组 备 注
注册码 文本型
机器码 整数型
机器码 = 到整数 (编辑框1.内容)
注册码 = 到文本 (机器码 + 2234240 × 0)
编辑框2.内容 = 注册码
子程序名 返回值类型 公开 备 注
_按钮2_被单击 精易论坛
参数名 类 型 参考 可空 数组 备 注
销毁 ()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)