当前位置:首页 > 技术资讯

软件加密技术有哪几种?

来源:超时代软件     更新时间:2020年08月05日 16:22:42

  加密软件,需要开发,则需要很好的软件加密技术。加密软件主要运用那些加密技术?它又有哪几种?软件加密技术主要由密钥技术、反跟踪技术和代码插入技术构成,缺一不可。下面不妨跟小编详细了解一下加密软件的加密技术。

  一 密钥技术

  密钥技术是指与密钥有关的全部技术,如密钥盘的制作、识别密钥盘、安装和回收密钥等。密钥的特点就是不能或者不容易复制。密钥主要分软盘、加密卡和并行口加密盒(也称"软件狗")。这三种密钥的特点如下。

  软盘加密卡加密盒

  成本低高较低

  可靠性一般稳定稳定

  易安装性不需要安装复杂容易

  使用方便性不方便方便方便

  系统开销别时需要插盘占扩展槽和地址空间并行口

  产品盘备份不能可以可以

  由上表可见,三种密钥各有千秋.可以根据不同的需求选用。比如,对于一般的小型的软件来说,由于成本问题,选用软盘密钥的加密软件合适一些。我们来看一下软盘密钥的原理和制作的方法

  在软盘上制作密钥的技术有很多种。早的FROLOK是用激光在软盘上打孔,在软l制作无法复制的硬错误。还可以在软盘上制作弱位。软盘上的信息是二进制,即0与1.但弱位不是0也不是1——有时是0,有时是1,这种信息用计算机无法复制。目前,加密软件主要采用道缝加密。将数据写到某一格式化过的扇区时,因为不同的磁盘机会有转速的差别,因此数据写完后不可能与下一个扇区连接得无缝隙,而且这缝隙中会出现一些噪音信号。利用这种噪音信号来作为辨别是否是原盘的依据。这种方式可使目前所有拷贝程序(包括拷贝卡)都无法复翩。具体地说,由于磁道是圆形的.因此必然有头尾相接的地方,用这种接缝作为"指纹"来模仿PROLOK所用的激光孔"指纹",可使每片母盘都不同·母盘的辨认程序的细节也会不同,制作方法简要说明如下:

  1. 将格式化磁道的参数表中后一个扇区N置为6;

  2. 用INT 13H格式化一个磁道(实际上还是用正常大小恪式化,第一步的结果只是改动了后一个扇区的地址场);

  3. 把INT 1EH指向的参数表中的N改为6;

  4. 读后一个扇区,就可把接缝读出来(此时错误号为10H).

  5. 把INT 1EH指向的参数表中N恢复为2;

  不同的盘、不同的磁道,制作出来的密钥是不同的。

  二 反跟踪技术

  有了好的密钥技术,没有强有力的反跟踪手段来保护它,解密者使用功能强大的调试器和一些辅助工具来破译,几分钟就可以解开,达不到保护的目的。反跟踪技术是加密软件关键、工作量大的部分,同时也是加密技术不、断推陈出新、永无止境的原因。

  反跟踪的手段主要有以下几种:一种方法是把程序写乱或使用高级语言生成代码,使代码杂乱无章,跟踪者不容易看懂。另一种方法是主动出击,设置陷阱,让调试器不能正常工作,如破坏INT 3和INT1的中断向量,让DEBUG不能工作。识别调试器的存在情况,让程序走岔道。还有一种方法是做大量变形和和跳转、拖垮对手。

  比如说,在BITLOK使用了加密虚拟饥、多层间址多堆栈链接等反跟踪技术。具体方法是:设计一个加密虚拟机。虚拟机指令用INTEL 80*86的指令来仿真。加密程序使用虚拟机指令;而且加上多层间址多堆栈链接等大工作量的操作,跟踪者即使看懂虚拟机指令,也容易被拖垮。

  就未来的加密软件而言,重要的是如何保护算法,那么反跟踪技术显得更为重要。

  三、代码插入技术

  加密的核心代码写好以后,剩下的工作是如何把这些代码插入到被加密的程序中,插入加密代码的方式较多,但首先必须了解DOS的执行文件格式。插入方式主要有内含式、外壳式、结合式。

  内含方式把插入代码附加在文件尾部·把程序的入口点改到插入代码中,DOS依然使用EXEC(iNT 21H,功能4Bh)来执行被加密程序。(这种方法也是病毒传染的常用方法。)这种方法实现起来简单.但有很上的局限:无法插入到带覆盖模块的程序中,无法有效地解决EXE文件的代码变形问题。

  外壳方式采用的是另外一种方法。它首先将原来的执行文件.比如说sample.exe变形为sample.ovl,插入代码将sample.exe看成覆盖模块,插入代码给自己取名为sample.exe,由sample.exe调用sample.exe,并决定sample.exe的装载和重定位方式(包括在装载过程中将被变形的代码复原)。
 

  在windows上开发加密软件与DOS上的基本原理是一到致的,但具体实观上有较大的差别。同是加密软件的视频加密领域的大黄蜂视频加密软件,也是一款优秀的视频加密软件,能够全面保护视频安全,不被翻录和破解。如果你也需要大黄蜂视频加密,不妨找我们客服试用!