网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | 防火墙 | IDS/IPS | VPN | PKI | Honeypot | Hacker/Intruder | 黑客技术 | 破解技术 | 加密技术 | 病毒防护 | 木马 | 反垃圾邮件 | 反流氓软件 | 漏洞 | 无线安全 | UNIX | Windows | 安全编程 | 安全软件 | TPM/TCG | 数据恢复 | 企业信息安全 | 个人信息安全
 当前位置: Home > 破解技术 > 加密狗 > 文章  
软件狗[Dongles]的加密与解密技术
文章来源: 清风网络学院 文章作者: 清风网络学院 发布时间: 2006-08-11   字体: [ ]
 

  2、使用BITSHELL须知

  请不要使用PKLITE,LZEXE或EXEPACK进行压缩商品程序。建议高级语言程序设计者,如有可能将所用程序设计语言的启动代码作修改,改变程序的入口点,避免被截获。在程序内部识别BITSHELL的嵌入式模块最好采用随机调用。

   加密时用环境变量指定参数。生产一批软件,用同一种变形算法,万一软件有漏洞,新版本的软件可换一种变形算法。加密后的文件放在硬盘上,可提高加密速度。超大文件加密后,再用PKZIP等压缩后,放入商品软件盘上。

  3、注意事项

  (1)运行BITSHELL系统,或运行经BITSHELL加密的程序系统,如果安装了驻留型的调试跟踪器(如:Soft-ICE,GameBuster等),请先拆除之,否则程序将拒绝运行,因为这样有跟踪解密的嫌疑。
  (2)使用BITSHELL加密商品软件的开发者,不要将BITSHELL系统盘上的任何文件和信息,以任何方式提供给最终用户。不要将自己所用的BITSHELL的版本,序列号和变形算法透漏出去。

  五、系统提供的可链接函数

  函数BL-ComeIn(BLOBJ.OBJ).........................[1]

  C语言说明:

  extern unsigned long BL_ComeIn(void);

  说明:

  利用这个函数可判断是否运行过反跟踪程序,同时还返回程序的PSP段地址和机器的ROM检查和,供用户程序进一步检查。这是一个与加密外壳相关的函数,这样可使用户程序与加密软件融为一体。对PSP段地址和ROM检查和的判断不要隔的太近。

  入口参数:无

  出口参数:

   如果出错,返回 0FFFFFFFFH ;
          (DX:AX=0FFFFFFFFH)
   如果成功,返回一个无符号的长字。

    其中:
     低字节是ROM检查和,高字是PSP段地址。
     (AL=ROM检查和,DX=PSP段地址)

  注意:

    ROM检查和计算方法:
    累加ROM(0xF000:0xE000)处开始字节,长度为0x100。
    获取PSP段地址方法:
     MOV AH,62H
     INT 21H
    BX就是该程序的PSP段地址。

  调用建议:

  不要每次运行都去检查该函数,用适当频率、在关键的地方调用这个函数。

  C Usage Example:

  /*
   * function:BL_ComeIn
   */
 
  extern unsigend long far BL_ComeIn(void);

  /* Error return 0xFFFFFFFF,Success Return
   * Lo Byte is checksum,Hi Word is PSP segment
   */

  void My_BL_ComeIn()
  {
   unsigned long ComeIn;
   unsigned short int ROM_CheckSum;
   unsigned int PSPsegment;
   ComeIn=BL_ComeIn();
   if (ComeIn==0xffffffff)
   {
     printf("\nERROR:not loaded from BITSHELL shell ! \n");
   }
   else
   {
    ROM_CheckSum=ComeIn&0xff;
    PSPsegment =ComeIn>>16;
    printf("nBITSHELL On Entry:\N");
    printf("ROM checksum is %x\nh",ROM_CheckSum);
    printf("PSP segment is %xh\n",PSPsegment);
    inregs.h.ah=0x62;
    intdos(&inregs,$outregs);
    printf("n This program PSP segment is %xh\n",outregs.x.bx);
   }
  }

 
推荐文章
 

 
共13页: 上一页 [1] [2] [3] [4] [5] [6] 7 [8] [9] [10] [11] [12] [13] 下一页
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
热点文章
·USB软件狗的设计及反破
相关分类
相关文章
·USB软件狗的设计及反破
·破解QQ密码保护的方法
·我要看代码 破解加密网
·破解高手常用的破解工具
·愚公移山 文档密码全面
·毫不费力:破解加密PDF
·用Linux的dd命令简单破
·解密宝典——十招教你学
更多...
 
 

Copyright(c) 2001-2008 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统
$Id: article_article.html,v 1.3 2007/02/10 12:00:37 yjs Exp $