[精选]软件安全技术25037.pptx

上传人:muj****520 文档编号:87211850 上传时间:2023-04-16 格式:PPTX 页数:76 大小:443.18KB
返回 下载 相关 举报
[精选]软件安全技术25037.pptx_第1页
第1页 / 共76页
[精选]软件安全技术25037.pptx_第2页
第2页 / 共76页
点击查看更多>>
资源描述

《[精选]软件安全技术25037.pptx》由会员分享,可在线阅读,更多相关《[精选]软件安全技术25037.pptx(76页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、计算机安全技术软件安全技术软件安全的基本要求 主要目的:一是禁止非法拷贝和使用;二是防止非法阅读和修改。其技术措施应实现三个基本任务:防拷贝、防静态分析和防动态跟踪。4.1.1防拷贝 指的是通过采取某种加密措施,使得一般用户利用正常的拷贝命令,甚至于各种拷贝软件都无法将软件进行完整的复制,或者是复制到的软件不能正常运行。防拷贝技术是软件加密的核心技术,利用专用技术制造一种特殊标记,正常的拷贝途径无法复制这种特殊标记,或者是拷贝到的特殊标记不完整。特殊标记:软标记,硬标记计算机安全技术软件安全技术4.l 软件安全的基本要求拷贝盘母盘制造的特殊标记特殊标记的不完全拷贝图41 加密母盘的不完全拷贝示

2、意图图42 防拷贝软件的一般结构开 始读磁盘特殊标记有标记吗?正常运行结 束拒绝运行NY计算机安全技术软件安全技术4.l 软件安全的基本要求一个简单的手工作业方法制作硬标记:准备一根针,在酒精灯上将针尖部分烧红,然后在磁盘上选择某一位置,将烧红的针尖靠近磁介质表面停留片刻(注意不要接触磁介质表面);当拿开针尖以后,磁盘介质的这一部分就有一个小小的痕迹因受热而发生变化,不能记录信息,被损坏的扇区如果用INT13H读写数据时,会发生10H(CRC)错。这样,我们即制作了一个磁盘标记。在被加密程序中编写一段程序来识别这一标记,因此必须知道被损坏的扇区所在的磁道和扇区号。计算机安全技术软件安全技术补充

3、:BIOS INT 13H 磁盘I/OAH功能调用00H复位磁盘01H取磁盘状态02H读扇区03H写扇区04H检测扇区功能调用02H入口参数:AH=02HAL:置要读的扇区数目DL:进行读操作的驱动器代码。数码0和1用于识别软盘,数码80H和81H识别硬盘。DH:所读磁盘磁头号。CH:识别10位磁道柱面号的低8位数。CL:低6位放入所读的起始扇区号。高2位存放磁道柱面号的高2位。ES:BX:缓冲区地址。出口参数:错误则CF=1,错误信息放在AH中,否则CF=0,AL=0。AH中错误状态:00H未出错;01H非法功能调用;03H对写保护的磁盘执行写操作;10H读磁盘时循环校验码(CRC)奇偶校验

4、错。计算机安全技术软件安全技术4.l 软件安全的基本要求知道被烧坏的扇区为1面 10磁道的第4扇区,因此就可以在程序中写上下面一段识别母盘的程序片段:RETRY:MOV AX,0201 ;读一个扇区 MOV BX,OFFSET HCQ1 MOV CX,0A04H ;读10磁道的第4扇区 MOV DX,0100 ;A驱动器的1面 INT 13H JB OK_PASS ;读扇区出错,转OK_PASS JMP RETRY ;是非法复制盘,重复读盘OKPASS:CMP AH,10H;CRC错(受热损坏的结果)吗?JNZ RETRY ;不是,重复读盘 计算机安全技术软件安全技术假定被加密程序是显示字符串

5、“How are you!”.STACK SEGMENT PARA STACK STACK DB 128 DUP(0)STACK ENDS DATA SEGMENT MSG1 DB 0DH,0AH,“How are you!”DATA ENDS CODE SEGMENT ASSUME CS:CODE,ES:DATA,DS:DATA START PROC FAR MOV AX,DATA MOV DS,AX MOV ES,AX MOV DX,OFFSET MSG1 MOV AH,9 INT 21H MOV AH 4CH INT 21H START ENDP CODE ENDS END START

6、计算机安全技术软件安全技术上述程序采取防拷贝的措施,是将识别母盘的程序片段写入到程序中,修改后的程序如下:START SEGMENT PARA STACKSTACK DB 128DUP(0)STACK ENDS DATA SEGMENT MSG1 DB 0DH,0AH,“How are you!”HCQ1 DB 512 DUP(0);设置磁盘缓冲区 DATA ENDS CODE SEGMENT ASSUME CS:CODE,ES:DATA,DS:DATA START:PROC FAR MOV AX,DATA MOV DS,AX MOV ES,AX 计算机安全技术软件安全技术;以下识别母盘 RE

7、TRY:MOV AX,0201H MOV BX,OFFSET HCQ1 MOV CX,0A04H MOV DX,0100H INT 13H JB OK _PASS ;读扇区出错,转OK_PASS JMP RETRY ;是非法复制盘,重复读盘 OK_PASS:CMP AH,10H JNZ RETRY ;不是原盘,转RETRY MOV DX,OFFSET MSG1 ;是原盘,正常运行 MOV AH,9 INT 21H MOV AH,4CH INT 21H START:ENDP CODE ENDS END START计算机安全技术软件安全技术4.l 软件安全的基本要求4.1.2防静态分析 破译者可以

8、阅读到防拷贝的这一段程序。然后进行修改,使得被加密的软件在运行时不进行特殊标记的识别而无条件地正常执行,使得防拷贝的功能失去作用。例如,对于上述的加密程序,解密者可用DEBUG的反汇编命令看到如下的程序指令代码(P74):为了解密,可在读盘操作以后,将 1E53:0015处的指令改为无条件转移指令:JMP 001E这样,该程序在运行时,不论读没读到磁盘标记,都会正常地运行。进一步地,还可以将1E53:0007处的指令改为:JMP 001E这样,该程序在运行时甚至连读盘都不进行,就可以正常运行。计算机安全技术软件安全技术 U 0 27 1E53:0000 B832lE MOV AX,1E32 1

9、E53:0003 8ED8 MOV DS,AX 1E53:0005 8EC0 MOV ES,AX 1E53:0007 B80102 MOV AX,0201 1E53:000A BB0F00 MOV BX,000F 1E53:000D B9040A MOV CX,0A04 1E53:0010 BA0001 MOV DX,0100 1E53:0013 CD13 INT 13 1E53:0015 7202 JB 0019 1E53:0017 EBEE JMP 0007 1E53:0019 80FC10 CMP AH,10 1E53:001C 75E9 JNZ 0007 1E53:001E BA000

10、0 MOV DX,0000 1E53:0021 B409 MOV AH,09 1E53:0023 CD21 INT 21 1E53:0025 B44C MOV AH,4C 1E53:0027 CD21 INT 21 计算机安全技术软件安全技术4.l 软件安全的基本要求防止静态阅读和分析主要方法:将识别磁盘特殊标记的程序放在比较隐蔽的地方,或者是对该段程序进行加密变换,以密文的形式放在软件中。但被加密以后的程序不能被执行,要求在被加密的程序片段之前利用另外一段解码程序,使其变换成明文,然后再运行该段程序进行磁盘特殊标记的识别。经过这样处理以后的软件,不运行解码程序,用 DEBUG的“U”命令反汇

11、编出来的密文对破译者来说是根本看不明白的,因此阻止了非法用户对软件的静态分析和修改。例如,将1E53:00070028之间的指令代码进行逐字节求反,那么在运行时,必须使用解码程序进行解密变换。为此在1E53:0007处增加一段解码程序,而把原CS:00070028H之间的指令代码经逐字节求反加密变换以后,存放在1E53:00lB开始的内存区域中。计算机安全技术软件安全技术4.l 软件安全的基本要求 1E53:0007 BE1B00 MOV SI,00lB ;SI指向密码首地址1E53:000A B93D00 MOV CX,003D;CX指向密码末地址1E53:000D 2BCE SUB CX,

12、SI ;解密的字节数CX1E53:000F FC CLD1E53:0010 2E CS:1E53:0011 8A04 MOV AL,SI ;取一字节密文1E5:0013 F6D0 NOT AL ;求反解密1E53:0015 2E CS:1E53:0016 8804 MOVSI,AL ;存明文一字节1E53:0018 46 INC SI ;改变地址1E53:0019 E2F5 LOOP 0010 ;循环解密1E53:001B 47 INC DI1E53:001C FEFD?CH计算机安全技术软件安全技术4.l 软件安全的基本要求如:1E53:001B,001C,001D处内容为:47,FE,FD

13、逐字节取反后为:B8,01,02其汇编指令为:MOV AX,02014.1.3防动态跟踪 采取了防静态分析的措施以后,虽然阻止了非法用户对软件的静态分析和阅读及修改,但是可以利用DEBUG对被加密的软件进行跟踪,运行解码程序,找到识别磁盘特殊标记的程序段,然后对其进行修改。所以,进行软件加密的第三个基本任务是:必须采取一定的措施阻止解密者的动态跟踪,使得在正常状态下无法用DEBUG程序或其它调试程序对软件本身进行跟踪执行。例如,对于上面的程序,我们可以在防拷贝和防静态分析的基础上再增加防动态跟踪的技术。所用的防动态跟踪技术是“封锁键盘输入”。计算机安全技术软件安全技术4.l 软件安全的基本要求

14、 2A61:0018 E421 IN AL,21 ;读中断控制寄存器 2A61:001A 0C02 OR AL,02 ;封锁键盘输入 2A61:001C E621 OUT 21,AL ;回送中断控制字 2A61:001E 46 INC SI 2A61:001F E2EF LOOP 0010计算机安全技术软件安全技术4.l 软件安全的基本要求程序在运行过程中会封锁键盘的输入,即当用户想使用DEBUG的“T”命令和“G”命令进行跟踪执行时,会出现机器不接受键盘输入的现象,这是由于程序中CS:0018001DH之间的程序对键盘进行了封锁。在没有跟踪的情况下,程序运行完CS:00100020之间的解码

15、程序以后,将CS:00210048之间的程序变换成明文,然后进行磁盘标记的识别和运行程序主体的工作,最后在返回之前将键盘开放。即:2A61:0043 19DE SBB SI,BX 2A61:0045 4B DEC BX 2A61:0046 B332 MOV BL,32 2A61:0048 DE0A FIMUL WORD PTRBP十SI计算机安全技术软件安全技术4.2 软件防拷贝技术 磁盘上做特殊标记,有硬标记、软标记。4.2.1激光孔加密技术 激光方向性好、亮度高等特点,用激光在数据区或扇区标识符上烧若干个痕迹,使磁盘的某几点失去磁性,在软盘表面产生永久不可恢复的标志。由于激光孔很小,不仔细

16、看不容易看见。软盘在激光处理过的区域读写时,产生CRC校验错误。而加密软盘都有自己的识别程序,当判断有CRC检验错误时,就认为此盘是原盘,然后执行被保护的用户程序;若没有CRC校验错误,则认为此盘是复制品,从而拒绝运行被保护的用户程序,使拷贝工具无法使用,不能正常工作。计算机安全技术软件安全技术4.2 软件防拷贝技术补充:MOV AH,19H;取磁盘驱动器编号放在AL中INT 21H ;0:A;1:B;2:CINT 13H AH=0;复位磁盘,磁盘校准的磁盘操作 AH=04;检查磁盘扇区;产生错误则CF=1,错误信息在AH中。激光孔定位程序和激光孔指纹识别程序如书本80页PROLOCK采取如下

17、措施阻止解密者的分析和跟踪:(1)密文处理(2)反跟踪:防止解密者的跟踪分析,PROLOCK采用了多种防跟踪措施。破坏断点中断和单步中断的向量 隐蔽转移 多循环,多出口 设置堆栈计算机安全技术软件安全技术4.2 软件防拷贝技术4.2.2 电磁加密技术 借助于专用的电磁机构,在所需加密的磁盘上随机生成一系列密钥信息,以供被加密程序识别使用的一种加密技术。它主要采用了一种奇异的编码格式将一些数据写入磁盘,供磁盘上专门的密钥识别程序鉴定。4.2.3掩膜技术 采用半导体工艺中的镀膜方法来制造标志,给磁盘某一磁道或某一扇区进行镀膜。这种方法用膜来“遮掉”数据地址,使拷贝工具无法识别。即使原样拷贝出复制品

18、,在识别程序中,首先对被掩膜的磁盘扇区进行格式化,然后再判别该扇区是否读写正常。如果读写扇区正常,则认为此盘是非法复制品而拒绝该软件运行,甚至使该软件自行销毁;否则,认为是原盘,继续运行该软件。计算机安全技术软件安全技术4.3 软标记加密法 4.3.1磁道软加密法 有磁道接缝加密法、额外磁道加密法、宽磁道加密法、未格式化磁道加密法、磁道间距不规则变化加密法和螺线型磁道加密法等。1磁道接缝加密法 利用专门的技术制作特殊的磁道。这种特殊的磁道给复制工作造成了困难,甚至有些特殊磁道完全不能复制。此外,它还利用了磁道接缝信息及长度的随机性。这种随机性导致不同磁盘的磁道接缝信息不同,从而可达到防拷贝的目

19、的。磁道后置区占据的长度是随机变化的,其范围在200300字节之间,且内容也随机地变化。计算机安全技术软件安全技术4.3 软标记加密法所谓的磁道接缝软指纹,就是指磁道的后置区,因而利用磁道接缝软指纹进行加密是完全可能的。将不定长度的后置区取出以作为鉴别的依据,是磁道接缝软指纹进行加密的关键。对于标准的磁道,读取困难,除非用端口读磁道命令来实现,而端口读磁道命令又是十分繁琐的。利用修改扇区 ID标志和软盘基数表的办法可以较容易地实现磁道后置区的读取。修改扇区ID标志实际上是修改磁道上最后一个扇区的ID标志,因为磁道上最后一个扇区与后置区相连。考虑到后置区长度不到300字节,因而将磁道最后一个扇区

20、ID标志中的 N改为 3即可。计算机安全技术软件安全技术4.3 软标记加密法补充:INT 13H AH=5 格式化磁盘的单条磁道。AH,AL,CH,DH,DL与磁盘读写功能类似,CL低6位不用。BX:被格式化的地址字段集合地址,四个字节组成。字节1:磁柱号;字节2:磁头号;字节3:扇区号;字节4:每个扇区的字节数目,它有四种可能的数值:0:128字节;1:256字节;2:512字节;3:1024字节。(P86)2额外磁道加密法 一般磁盘机可以正常读写44个磁道。有些磁盘机甚至还可以多读写一些。可以设想,如果将一些关键数据放在内圈的磁道上,比如放在41道,由于标准的拷贝软件只能拷贝 039道,因

21、此可以起到软盘防拷贝的目的。计算机安全技术软件安全技术 由于标准的格式化程序只能格式化出40个磁道,所以额外磁道的制作要由自己编制的汇编程序来实现。假设将A驱动器中磁盘的0面40道格式化成一个标准格式的磁道,具体操作如下:ADEBUG AXXXX:100 MOV AX,0501 MOV BX,1000 MOV CX,2801 MOV DX,0 INT 13 JC 100 INT 3-E 1000 28 00 01 02 28 00 02 02-E 1008 28 00 03 02 28 00 04 02-E 1010 28 00 05 02 28 00 06 02-E 1018 28 00 0

22、7 02 28 00 08 02-E 1020 28 00 09 02-G=100计算机安全技术软件安全技术4.3 软标记加密法3宽磁道加密法 给磁盘驱动器配以宽磁头,使之能够同时在两个或多个磁道上读写信息。例如,配以宽磁头的磁盘驱动器可以在两个相邻的磁道以及磁道之间的间隙同时写下完全相同的信息而制成一个宽磁道。如果读该磁盘的一段程序能够使磁盘驱动器的读写磁头在写有相同信息的两个磁道之间(物理上实际是一个宽“磁道”)来回步进,那么读出的数据流也不会是中断的,即可以将宽磁道上的数据完整读出。但在复制磁盘时,普通磁头则无法复制这样的宽磁道。由于读写磁头两侧的抹磁头的抹除作用,在复制盘中必然将这个宽

23、磁道物理上分开,成为两个普通磁道,在这两个磁道间存在物理间隙(即在间隙中没有任何信息),而磁头步进地读取这两道的信息,必然导致读出信息的不连续,从而就可以达到防拷贝的目的。计算机安全技术软件安全技术4.3 软标记加密法4未格式化磁道加密法 在格式化磁盘时,跳过某个或某些磁道,造成一个或多个未格式化的空白磁道,使被加密程序在系统下能正常工作,而传统的拷贝软件则无法正常拷贝。使用被加密程序时,先用在被加密程序中的一段特殊程序对磁盘进行检查,如果发现某一(或某些)特定的磁道为未格式化磁道,则此盘为原盘,否则为非法拷贝盘。5磁道间距不规则变化加密法 磁道间距不规则变化技术的原理就是利用软件来控制步进电

24、机,使得磁头在磁盘上产生不规则的磁道间距,使传统拷贝软件无法复制(传统的拷贝工具是利用程序控制步进电机,使磁盘驱动器的读写磁头在磁道间距相等的磁道上来回移动而完成其复制工作的)。计算机安全技术软件安全技术4.3 软标记加密法6螺线型磁道加密法 螺线型磁道技术的原理是在磁盘上制作一些螺线型磁道,致使磁头在进行读写操作时仍在步进,即磁头步进与读写数据同时进行。这样就完全打乱了传统 的拷贝工具的复制过程,使经过这种方法加密的磁盘无法被拷贝,达到加密的目的。4.3.2其它软加密法 1利用错误CRC码加密 2磁道噪声法 3双机加密法 4卷标加密法 5弱位加密法 6ID ROM加密法 7利用加密器进行加密

25、 计算机安全技术软件安全技术4.4扇段软标记加密法 扇段软标记加密方法很多,如扇区间隙加密法、扇区软指纹加密法、异常 ID加密法、额外扇段加密法、超级扇段加密法、扇区错乱排序法、未格式化扇区法和扇段对齐技术法等。4.4.1扇区软指纹加密法 扇区间隙软指纹加密方法为:磁盘格式化以后,在某一磁道上的第一个扇区后的某个扇区写上需要重写的信息,如被加密程序的数据或软件的一部分,然后再从该扇区的前一个扇区读该扇区的内容,并利用该扇区读出的信息去加密要保护的软件。由于从前一段扇区读出该扇区内容时,该扇区的GAP2一起被读人,所以从该扇区读出的内容将受GAP2长度的影响。再利用这些受GAP2影响的CRC码去

26、加密用户程序,其方法和途径可以灵活多样。计算机安全技术软件安全技术4.4扇段软标记加密法按扇区间隙软件指纹加密的一个实例(设被处理的扇区为第40道0面1扇区)。(1)对第 40道(可以选择任意一道)进行特殊格式化(只格式化 0面),使第二扇区中从第一扇区开始,读该重写扇区数据时,所读的内容与重写前是不同的。GAP2 SYNC AM2 Old Data(512字节)CRC GAP2 SYNC AM2 New data(512字节)CRC同一磁道的同一扇区新数据写入后Data Field of a Sector扇 区 软指 纹 信息图4-12 软指纹的形成计算机安全技术软件安全技术(2)读第 40

27、道 0面3扇区,读之前修改软盘基数表中的N值,使N=4,这样就可以把第40道0面2扇区的全部内容读出,而不是仅读出数据域的内容。(3)经这样处理后的软盘,第40道0面上的9个扇区就不能被许多拷贝软件所复制。4.4.2异常ID加密法 通常采用异常ID参数的方法如下:()使扇区长度不等于 512字节。例如,早期版本的 CCDOS字库盘上,其格式为每道4扇区,每扇区1024字节。计算机安全技术软件安全技术4.4扇段软标记加密法()改变磁盘上扇区的排列顺序。例如,可将磁道中扇区格式化成按相反的顺序或交错排列的顺序。()使扇区号取标准格式的取值范围(l9)以外的值。()使磁道的逻辑地址与其物理编号不相符

28、。()使磁头的逻辑编号与其物理编号不相符。由于格式化所需的ID参数是由指针ES:BX指定的地址,以磁道号T、磁头号H、扇区号S和扇区长度N四个字节为一组依次排列的,因此只要改变这些参数的顺序,就能格式化出特殊的磁道。计算机安全技术软件安全技术4.4扇段软标记加密法4.4.3 额外扇段加密法 在逻辑结构上,一个磁道包含若干个扇区以及前置区和后置区(GAP4)。前置区和后置区都是为了稳定电机或允许电机转速稍有偏差而设的。前置区的长度是固定的,为32字节;后置区的长度则是可变的,依电机转速的不同而不同,一般有数百字节左右。在FM制下,每个扇区中不仅包含数据区(512字节),还包含同步电机用的两个6字

29、节的SYNC字符序列、4个字节的ID地址标志、1个字节的 AM1、1个字节的数据标志或删除数据标志、两个2字节的 CRC(ID域的CRC和数据区的CRC)、一个11字节的间隙(GAP2)和一个42字节的间隙(GAP3)。因此,一个标准的扇区包括数据和一些必需的标志、间隙,共有512+12+4+2+4+11+42=587字节。计算机安全技术软件安全技术下面的汇编程序给出了额外扇区磁道的产生过程 CDEBUG-E 0000:0522;修改磁盘基数表0000:0522 DF 02,25,02,09,0A,2A0000:0528 FF 50,0A-A 100;格式化软盘第16道0面程序0FA0:010

30、0 MOV AX,05010FA0:0103 MOV BX,10000FA0:0106 MOV CX,10010FA0:0109 MOV DX,00000FA0:010C INT 130FA0:010E INT 30FA0:010F4.4扇段软标记加密法计算机安全技术软件安全技术-E 1000 ;设置格式化时所需参数0FA0:1000 00.10 00.00 00.01 00.02 00.10 00.00 00.02 00.020FA0:1008 00.10 00.00 00.03 00.02 00.10 00.00 00.04 00.020FA0:1010 00.10 00.00 00.05

31、 00.02 00.10 00.00 00.06 00.020FA0:1018 00.10 00.00 00.07 00.02 00.10 00.00 00.08 00.020FA0:1020 00.10 00.00 00.09 00.02 00.10 00.00 00.0A 00.02-G=100 ;执行格式化程序AX=0000 BX=1000 CX=1001 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000SS0FA0 ES=0FA0 SS=0FA0 CS=0FA0 IP=010E NV UP EI NG NZ AC PE NC0FA0:0F0E CC INT

32、 3-E 0000:0522 ;恢复磁盘基数表 0000:0522 DF02,25,02,0A,09,2A 0000:0528 FF0A,504.4扇段软标记加密法计算机安全技术软件安全技术下面给出读取磁道额外扇区的程序及其执行结果:CDEBUG ;进入DEBUG-E 0000:0525 ;修改磁盘基数表0000:0528 02,09,0A,2A0000:0528 FF,50,0A-A 100 ;读16道0面第10扇区程序0FA0:0100 MOV AX,02010FA0:0103 MOV BX,10000FA0:0106 MOV CX,100A0FA0:0109 MOV DX,00000FA

33、0:010C INT 130FA0:010E INT 30FA0:010F4.4扇段软标记加密法计算机安全技术软件安全技术4.4扇段软标记加密法4.4.4 超级扇段加密法 由于磁盘机本身电路的原因,磁盘机对读出的要求较低,往往对大扇区能正确读出,但要复制大扇区一般是做不到的。根据这个原理,Softguard系统公司研制了超级扇段技术来实现磁盘防拷贝。超级扇段技术也称连续写技术,它使用专用设备在软盘上写上一些超长的扇区,这些扇区的长度接近一个磁道的长度(如N=5时,每扇区字节数为4096字节)。普通的磁盘控制器不能写这些扇区,但在程序控制下可以成功地读出这些扇区(磁盘机甚至可以正确读出N=6的扇

34、区)。超级扇段技术可以作为一种防拷贝加密技术单独使用,也可以同其他技术结合起来使用,如扇区接缝指纹技术和磁道接缝指纹技术中可以使用超级扇段技术。计算机安全技术软件安全技术4.4扇段软标记加密法下面的程序给出了读取超级扇段的操作过程(这里,超级扇段容量为4096字节,即N=5,其所在磁道为0面39道):CDEBUG;进入DEBUGE 0000:0525 ;修改磁盘基数表0000:0525 02.05 09.01一A 100 ;读39道0面第1扇区程序0FA0:0100 MOV AX,02010FA0:0103 MOV BX,10000FA0:0106 MOV CX,27010FA0:0109 M

35、OV DX,00000FA0:010C INT 130FA0:010E INT 30FA0:010F计算机安全技术软件安全技术一G=100 ;执行读程序AX=0000 BX=1000 CX=0901 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=0FA0 ES=0FA0 SS=0FA0 CS=0FA0 IP=010E NV UP EI NG NZ AC PE NC0FA0:010E CC INT 3 一E 0000:0252 ;恢复磁盘基数表0000:0525 05.02 01.09Q 4.4扇段软标记加密法计算机安全技术软件安全技术4.4扇段软标记加密法

36、4.4.5 磁道扇区乱序排列加密法 目前所用的磁盘都是用软分段的方法规划(格式化)出来的。所谓软分段就是用扇区识别标志来存取磁盘上的信息,整个磁盘只有一索引孔。这种磁盘的每个磁道上分布着固定数目的扇区,每个扇区的开始部分是扇区识别标志。一条磁道上的扇区从小到大按序排列,读写磁盘扇区时,根据磁头号、磁道号和扇区号来决定读写磁盘上的哪一个扇区。每个扇区由标识域、数据域和两个间隙域四个部分构成。标识域指示该扇区所在的磁道号、磁头号和扇区号以及扇区中数据域的大小。计算机安全技术软件安全技术4.4扇段软标记加密法一般地,正常格式化出来的磁盘,标识域中所指示某扇区的磁道号、磁头号和扇区号与该扇区的实际位置

37、相一致。读写磁盘时,根据请求参数(磁道号、磁头号和扇区号)来转动盘片和移动磁头,并且将读出的标识域与请求参数相比较。如果一致,则目标找到并进行读写操作;如果不一致,则还要转动盘片直到一致为止。磁道扇区乱序排列法就是打乱磁道扇区的正常排列,改变由小到大的次序,由大到小排列,或用大数排列、跳跃排列次序排列,等等。为加密而改变磁盘扇区的排列,只要选择一道或几道就行了,完全没有必要改变所有磁道的扇区排列。计算机安全技术软件安全技术4.4扇段软标记加密法 4.4.6 未格式化扇区加密法 软盘格式化处理后才能存储信息,未格式化的磁盘是无法使用的。未格式化扇区的加密原理就是利用这个特点,在格式化软盘时,对某

38、一磁道的部分扇区不做格式化处理。这样,被加密程序运行时,首先利用被加密程序中的一程序段对某一特定磁道进行检查。如果发现此磁道为一正常磁道(即没有未格式化扇区),那么此盘必定为复制盘,否则为原盘。若是原盘则正常执行,否则作异常处理。计算机安全技术软件安全技术4.4扇段软标记加密法GSH_BUF DB 27H,00,01,02 ;格式化时所需的标识字段 DB 27H,00,02,02 ;集合 DB 27H,00,03,02 DB 27H,00,04,02 DB 27H,00,05,02 DB 27H,00,06,02 DB 27H,00,07,02 PUSH ESMOV AH,35H ;取磁盘基数

39、表指针MOV AL,1EHINT 21HMOV AL,07H ;修改磁盘基数表中每道的扇区数ADD BX,04HMOV ES:BX,ALPOP ES计算机安全技术软件安全技术4.4扇段软标记加密法MOV DL,0 ;将39磁道特殊格式化为有未格式化的扇区MOV DH,0MOV CH,27HMOV BX,OFFSET GSH_BUF ;该磁道仅有7个扇区MOV AH,05INT 13HPUSH ESMOV AH,35HMOV AL,1EHINT 21HMOV AL,09H ;恢复磁道基数表原值ADD BX,04HMOV ES:BX,ALPOP ES计算机安全技术软件安全技术4.4扇段软标记加密法

40、在被加密程序中可以安排一段专门程序,用来检查磁盘是否为原盘。具体做法是:检查磁盘的39道上扇区数是否大于7。若大于7,则此盘为拷贝盘;否则,为原盘。MOV AX,SEG MY_BUF ;ES:BX为用户缓冲区地址 MOV ES,AX MOV BX,OFFSET MY_BUF MOV AL,0lH ;读一个扇区 MOV DL,00H ;A驱动器 MOV DH,00H ;0磁头 MOV CH,27H ;39磁道 MOV CL,08H ;第8扇区 MOV AH,02H ;读盘 INT 13H ;转 BIOS CMP AX,0400 ;申请扇区找到否 JNZ ILLEGL_DISKERR ;找到转非法

41、盘处理子程序 计算机安全技术软件安全技术4.4扇段软标记加密法4.4.7 扇段对齐加密法 扇段对齐技术是一种十分有效的磁盘软加密方法。但是由于要精确依靠磁盘的转动速度来判断扇段对齐,而磁盘的转动速度实际上时时刻刻都不相同,因而这种加密技术实施难度大,也较难得到高可靠性。因此,在实际应用中,扇段对齐技术的使用并不多见。计算机安全技术软件安全技术4.5 口令加密与限制技术 4.5.1口令加密技术 比如一个利用系统的功能调用07H来接收键盘输入的口令加密示范程序。以回车键(0DH)作为结束符。口令字输入后与程序中事先安排好的规定值进行比较。若一致,则显示:“OK PASS”,然后运行程序;否则,提示

42、用户重新输入口令字。口令字最多三次,三次输入若均不正确,则屏幕上显示:“非法用户,对不起!”,然后返回DOS,同时以声音报警:笛!笛!笛!该程序比较简单,容易被破译。实际应用时采用个加密算法事先将口令字作为密钥对主要程序段进行加密变换,在程序的开头接收键盘输入的口令字作为密钥对文件中的密码进行解密。这样,如果非法用户输入的口令不正确,程序根本无法运行,而对于解密来说,也是相当困难的。计算机安全技术软件安全技术4.5 口令加密与限制技术4.5.2 限制技术限制技术1设置软件使用期限许多软件加密人员为了保护自己的软件产品,或者为了控制软件的使用周期,往往在对软件加密过程中规定了软件的使用期限。被加

43、密的软件在每次运行过程中,首先通过一段程序检测软件使用期限是否已经到期。如果没有到期,则使软件正常运行;否则,提示用户软件使用已经到期,请用户到软件研制单位进行版本更新换代,并中止软件的运行,甚至从磁盘上删除当前软件。计算机安全技术软件安全技术4.5 口令加密与限制技术设置软件使用期限的方法,一般是利用DOS的系统功能调用2AH子功能。该子功能是获取系统日期的系统功能调用,其调用方法如下:入口参数:AH=2AH出口参数:CX=年(1980至2099)DH=月(1=一月,2=二月,12=十二月)DL=日(1至 31)AL=星期几(0=星期日,1=星期一,6=星期六)注意:上述的出口参数都以二进制

44、形式存放在相应的寄存器中。计算机安全技术软件安全技术下面的一段程序所完成的功能是:检测当前日期是否超过1992年3月26日。如果未到该日期,则使软件正常工作;否则使软件转入死机。程序如下:MOV AH,2AHINT 21H CMP CX,1992JB OKPASS JA ERR CMP DH,3 JB OKPASS JA ERR CMP DH,26 JB OKPASS ERR:PUSH CS POP DSMOV DX,OFFSER MSG MOV AH,9INT 21HRETRY:CLIHLT JMP RETRYMSG DB ODH,OAH,09OKPASS:上述程序段在检测到软件使用期限已经

45、到期的情况下,首先显示提示信息警告用户,然后使程序转入死机状态。而有的软件在到期的情况下,则使用系统功能调用41H来将软件自身从磁盘上删除。41H子功能调用方法如下:计算机安全技术软件安全技术4.5 口令加密与限制技术入口参数:AH41H DS:DX带路径的文件名出口参数:CF0 删除成功CFl 删除不成功,AX返回出错码(2一未找到路径;5一拒绝存取)例如,下面的程序片段完成删除文件C:MYPROGEXE和返回 DOS的功能:PUSH CSPOP DSMOV AH,41HMOV DX,OFFSET WJM;删除文件C:MYPROGEXEINT 21HMOV AX,4CFFH;带错误码FFH返

46、回DOSINT 21HWJM DB C:MYPROGEXE计算机安全技术软件安全技术4.5 口令加密与限制技术2限制软件的运行次数限制软件的运行次数是软件加密中的一种常用的方法。其基本思想是:利用安装程序将一个被加密的软件拷贝到硬盘中,并将一个规定的运行次数写入被加密的软件中。对于被加密的软件来说,在每次运行过程中,都要将运行次数单元内容减1,当某一次运行结果中运行次数减为0时,该加密软件从此便不能运行,或拒绝运行,或将自身从磁盘上删除掉,然后要求用户利用安装盘重新安装。单独使用这种方法的加密软件有一种缺陷,那就是如果被加密的软件不具有防拷贝功能,则非法拷贝者可以将该软件拷贝到自己的磁盘上。只

47、要运行次数不为0,它就一直执行到运行次数为0为止。计算机安全技术软件安全技术4.5 口令加密与限制技术为了阻止拷贝,可将运行次数单元设置在主引导扇区中。如果是合法用户,安装程序便将规定的运行次数写入主引导扇区相应的单元中,被加密软件每一次运行时读取这一单元的内容并进行减1操作,然后判断运行次数是否为0,从而决定程序是否执行。对于这种将运行次数写入硬盘主引导扇区的方法,如果非法复制者只将软件本身拷贝到自己的磁盘上,而没有将他自己硬盘中主引导扇区的运行次数单元的内容进行相应的设置,被拷贝的程序就不能正常运行。更进一步,为了防止非法用户识别出主引导扇区的运行次数,可以将运行次数单元的内容经过加密变换

48、以后,以密码的形式存放。加密密钥可以使用被加密软件自身的首簇号,这样基本可以做到一次一密,使得解密者想通过走捷径(不分析加密程序,而想仿造运行次数)的方法来破译这一软件是非常困难的.计算机安全技术软件安全技术4.6硬盘防拷贝技术 常由出售给用户的商品软件和硬盘加密安装系统软件组成。这两个软件都通过软盘方式售给用户,其中被出售的商品软件是经过加密处理的。硬盘加密技术实际上是给硬盘加锁,加锁的硬盘只有用密钥开锁后才能使用。密钥有两种形式:一种是口令形式,密钥由授权用户掌握;另一种是密钥盘形式,密钥盘掌握在授权用户手中。加密硬盘只对授权用户开放,而对非授权用户关闭,既阻止了非法用户对硬盘的使用,又不

49、影响合法用户的使用,从而有效地保护了硬盘上信息的安全。硬盘加密技术主要采用以下几种方法:主引导扇区设置密码防拷贝;利用文件首簇号防拷贝;硬盘消隐与还原技术。计算机安全技术软件安全技术4.6硬盘防拷贝技术4.6.l 主引导扇区设置密码防拷贝硬盘的主引导扇区中存放主引导程序和硬盘分区表的信息。通常引导程序占用的偏移地址000000DFH,而硬盘分区表则从偏移地址01BEH开始存放,在引导程序和硬盘分区表之间大约有206个字节空间是空白区。硬盘安装程序的主要功能有两个:一是在硬盘上设置密码标志;二是将被加密的软件由软盘安装到硬盘上(一般是在硬盘上建立一个子目录,将被加密软件的标志存放在此子目录中)。

50、被安装的软件,一般在出售给用户之前已进行了防动态跟踪和防静态分析的加密处理,并具有识别硬盘主引导扇区中存放的密码功能。下面给出其密码设置程序和密码识别程序。计算机安全技术软件安全技术1密码设置程序密码设置程序属于安装程序的一部分,可以使用如下的一段程序:BUF:DB 512 DUP(0);读盘缓冲区PUSH CSPOP DSPUSH CSPOP ES ;CSDSESMOV BX,OFFSET BUTMOV CX,lMOV DX,0080HMOV AX,0201H ;读硬盘主引导扇区到BUFINT 13HMOV BX,OFFSET BUFMOV AX,7E7EHMOV BX十00E0H,AX ;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 考试试题 > 一级建造

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁