同享软件的注册加密法[VC/C++编程]
本文“同享软件的注册加密法[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Internet网络的疾速发展,为软件高效传达开辟越发广漠的天地.如国内闻名的金蜘蛛软件下载中央,就是一个典型的公布软件集散地.公布同享软件主要包含两种情势:日期限制情势和电子注册情势.日期限制情势答应下载软件的用户利用软件一段时间,如一个月等,假如用户承认该软件,可购置该软件的注册序列号持续利用;电子注册情势就是按照用户所用机械的硬件信息产生注册码,并在软件中对某些先进或常勤奋效举行限制,假如用户要利用其全部功效,必须将软件采集的有关硬件信息反馈给开辟者,并交一定的注册费可得到该软件在自己机械中的注册码,才能正常利用.
前一种情势很简单给盗版者造成可乘之机,假如制作盗版者购置了一个注册序列号并公布于天下,则全部用户利用这个注册号都可举行正常利用;后者对用户来说注册手段稍显复杂些,对开辟者来说也需求一定的编程真工夫,但其具有“八点锁紧”功效,防盗性倒是无可置疑.本文按照自己的实践,将后者的实现历程介绍给想要制作公布同享软件的读者.
1、注册源
在WIN98/95的保护情势下,要按照硬件信息形成注册码可不是一件简单的事,在实情势下可通过硬盘端口1F6H和1F7H直接读取硬盘的序列号等信息作为注册的数据源,但这一办法在保护情势下却被亮出了红牌.操纵BIOS中的主板序列号、BIOS版本序列号或主机出厂日期和标志等,完好可以作为注册码的注册源.如ROMBIOS中F000H-FFFFH区域中就存在与硬件配置有关的信息,还可以采集别的一处或几处主板等的信息作为注册码的生产基地.比方可按照F000H:FFF5H-F000H:FFFFH 中存放的主机出厂日期和主机标志值,产生利用程序的注册码.由于计算机产品的更新换代对比快,并且全部用户利用的计算机不大概配置都完好相同,所以注册码产生的源也不会完好相同.并且这些硬件信息内容在任何操作系统下均完好相同,兼容性非常好,更不会因为操作系统的更新而造成注册功效失效.
注册源肯定之后,关键的问题就是同享软件安装程序若何采集注册源信息,并让用户将其返回给开辟者.最简单的办法就是将采集到的注册源信息经过位操作加密后存放到一个文本中,形成注册码的数据源资料.这个注册源数据串可稍长一些,但不宜太长,利用户可以通过电子邮箱、电话或信件顺利转给开辟者为好.如笔者安装程序是用C语言编制的,假如将上述内存地址作为注册源,数据串文本文件名为KEYID.DOC,长度为20个字符.其示例代码以下:
FILE *fp2;
unsigned int keyrom[9];
unsigned char buff[0x410];
unsigned char pathstmp[80];
unsigned char path[80]={"C:\\WBCOOL"};
unsigned int far *pt=(unsigned int far*)0xf000fff6L;
......
outportb(0x21,0x2);
strcpy(pathstmp,path);
strcat(pathstmp,"\\");
strcat(pathstmp,"KEYID.DOC");
for(i=0;i<5;i++)
keyrom[i]=(*(pt+i)+0x1818)^0x5858;//第一级加密算法
sprintf(buff,"KEYID:%04x%04x%04x%04x%04x",
keyrom[0],keyrom[1],keyrom[2],keyrom[3],keyrom[4]);
buff[0x1a]=0;
if((fp2=fopen(pathstmp,"wb"))==NULL)
{
printf("FILE %s CREATE ERROR!",pathtmp);
} else {
fseek(fp2,0L,SEEK_SET);
fprintf(fp2,"%s\xd\xa",buff);
fclose(fp2);
}
outportb(0x21,0x0);
以上是“同享软件的注册加密法[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:<b>vcl库函数</b>
- ·下一篇文章:<b>C++中const用法详解</b>
- ·中查找“同享软件的注册加密法”更多相关内容
- ·中查找“同享软件的注册加密法”更多相关内容