閺€鎯版 (0) +1 鐠э拷 (0) +1 闊拷 (0) +1
閺€鎯版閹存劕濮�閺屻儳婀呴弨鎯版>>
0

正在阅读:共享软件的注册加密法 (上)共享软件的注册加密法 (上)

2004-10-09 12:19 出处:CSDN 作者:宋立波 责任编辑:huangpeidan


  sum=0x1234;
  sum1=0x7456;
  for(sumj=0;sumj<4;sumj++){//形成16位注册码
  for(sumi=0;sumi<5;sumi++){
  sum+=keyrom[sumi];    //形成前4位码
  sum1+=keyrom[sumi];
  }
  sum^=0x1234<<sumj;      //进行移位异或处理
  sum1^=0x7456<<sumj;
  sprintf(Buff+4*sumj,"%04x",sum);
  sprintf(Buff1+4*sumj,"%04x",sum1);
  }                         //形成16位注册码
  printf("\nWIN-KEY:");
  printf(Buff);
  printf("\nDOS-KEY:");
  printf(Buff1);
  exit(1);
  } else {
  sum=0x1234;
  sum1=0x7456;
  for(sumj=0;sumj<4;sumj++){//形成16位注册码
  for(sumi=0;sumi<5;sumi++){
  sum+=(*(pt+sumi)+0x1818)^0x5858;
  sum1+=(*(pt+sumi)+0x1818)^0x5858;
  }
  sum^=0x1234<<sumj;
  sum1^=0x7456<<sumj;//进行移位异或处理
  sprintf(Buff+4*sumj,"%04x",sum);
  sprintf(Buff1+4*sumj,"%04x",sum1);
  }
  printf("\nWIN-KEY:");
  printf(Buff);
  printf("\nDOS-KEY:");
  printf(Buff1);
  }
  }

  三、注册码

  当用户注册成功后,注册码就被写到共享软件的相应位置。这时共享软件必须对用户注册码进行实时检测与判断,才能实现注册限制功能。这时要求共享软件必须内部取得注册源数据,并利用注册机中相同的算法产生内部注册码。这就要求共享软件直接读取ROM BIOS的注册源信息,并在共享软件中需要限制的功能处增加注册码检测判断功能,这需要根据共享软件的实际需要、软件大小和实现的难易程度来确定限制的数量,使盗版者很难进行解密。这样既使计算机中多个共享软件使用相同的注册源,也不会发生注册冲突问题;既使是使用了相同的注册源数据,由于注册算法的不同注册码也不会相同;即使解密者知道注册算法的注册源地址,由于无法知道注册算法而且注册点遍布整个共享软件,也很难进行盗版。因此,这一注册方法使共享软件有效地跨越各种系统平台。

  要在共享软件内部产生注册码,必须在共享软件中读取ROM BIOS数据源内存数据。WINDOWS保护模式下必须利用段选择符方法和API编程接口提供的函数才能实现:

  1.AllocSelector(Selector)分配一个与参数相同的空选择器
  2.FreeSelector(Selector) 释放分配的选择器
  3.SetSelectorBase() 设置选择器描述符物理起始地址
  4.GetSelectorBase() 获取选择器描述符物理起始地址
  5.SetSelectorLimit() 设置选择器描述符访问界限
  6.GetSelectorLimit() 获取选择器描述符访问界限


察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
閹靛婧€鐠佸潡妫�閸ョ偛鍩屾い鍫曞劥