当前位置:萝卜系统 > 网络技术教程 > 详细页面

软件狗[Dongles]的加密与解密技术(4)

软件狗[Dongles]的加密与解密技术(4)

更新时间:2021-04-26 文章作者:未知 信息来源:网络 阅读次数:

网络技术是从1990年代中期发展起来的新技术,它把互联网上分散的资源融为有机整体,实现资源的全面共享和有机协作,使人们能够透明地使用资源的整体能力并按需获取信息。资源包括高性能计算机、存储资源、数据资源、信息资源、知识资源、专家资源、大型数据库、网络、传感器等。 当前的互联网只限于信息共享,网络则被认为是互联网发展的第三阶段。

  二、快速入门

  BITSHELL经过了用户严格的检验,作者对其精雕细琢反复修正,现在的版本使用极容易。确保BITSHELL硬盘或网络安装已经成功,或BITSHELL源盘在软驱中,加密方法如下:

  BITSHELL<源文件><目标文件>

  例如:
  把TEST.EXE加密成TESTOK.EXE。输入以下命令:

  BITSHELL TEST.EXE TESTOK.EXE

  把TEXE.EXE加密不保留未加密的程序。输入以下命令。

  三、操作指南

  1、BITSHELL参数的详细说明

  BITSHELL可以用KEY环境变量来设定一些参数,这样可以简化使用过程。设置方法如下:

  SET KEY=[SCHEMExx,][STAY,][CHECKOVL]

  BITSHELL各项参数的意义如下:

  (1)参数SCHEMExx,若给出则依用户的要求使用指定的变形算法,否则将随机抽取一种加密算法。BITSHELL2.0共有20种算法可选。

   每一种算法都有自己的特点,有的加密难度大但解码时间长,这种算法适合加密重要的代码不是特别大的软件,如算法三和十二;还有的加密难度适中但解码速度快,如算法一,适合加密大型软件。

   每个用户可以根据自己的特点选择,如加密不同的版本用不同的算法,加密不同的程序用不同的算法。如选算法十五可给出SCHEME15,选算法十九可给出SCHMEM19等,依次类推。

   (2)参数STAY用来选择在加密程序执行完毕后,是否驻留监控程序。默认值为不驻留监控。

    如果加密FoxPro编译的程序,必须加参数SET KEY=STAY,以监控覆盖模块。

   (3)参数CHECKVOL如果被加密的程序中有覆盖模块,此参数是用来选择是否检查覆盖模块。对于用CLIPPER编译出来的软件,加密时设置该参数非常有必要。默认值不检查覆盖模块。

    BITSHELL参数都是可选的,如果不设置,都有相应的默认值。默认的设置为:

   (1)SCHEME为随机挑选算法
   (2)不驻留检测程序(加密FoxPro编译的软件,设定为驻留检测)
   (3)不检查覆盖模块

    2、使用BITSHELL

    BITSHELL的商品盘是加密的,用户可以将其安装在NOVELL网络服务器上使用,源盘不能复制。如果只是临时使用一次也可不用安装,将BITSHELL源盘放入软驱中直接使用。方法:

    BITSHELL<源程序>[<目标程序>]

    如果不设置目标程序,加密的结果直接覆盖在源程序上。加密所用算法可用环境变量KEY来设置。

    例如:①BITSHELL C:TEST.EXE
          ②BITSHELL TEST.EXE SAMPLE.EXE
          ③A:BITSHELL D:TEST.EXE C:TEST.EXE

    其中<源程序>是需要加密的程序路径名。源文件必须是可执行文件以COM或EXE为后缀。如果缺省<目标程序>则直接在<源程序>上加密。如果还想保留未加密的程序,就不要缺省<目标程序>,并且保证源程序名与目标程序名不同。

    [说明]
   (1)BITSHELL系统本身是加密的,不能复制。
   (2)经BITSHELL加密的软件,可以拷贝,散发,任意运行,除非被加密的程序有自己的反拷贝介质。
   (3)经BITSHELL加密的软件不能还原为未加密状态。
   (4)经BITSHELL加密的软件无法跟踪,无法反汇编

    四、BITSHELL高级技巧

    1、源程序嵌入式保护措施

    软件开发者在其软件开发完成以后,再在关键地方链入以下函数。当链接成功后,用BITSHELL.EXE将用户软件加密。这套被加密的软件运行时,就可以检测该程序是否被解密修改,以采取响应的反击措施,如拒绝执行等等。

    用户可参考以下流程加密:

   (1)将自己的软件(SAMPLE.C)编好,调试通过。

    SAMPLE.C
    #include<stdio.h>
    main()
    {
    printf("This is my sample program! \n");
    }

   (2)在SAMPLE.C重要的地方调用加密函数。

   SAMPLE.C
   #include<stdio.h>
    main()
    {
    /* Insert BITSHELL function call */
    id (BL_ComeIn()==0)
    {
    printf("Error! \n")
    return(255);
    }
    printf("Thin is my sample program! \n");}

   (3)编译SAMPLE.C成为SAMPLE.OBJ后,再将SAMPLE.OBJ和BLOBJ.OBJ链接成SAMPLE.EXE。
    QCL /AL SAMPLE.C BLOBJ.OBJ

    (4)用BITSHELL加密,键入命令执行:
    BITSHELL SAMPLE.EXE SALE.EXE
    软件加密过程完成了!
    如果被加密的程序SALE.EXE被解密或修改,就会提示错误,然后退出。

 



网络的神奇作用吸引着越来越多的用户加入其中,正因如此,网络的承受能力也面临着越来越严峻的考验―从硬件上、软件上、所用标准上......,各项技术都需要适时应势,对应发展,这正是网络迅速走向进步的催化剂。

温馨提示:喜欢本站的话,请收藏一下本站!

本类教程下载

系统下载排行

网站地图xml | 网站地图html