共享软件的注册加密法

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");
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);

时间: 2024-10-21 18:38:31

共享软件的注册加密法的相关文章

自制王码五笔型输入法安装包

Windows XP没有自带五笔型输入法,这对五笔型用户而言无疑是个大大的遗憾.网上的五笔型输入法虽然种类很多,也不乏优秀的版本,但一方面有些版本是共享软件需要注册,另一方面也许很多五笔型输入法的老用户最习惯用的还是老牌的"王码五笔型输入法86/98版". 微软的Office XP软件中包含了这个老牌的五笔型输入法,但如果用户并不使用Office XP中的任何组件,仅仅是为了使用"王码五笔型输入法"而运行Office XP安装程序,就显的有些小题大做了,更不用说是某

《善用佳软:高效能人士的软件应用之道》一2.5 PDF:跨平台文档解决方案

2.5 PDF:跨平台文档解决方案 善用佳软:高效能人士的软件应用之道 2.5.1 全面接触PDF:最好用的PDF软件汇总1 本节旨在介绍最实用的.以免费软件为主的PDF相关工具,同时消除对PDF的常见误解,较为系统地介绍PDF应用操作,包括PDF虚拟打印机.格式转换.阅读及注释.属性及页面编辑.图文编辑等. 1.关于PDF及本节内容的一些基本说明 (1)关于PDF. 什么是PDF?PDF是由Adobe公司发明的文件格式,是Portable Document Format的缩写,意为"便携文档格

cpu-C程序经过编译后,最终生成的文件里面是不是 机器码?

问题描述 C程序经过编译后,最终生成的文件里面是不是 机器码? 如果是某一种机器码,那应该只能用在某一种类型的的cpu上,但是现实是不管是AMD还是intel的都可以运行.而AMD和Intel的cpu指令集是不一样的.那为什么还能运行同一次编译出来的软件? 解决方案 amd和intel拥有一个共同的指令集,但是在此之上,intel和 amd,以及intel自己各代处理器,都有自己的不同的指令. 比如说Intel Pentium 4有SSE2,但是没有SSE 4,AMD Athlon 64有3d

一款软件从平庸到卓越的六个秘诀

[CSDN专稿]为帮助国内软件从业者摆脱发展瓶颈,推动国内共享软件拓宽发展道路并走出国门,在成功举办"2010中国共享软件出口交流会"活动后,Digital River与CSDN再度合作,于2011年1月22日成功举办"踏上共享软件新掘金路"深圳站活动.本次活动主要面向独立软件.共享软件的开发者.开发团队以及大中型软件开发公司.希望将业务拓展至国外市场的软件开发商.营销商等,有超过150人到达深圳罗湖区维景酒店参会. DR globalDirect分部副总裁Mark

共享软件注册部分的简单实现

目前,很多共享软件中使用注册码来实现对软件的保护.所谓注册码,就是一组与用户的某些特定信息(如用户名称.计算机硬件等等)相关的字符串.由于注册码传输起来比较简单,同时容易验证(相对于磁盘.光盘指纹等),因此现在注册码的应用越来越广泛,甚至一些商业软件,如Windows XP也使用了类似的机制(Microsoft称为Windows Product Activation). 谈起注册码,就不能不提注册器.注册器是用来产生注册码的程序,其计算逻辑通常与受保护的应用程序一致.通过与受保护应用程序相同,或

如何实现共享软件网络授权认证,包括注册新用户、登录、修改密码等操作

开发共享软件,传统的是采用注册码验证方式,这种方式是大多数共享软件采用的方式,另外还有一种常见的验证方式,就是通过网络授权认证的方式,这种方式通过在程序中调用服务器的服务进行.一般具有验证用户名可用.注册新用户.用户登录认证.用户修改密码等操作,另外还需要配备一个网络授权入口给管理员对注册的用户进行授权控制. 这个是为了进行网络授权认证搭建的一个简单的管理后台,用户在共享软件客户端通过调用服务器的服务连接,可以注册一个新用户,或者进行登录获取身份信息(试用.已注册.已禁用等状态),还可以通过服务

开发手记(六)——共享软件注册程序编写实例(2)

-为保证文章完整性,谢绝对某篇而非全部手记的转载(mi6236) Option Explicit Private Declare Function GetVolumeInformation Lib "kernel32" _ Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, _   ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSiz

开发手记(六)——共享软件注册程序编写实例(3)

Microsoft公司在Windows NT3.51开始提出了注册表(Registry)的概念.注册表是Windows的一个重要组成部分,它保存了Windows中的各种配置参数.Windows的各个功能模块和安装的应用模块,在启动时都要读取注册表的信息,并根据这些参数来设置自己的运行环境,我们就可以把注册信息写入注册表来实现程序的共享注册.在VB中,有两种方法可以访问注册表:第一种是使用VB提供的函数: Private Sub Command1_Click() Dim KeyName as St

保护Windows注册表

保护注册表是很重要的,有很多不同的工具可以实现这一目的.当没有安全设置时,用户可能的错误会更多.幸运的是,他们可以有几中方法来保护Windows注册表,在注册表失败时他们可以用额外的拷贝来恢复注册表.下面就是其中的一些方法:   1.使用windows备份软件   注:Win95和Win98备份程序有部分区别,在这里只讲Win98的备份程序.   Win98中包括一个备份程序.当安装Win98时如果你选择"自定义安装",或者你可以在控制面板中的添加/删除程序里安装它.当你安装了这个备份