-
-
[旧帖] [求助]这个算法怎么改进? 0.00雪花
-
发表于: 2011-5-8 09:33 1018
-
本人刚学破解,最近在看《看雪十周年》里面的破文。
原帖:http://bbs.pediy.com/showthread.php?threadid=11528
这一篇的算法比较简单,作者没有提供注册机,我想写一个。可惜编程水平太差,而且写出来的长度不能满足~求各位高手指点:
现把算法贴出:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char arr[30];
cout<<"input your name:"<<endl;
cin>>arr;//这里的确会发生缓冲出溢出,要怎么解决?
int nameLength=strlen(arr),sum=0;
for (int i=0;i<nameLength;i++)
{
char tmp=arr[i];
sum+=(tmp*tmp-tmp/2);
}
cout<<"the code is:"<<endl;
//现在开始生成注册码
char code[1000];
memset(code,0,1000);
int chushu,yushu,recnum=0,result;
do
{
if(((sum >=0x30) && (sum <=0x39))||((sum >=0x41) && (sum <=0x5a))||((sum >=0x61) && (sum <=0x7a)))
{
code[recnum]=sum;
break;
}else if(((sum >0x39) && (sum <0x4a)))
{
chushu=0x39;
yushu=sum % chushu;
result=sum/chushu;
for (int i=recnum;i<recnum+result;i++)
{
code[i]=chushu;
}
recnum+=result;
sum=yushu;
}else if(((sum >0x5a) && (sum <0x61)))
{
chushu=0x5a;
yushu=sum % chushu;
result=sum/chushu;
for (int i=recnum;i<recnum+result;i++)
{
code[i]=chushu;
}
recnum+=result;
sum=yushu;
}else
{
chushu=0x7a;
yushu=sum % chushu;
result=sum/chushu;
for (int i=recnum;i<recnum+result;i++)
{
code[i]=chushu;
}
recnum+=result;
sum=yushu;
}
}while(sum!=0);
int tmpCodeLength=strlen(code);
for(int i=0;i<tmpCodeLength;i++)
{
if(code[i]==0x0)
break;
cout<<code[i];
}
cout<<endl;
cout<<"Cracked by 凭凡"<<endl;
return 0;
}
原帖:http://bbs.pediy.com/showthread.php?threadid=11528
这一篇的算法比较简单,作者没有提供注册机,我想写一个。可惜编程水平太差,而且写出来的长度不能满足~求各位高手指点:
现把算法贴出:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char arr[30];
cout<<"input your name:"<<endl;
cin>>arr;//这里的确会发生缓冲出溢出,要怎么解决?
int nameLength=strlen(arr),sum=0;
for (int i=0;i<nameLength;i++)
{
char tmp=arr[i];
sum+=(tmp*tmp-tmp/2);
}
cout<<"the code is:"<<endl;
//现在开始生成注册码
char code[1000];
memset(code,0,1000);
int chushu,yushu,recnum=0,result;
do
{
if(((sum >=0x30) && (sum <=0x39))||((sum >=0x41) && (sum <=0x5a))||((sum >=0x61) && (sum <=0x7a)))
{
code[recnum]=sum;
break;
}else if(((sum >0x39) && (sum <0x4a)))
{
chushu=0x39;
yushu=sum % chushu;
result=sum/chushu;
for (int i=recnum;i<recnum+result;i++)
{
code[i]=chushu;
}
recnum+=result;
sum=yushu;
}else if(((sum >0x5a) && (sum <0x61)))
{
chushu=0x5a;
yushu=sum % chushu;
result=sum/chushu;
for (int i=recnum;i<recnum+result;i++)
{
code[i]=chushu;
}
recnum+=result;
sum=yushu;
}else
{
chushu=0x7a;
yushu=sum % chushu;
result=sum/chushu;
for (int i=recnum;i<recnum+result;i++)
{
code[i]=chushu;
}
recnum+=result;
sum=yushu;
}
}while(sum!=0);
int tmpCodeLength=strlen(code);
for(int i=0;i<tmpCodeLength;i++)
{
if(code[i]==0x0)
break;
cout<<code[i];
}
cout<<endl;
cout<<"Cracked by 凭凡"<<endl;
return 0;
}
赞赏
他的文章
- [邀请码已发][原创]申请邀请码,破文一篇 10022
- [求助]这个算法怎么改进? 1019
- [求助]使用指针执行shellcode 1662
赞赏
雪币:
留言: