共享软件的注册加密法
共享软件的注册加密法Internet 网络的迅速发展,为软件高效传播开辟更加广阔的天地。如国内著名的金蜘蛛软件下载中心,就是一个典型的 发布软件集散地。发布共享软件主要包括两种形式:日期限制形式和电子注册形式。日期限制形式允许下载软件的用户 使用软件一段时间,如一个月等共享软件注册,如果用户认可该软件,可购买该软件的注册序列号继续使用;电子注册形式就是根据 用户所用机器的硬件信息产生注册码,并在软件中对某些先进或常用功能进行限制,如果用户要使用其全部功能,必须 将软件采集的有关硬件信息反馈给开发者,并交一定的注册费可获得该软件在自己机器中的注册码,才能正常使用。 前一种形式很容易给盗版者造成可乘之机,如果制作盗版者购买了一个注册序列号并公布于天下,则所有用户使用这个 注册号都可进行正常使用;后者对用户来说注册手段稍显复杂些,对开发者来说也需要一定的编程真功夫,但其具有“八 点锁紧”功能,防盗性却是不容置疑。本文根据自己的实践,将后者的实现过程介绍给想要制作发布共享软件的读者。 一、注册源 在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"); keyrom[i]=(*(pt+i)+0x1818)^0x5858;//第一级加密算法sprintf(buff,"KEYID:xxxxx", keyrom[0],keyrom[1],keyrom[2],keyrom[3],keyrom[4]); buff[0x1a]=0; if((fp2=fopen(pathstmp,"wb"))==NULL) CREATEERROR!",pathtmp); fseek(fp2,0L,SEEK_SET);fprintf(fp2,"%s\xd\xa",buff); fclose(fp2);
手机浏览,点击图片保存二维码到相册,然后打开微信扫一扫选择本二维码图片就可以进入,电脑端微信“扫一扫”二维码,进入找聊天搭子平台,里面有找饭搭子、找对象、找陪伴服务等等