- UID
- 66565
注册时间2010-5-2
阅读权限10
最后登录1970-1-1
周游历练

TA的每日心情 | 开心 2016-11-4 23:26 |
---|
签到天数: 5 天 [LV.2]偶尔看看I
|
本帖最后由 sdrf5678lk 于 2011-3-28 11:59 编辑
呵呵~~~上次只分析了一下软件的算法一直没有给出注册机的源;
今天刚有时间就把它写了一下~~~~就发给大家看看
#include <iOStream>
using namespace std;
void main()
{
char a[20]; //定义一个存放机器码的空字符串数组
char b[] = "4k6d8r"; //这这个是程内置的字符串
cout<<"清输入你的机器码: "<<endl;
cin>>a; //接收机器码
int i, j, k, n;
n = strlen(b); //计算内置字符串的位数
k = strlen(a); //计算机器码的位数
for(i=0;i<n;i++) //这个for 循环是用来取内置字符的ASCII的
for(j=0;j<k;j++) //这个内置的for 循环是用来取字符数组a[j]
{
a[j] = a[j] ^ b; //把字符数组A[J]中的ASCII XOR 内置字符数组中的ASCII把它们的结果
} //保存到A[J]数组中
for(j=0;j<k;j++) //这for 循环个是用来打出我们的注册码的
{
if(a[j]<10) //用来检查我们算出的数组中每个元素是否为个位是的话
{ // 就用0填充
printf("%X",0,a[j]);
}
printf("%X",a[j]);
}
printf("\n");
} |
评分
-
查看全部评分
|