{安全生产管理}计算机软件安全的基本要求与技术讲义

上传人:冯** 文档编号:140549165 上传时间:2020-07-30 格式:PPTX 页数:75 大小:275.71KB
返回 下载 相关 举报
{安全生产管理}计算机软件安全的基本要求与技术讲义_第1页
第1页 / 共75页
{安全生产管理}计算机软件安全的基本要求与技术讲义_第2页
第2页 / 共75页
{安全生产管理}计算机软件安全的基本要求与技术讲义_第3页
第3页 / 共75页
{安全生产管理}计算机软件安全的基本要求与技术讲义_第4页
第4页 / 共75页
{安全生产管理}计算机软件安全的基本要求与技术讲义_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《{安全生产管理}计算机软件安全的基本要求与技术讲义》由会员分享,可在线阅读,更多相关《{安全生产管理}计算机软件安全的基本要求与技术讲义(75页珍藏版)》请在金锄头文库上搜索。

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

2、在酒精灯上将针尖部分烧红,然后在磁盘上选择某一位置,将烧红的针尖靠近磁介质表面停留片刻(注意不要接触磁介质表面);当拿开针尖以后,磁盘介质的这一部分就有一个小小的痕迹因受热而发生变化,不能记录信息,被损坏的扇区如果用INT13H读写数据时,会发生10H(CRC)错。这样,我们即制作了一个磁盘标记。 在被加密程序中编写一段程序来识别这一标记,因此必须知道被损坏的扇区所在的磁道和扇区号。,补充:BIOS INT 13H 磁盘I/O,AH功能调用 00H复位磁盘 01H取磁盘状态 02H读扇区 03H写扇区 04H检测扇区 功能调用02H 入口参数: AH= 02H AL:置要读的扇区数目 DL :

3、进行读操作的驱动器代码。数码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.l 软件安全的基本要求,知道被烧坏的扇区为1面 10磁道的第4扇区,因此就可以在程序中写上下面一段识别母盘的程序片段: RETRY:MOV AX,0201

4、;读一个扇区 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 ;不是,重复读盘,假定被加密程序是显示字符串“How are you!”. STACK SEGMENT PARA STACK STACK DB 128 DUP(0) STACK ENDS DATA SEGMENT MSG1 DB 0DH,0AH,“H

5、ow 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,上述程序采取防拷贝的措施,是将识别母盘的程序片段写入到程序中,修改后的程序如下: START SEGMENT PARA STACKSTACK DB 128DUP(0) STACK ENDS DATA

6、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,; 以下识别母盘 RETRY: MOV AX,0201H MOV BX,OFFSET HCQ1 MOV CX,0A04H MOV DX,0100H INT 13H JB OK _PASS ;读扇区出错,转OK_PASS JMP RETRY ;是非法复制盘,重复读

7、盘 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防静态分析 破译者可以阅读到防拷贝的这一段程序。然后进行修改,使得被加密的软件在运行时不进行特殊标记的识别而无条件地正常执行,使得防拷贝的功能失去作用。 例如,对于上述的加密程序,解密者可用DEBUG的反汇编命令看到如下的程序指令代码(P74): 为了解密,可在读盘操作以后,将

8、 1E53:0015处的指令改为无条件转移指令: JMP 001E 这样,该程序在运行时,不论读没读到磁盘标记,都会正常地运行。进一步地,还可以将1E53:0007处的指令改为: JMP 001E 这样,该程序在运行时甚至连读盘都不进行,就可以正常运行。,U 0 27 1E53:0000 B832lE MOV AX,1E32 1E53: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

9、 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 BA0000 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 软件安全的基本要求,防止静态阅读和分析主要方法

10、:将识别磁盘特殊标记的程序放在比较隐蔽的地方,或者是对该段程序进行加密变换,以密文的形式放在软件中。 但被加密以后的程序不能被执行,要求在被加密的程序片段之前利用另外一段解码程序,使其变换成明文,然后再运行该段程序进行磁盘特殊标记的识别。经过这样处理以后的软件,不运行解码程序,用 DEBUG的“U”命令反汇编出来的密文对破译者来说是根本看不明白的,因此阻止了非法用户对软件的静态分析和修改。 例如,将1E53:00070028之间的指令代码进行逐字节求反,那么在运行时,必须使用解码程序进行解密变换。为此在1E53:0007处增加一段解码程序,而把原CS:00070028H之间的指令代码经逐字节求

11、反加密变换以后,存放在1E53:00lB开始的内存区域中。,4.l 软件安全的基本要求, 1E53:0007 BE1B00 MOV SI,00lB ;SI指向密码首地址 1E53:000A B93D00 MOV CX,003D ;CX指向密码末地址 1E53:000D 2BCE SUB CX,SI ;解密的字节数CX 1E53:000F FC CLD 1E53:0010 2E CS: 1E53:0011 8A04 MOV AL,SI ;取一字节密文 1E5:0013 F6D0 NOT AL ;求反解密 1E53:0015 2E CS: 1E53:0016 8804 MOVSI,AL ;存明文一

12、字节 1E53:0018 46 INC SI ;改变地址 1E53:0019 E2F5 LOOP 0010 ;循环解密 1E53:001B 47 INC DI 1E53:001C FEFD ?CH ,4.l 软件安全的基本要求,如:1E53:001B,001C,001D处内容为:47,FE,FD逐字节取反后为:B8,01,02 其汇编指令为:MOV AX,0201 4.1.3防动态跟踪 采取了防静态分析的措施以后,虽然阻止了非法用户对软件的静态分析和阅读及修改,但是可以利用DEBUG对被加密的软件进行跟踪,运行解码程序,找到识别磁盘特殊标记的程序段,然后对其进行修改。所以,进行软件加密的第三个

13、基本任务是:必须采取一定的措施阻止解密者的动态跟踪,使得在正常状态下无法用DEBUG程序或其它调试程序对软件本身进行跟踪执行。 例如,对于上面的程序,我们可以在防拷贝和防静态分析的基础上再增加防动态跟踪的技术。所用的防动态跟踪技术是“封锁键盘输入” 。,4.l 软件安全的基本要求,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 软件安全的基本要求,

14、程序在运行过程中会封锁键盘的输入,即当用户想使用DEBUG的“T”命令和“G”命令进行跟踪执行时,会出现机器不接受键盘输入的现象,这是由于程序中CS:0018001DH之间的程序对键盘进行了封锁。在没有跟踪的情况下,程序运行完CS:00100020之间的解码程序以后,将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

15、,4.2 软件防拷贝技术,磁盘上做特殊标记,有硬标记、软标记。 4.2.1激光孔加密技术 激光方向性好、亮度高等特点,用激光在数据区或扇区标识符上烧若干个痕迹,使磁盘的某几点失去磁性,在软盘表面产生永久不可恢复的标志。 由于激光孔很小,不仔细看不容易看见。软盘在激光处理过的区域读写时,产生CRC校验错误。而加密软盘都有自己的识别程序,当判断有CRC检验错误时,就认为此盘是原盘,然后执行被保护的用户程序;若没有CRC校验错误,则认为此盘是复制品,从而拒绝运行被保护的用户程序,使拷贝工具无法使用,不能正常工作。,4.2 软件防拷贝技术,补充: MOV AH,19H;取磁盘驱动器编号放在AL中 INT 21H ;0:A;1:B;2:C INT 13H AH=0;复位磁盘,磁盘校准的磁盘操作 AH=04;检查磁盘扇区;产生错误则CF=1,错误信息在AH中。 激光孔定位程序和激光孔指纹识别程序

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号