已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机安全技术软件安全技术 4.l 软件安全的基本要求 主要目的:一是禁止非法拷贝和使用;二是防止非法 阅读和修改。其技术措施应实现三个基本任务:防拷贝、 防静态分析和防动态跟踪 。 4.1.1防拷贝 指的是通过采取某种加密措施,使得一般用户利用正 常的拷贝命令,甚至于各种拷贝软件都无法将软件进行完 整的复制,或者是复制到的软件不能正常运行。 防拷贝技术是软件加密的核心技术 ,利用专用技术制 造一种特殊标记,正常的拷贝途径无法复制这种特殊标记 ,或者是拷贝到的特殊标记不完整。 特殊标记:软标记,硬标记 计算机安全技术软件安全技术 4.l 软件安全的基本要求 拷贝盘母盘 制造的特殊标记 特殊标记的不完全拷贝 图41 加密母盘的不完全拷贝示意图 图42 防拷贝软件的一般结构 开 始 读磁盘特殊标记 有标记吗? 正常运行 结 束 拒绝运行 N Y 计算机安全技术软件安全技术 4.l 软件安全的基本要求 一个简单的手工作业方法制作硬标记:准备一 根针,在酒精灯上将针尖部分烧红,然后在磁盘上 选择某一位置,将烧红的针尖靠近磁介质表面停留 片刻(注意不要接触磁介质表面);当拿开针尖以 后,磁盘介质的这一部分就有一个小小的痕迹因受 热而发生变化,不能记录信息,被损坏的扇区如果 用INT13H读写数据时,会发生10H(CRC)错。 这样,我们即制作了一个磁盘标记。 在被加密程序中编写一段程序来识别这一标记 ,因此必须知道被损坏的扇区所在的磁道和扇区号 。 计算机安全技术软件安全技术 补充:BIOS INT 13H 磁盘I/O AH功能调用 00H复位磁盘 01H取磁盘状态 02H读扇区 03H写扇区 04H检测扇区 功能调用02H 入口参数: AH= 02H AL:置要读的扇区 数目 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.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 ;不是,重复读盘 计算机安全技术软件安全技术 假定被加密程序是显示字符串“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 计算机安全技术软件安全技术 上述程序采取防拷贝的措施,是将识别母盘的 程序片段写入到程序中,修改后的程序如下: 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 计算机安全技术软件安全技术 ; 以下识别母盘 RETRY: 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防静态分析 破译者可以阅读到防拷贝的这一段程序。然后进行修 改,使得被加密的软件在运行时不进行特殊标记的识别而 无条件地正常执行,使得防拷贝的功能失去作用。 例如,对于上述的加密程序,解密者可用DEBUG的 反汇编命令看到如下的程序指令代码(P74): 为了解密,可在读盘操作以后,将 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 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 软件安全的基本要求 防止静态阅读和分析主要方法:将识别磁盘特殊标记 的程序放在比较隐蔽的地方,或者是对该段程序进行加密 变换,以密文的形式放在软件中。 但被加密以后的程序不能被执行,要求在被加密的程 序片段之前利用另外一段解码程序,使其变换成明文,然 后再运行该段程序进行磁盘特殊标记的识别。经过这样处 理以后的软件,不运行解码程序,用 DEBUG的“U”命令 反汇编出来的密文对破译者来说是根本看不明白的,因此 阻止了非法用户对软件的静态分析和修改。 例如,将1E53:00070028之间的指令代码进行逐字 节求反,那么在运行时,必须使用解码程序进行解密变换 。为此在1E53:0007处增加一段解码程序,而把原CS:0007 0028H之间的指令代码经逐字节求反加密变换以后,存 放在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 ;存明文一字节 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 对被加密的软件进行跟踪,运行解码程序,找到识别磁盘 特殊标记的程序段,然后对其进行修改。所以,进行软件 加密的第三个基本任务是:必须采取一定的措施阻止解密 者的动态跟踪,使得在正常状态下无法用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 软件安全的基本要求 程序在运行过程中会封锁键盘的输入,即当用户想使 用DEBUG的“T”命令和“G”命令进行跟踪执行时,会出现 机器不接受键盘输入的现象,这是由于程序中CS:0018 001DH之间的程序对键盘进行了封锁。在没有跟踪的情况 下,程序运行完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 计算机安全技术软件安全技术 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中。 激光孔定位程序和激光孔指纹识别程序如书本80页 PROLOCK采取如下措施阻止解密者的分析和跟踪: (1)密文处理 (2)反跟踪:防止解密者的跟踪分析,PROLOCK采 用了多种防跟踪措施。 破坏断点中断和单步中断的向量 隐蔽转移 多循环,多出口 设置堆栈 计算机安全技术软件安全技术 4.2 软件防拷贝技术 4.2.2 电磁加密技术 借助于专用的电磁机构,在所需加密的磁盘上随机生 成一系列密钥信息,以供被加密程序识别使用的一种加密 技术。它主要采用了一种奇异的编码格式将一些数据写入 磁盘,供磁盘上专门的密钥识别程序鉴定。 4.2.3掩膜技术 采用半导体工艺中的镀膜方法来制造标志,给磁盘某 一磁道或某一扇区进行镀膜。这种方法用膜来“遮掉”数据 地址,使拷贝工具无法识别。即使原样拷贝出复制品,在 识别程序中,首先对被掩膜的磁盘扇区进行格式化,然后 再判别该扇区是否读写正常。如果读写扇区正常,则认为 此盘是非法复制品而拒绝该软件运行,甚至使该软件自行 销毁;否则,认为是原盘,继续运行该软件。 计算机安全技术软件安全技术 4.3 软标记加密法 4.3.1磁道软加密法 有磁道接缝加密法、额外磁道加密法、宽磁道加密法 、未格式化磁道加密法、磁道间距不规则变化加密法和螺 线型磁道加密法等。 1磁道接缝加密法 利用专门的技术制作特殊的磁道。这种特殊的磁道给 复制工作造成了困难,甚至有些特殊磁道完全不能复制。 此外,它还利用了磁道接缝信息及长度的随机性。这种随 机性导致不同磁盘的磁道接缝信息不同,从而可达到防拷 贝的目的。 磁道后置区占据的长度是随机变化的,其范围在200 300字节之间,且内容也随机地变化。 计算机安全技术软件安全技术 4.3 软标记加密法 所谓的磁道接缝软指纹,就是指磁道的后置区,因而 利用磁道接缝软指纹进行加密是完全可能的。 将不定长度的后置区取出以作为鉴别的依据,是磁道 接缝软指纹进行加密的关键。对于标准的磁道,读取困难 ,除非用端口读磁道命令来实现,而端口读磁道命令又是 十分繁琐的。利用修改扇区 ID标志和软盘基数表的办法 可以较容易地实现磁道后置区的读取。 修改扇区ID标志实际上是修改磁道上最后一个扇区的 ID标志,因为磁道上最后一个扇区与后置区相连。考虑到 后置区长度不到300字节,因而将磁道最后一个扇区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道,因此可以起到软盘防拷贝的目的。 计算机安全技术软件安全技术 由于标准的格式化程序只能格式化出40个磁道,所以 额外磁道的制作要由自己编制的汇编程序来实现。假设将 A驱动器中磁盘的0面40道格式化成一个标准格式的磁道 ,具体操作如下: ADEBUG A XXXX: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 07 02 28 00 08 02 -E 1020 28 00 09 02 -G=100 计算机安全技术软件安全技术 4.3 软标记加密法 3宽磁道加密法 给磁盘驱动器配以宽磁头,使之能够同时在两个或多 个磁道上读写信息。例如,配以宽磁头的磁盘驱动器可 以在两个相邻的磁道以及磁道之间的间隙同时写下完全相 同的信息而制成一个宽磁道。如果读该磁盘的一段程序能 够使磁盘驱动器的读写磁头在写有相同信息的两个磁道 之间(物理上实际是一个宽“磁道”)来回步进,那么读出 的数据流也不会是中断的,即可以将宽磁道上的数据完整 读出。但在复制磁盘时,普通磁头则无法复制这样的宽磁 道。由于读写磁头两侧的抹磁头的抹除作用,在复制盘中 必然将这个宽磁道物理上分开,成为两个普通磁道,在这 两个磁道间存在物理间隙(即在间隙中没有任何信息), 而磁头步进地读取这两道的信息,必然导致读出信息的不 连续,从而就可以达到防拷贝的目的。 计算机安全技术软件安全技术 4.3 软标记加密法 4未格式化磁道加密法 在格式化磁盘时,跳过某个或某些磁道,造成一个或 多个未格式化的空白磁道,使被加密程序在系统下能正常 工作,而传统的拷贝软件则无法正常拷贝。 使用被加密程序时,先用在被加密程序中的一段特殊 程序对磁盘进行检查,如果发现某一(或某些)特定的磁 道为未格式化磁道,则此盘为原盘,否则为非法拷贝盘。 5磁道间距不规则变化加密法 磁道间距不规则变化技术的原理就是利用软件来控制 步进电机,使得磁头在磁盘上产生不规则的磁道间距,使 传统拷贝软件无法复制(传统的拷贝工具是利用程序控制 步进电机,使磁盘驱动器的读写磁头在磁道间距相等的 磁道上来回移动而完成其复制工作的)。 计算机安全技术软件安全技术 4.3 软标记加密法 6螺线型磁道加密法 螺线型磁道技术的原理是在磁盘上制作一些螺线型磁 道,致使磁头在进行读写操作时仍在步进,即磁头步进与 读写数据同时进行。这样就完全打乱了传统 的拷贝工具 的复制过程,使经过这种方法加密的磁盘无法被拷贝,达 到加密的目的。 4.3.2其它软加密法 1利用错误CRC码加密 2磁道噪声法 3双机加密法 4卷标加密法 5弱位加密法 6ID ROM加密法 7利用加密器进行加密 计算机安全技术软件安全技术 4.4扇段软标记加密法 扇段软标记加密方法很多,如扇区间隙加密法、扇区 软指纹加密法、异常 ID加密法、额外扇段加密法、超级 扇段加密法、扇区错乱排序法、未格式化扇区法和扇段对 齐技术法等。 4.4.1扇区软指纹加密法 扇区间隙软指纹加密方法为:磁盘格式化以后,在某 一磁道上的第一个扇区后的某个扇区写上需要重写的信息 ,如被加密程序的数据或软件的一部分,然后再从该扇区 的前一个扇区读该扇区的内容,并利用该扇区读出的信息 去加密要保护的软件。由于从前一段扇区读出该扇区内容 时,该扇区的GAP2一起被读人,所以从该扇区读出的内 容将受GAP2长度的影响。再利用这些受GAP2影响的CRC 码去加密用户程序,其方法和途径可以灵活多样。 计算机安全技术软件安全技术 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道 0面3扇区,读之前修改软盘基 数表中的N值,使N=4,这样就可以把第40道0面2 扇区的全部内容读出,而不是仅读出数据域的内容 。 (3)经这样处理后的软盘,第40道0面上的9 个扇区就不能被许多拷贝软件所复制。 4.4.2异常ID加密法 通常采用异常ID参数的方法如下: ()使扇区长度不等于 512字节。例如,早 期版本的 CCDOS字库盘上,其格式为每道4扇区 ,每扇区1024字节。 计算机安全技术软件安全技术 4.4扇段软标记加密法 ()改变磁盘上扇区的排列顺序。例如,可将磁道 中扇区格式化成按相反的顺序或交错排列的顺序。 ()使扇区号取标准格式的取值范围(l9)以外 的值。 ()使磁道的逻辑地址与其物理编号不相符。 ()使磁头的逻辑编号与其物理编号不相符。 由于格式化所需的ID参数是由指针ES:BX指定的地 址,以磁道号T、磁头号H、扇区号S和扇区长度N四个字 节为一组依次排列的,因此只要改变这些参数的顺序,就 能格式化出特殊的磁道。 计算机安全技术软件安全技术 4.4扇段软标记加密法 4.4.3 额外扇段加密法 在逻辑结构上,一个磁道包含若干个扇区以及前置区 和后置区(GAP4)。前置区和后置区都是为了稳定电机 或允许电机转速稍有偏差而设的。前置区的长度是固定的 ,为32字节;后置区的长度则是可变的,依电机转速的不 同而不同,一般有数百字节左右。 在FM制下,每个扇区中不仅包含数据区(512字节) ,还包含同步电机用的两个6字节的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,2A 0000:0528 FF 50,0A -A 100;格式化软盘第16道0面程序 0FA0:0100 MOV AX,0501 0FA0:0103 MOV BX,1000 0FA0:0106 MOV CX,1001 0FA0:0109 MOV DX,0000 0FA0:010C INT 13 0FA0:010E INT 3 0FA0:010F 4.4扇段软标记加密法 计算机安全技术软件安全技术 -E 1000 ;设置格式化时所需参数 0FA0:1000 00.10 00.00 00.01 00.02 00.10 00.00 00.02 00.02 0FA0:1008 00.10 00.00 00.03 00.02 00.10 00.00 00.04 00.02 0FA0:1010 00.10 00.00 00.05 00.02 00.10 00.00 00.06 00.02 0FA0:1018 00.10 00.00 00.07 00.02 00.10 00.00 00.08 00.02 0FA0: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=0000 SS0FA0 ES=0FA0 SS=0FA0 CS=0FA0 IP=010E NV UP EI NG NZ AC PE NC 0FA0:0F0E CC INT 3 -E 0000:0522 ;恢复磁盘基数表 0000:0522 DF02,25,02,0A,09,2A 0000:0528 FF0A,50 4.4扇段软标记加密法 计算机安全技术软件安全技术 下面给出读取磁道额外扇区的程序及其执行结果: CDEBUG ;进入DEBUG -E 0000:0525 ;修改磁盘基数表 0000:0528 02,09,0A,2A 0000:0528 FF,50,0A -A 100 ;读16道0面第10扇区程序 0FA0:0100 MOV AX,0201 0FA0:0103 MOV BX,1000 0FA0:0106 MOV CX,100A 0FA0:0109 MOV DX,0000 0FA0:010C INT 13 0FA0:010E INT 3 0FA0:010F 4.4扇段软标记加密法 计算机安全技术软件安全技术 4.4扇段软标记加密法 4.4.4 超级扇段加密法 由于磁盘机本身电路的原因,磁盘机对读出的要求较 低,往往对大扇区能正确读出,但要复制大扇区一般是做 不到的。根据这个原理,Softguard系统公司研制了超级扇 段技术来实现磁盘防拷贝。超级扇段技术也称连续写技术 ,它使用专用设备在软盘上写上一些超长的扇区,这些扇 区的长度接近一个磁道的长度(如N=5时,每扇区字节数 为4096字节)。普通的磁盘控制器不能写这些扇区,但在 程序控制下可以成功地读出这些扇区(磁盘机甚至可以正 确读出N=6的扇区)。 超级扇段技术可以作为一种防拷贝加密技术单独使用 ,也可以同其他技术结合起来使用,如扇区接缝指纹技术 和磁道接缝指纹技术中可以使用超级扇段技术。 计算机安全技术软件安全技术 4.4扇段软标记加密法 下面的程序给出了读取超级扇段的操作过程(这里, 超级扇段容量为4096字节,即N=5,其所在磁道为0面39 道): CDEBUG;进入DEBUG E 0000:0525 ;修改磁盘基数表 0000:0525 02.05 09.01 一A 100 ;读39道0面第1扇区程序 0FA0:0100 MOV AX,0201 0FA0:0103 MOV BX,1000 0FA0:0106 MOV CX,2701 0FA0:0109 MOV DX,0000 0FA0:010C INT 13 0FA0:010E INT 3 0FA0:010F 计算机安全技术软件安全技术 一G=100 ;执行读程序 AX=0000 BX=1000 CX=0901 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0FA0 ES=0FA0 SS=0FA0 CS=0FA0 IP=010E NV UP EI NG NZ AC PE NC 0FA0:010E CC INT 3 一E 0000:0252 ;恢复磁盘基数表 0000:0525 05.02 01.09 Q 4.4扇段软标记加密法 计算机安全技术软件安全技术 4.4扇段软标记加密法 4.4.5 磁道扇区乱序排列加密法 目前所用的磁盘都是用软分段的方法规划(格 式化)出来的。所谓软分段就是用扇区识别标志来 存取磁盘上的信息,整个磁盘只有一索引孔。这种 磁盘的每个磁道上分布着固定数目的扇区,每个扇 区的开始部分是扇区识别标志。一条磁道上的扇区 从小到大按序排列,读写磁盘扇区时,根据磁头号 、磁道号和扇区号来决定读写磁盘上的哪一个扇区 。每个扇区由标识域、数据域和两个间隙域四个部 分构成。标识域指示该扇区所在的磁道号、磁头号 和扇区号以及扇区中数据域的大小。 计算机安全技术软件安全技术 4.4扇段软标记加密法 一般地,正常格式化出来的磁盘,标识域中所指示某 扇区的磁道号、磁头号和扇区号与该扇区的实际位置相一 致。读写磁盘时,根据请求参数(磁道号、磁头号和扇区 号)来转动盘片和移动磁头,并且将读出的标识域与请求 参数相比较。如果一致,则目标找到并进行读写操作;如 果不一致,则还要转动盘片直到一致为止。 磁道扇区乱序排列法就是打乱磁道扇区的正常排列, 改变由小到大的次序,由大到小排列,或用大数排列、跳 跃排列次序排列,等等。 为加密而改变磁盘扇区的排列,只要选择一道或几道 就行了,完全没有必要改变所有磁道的扇区排列。 计算机安全技术软件安全技术 4.4扇段软标记加密法 4.4.6 未格式化扇区加密法 软盘格式化处理后才能存储信息,未格式化的 磁盘是无法使用的。未格式化扇区的加密原理就是 利用这个特点,在格式化软盘时,对某一磁道的部 分扇区不做格式化处理。这样,被加密程序运行时 ,首先利用被加密程序中的一程序段对某一特定磁 道进行检查。如果发现此磁道为一正常磁道(即没 有未格式化扇区),那么此盘必定为复制盘,否则 为原盘。若是原盘则正常执行,否则作异常处理。 计算机安全技术软件安全技术 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 ES MOV AH,35H ;取磁盘基数表指针 MOV AL,1EH INT 21H MOV AL,07H ;修改磁盘基数表中每道的扇区数 ADD BX,04H MOV ES:BX,AL POP ES 计算机安全技术软件安全技术 4.4扇段软标记加密法 MOV DL,0 ;将39磁道特殊格式化为有未格式化的扇区 MOV DH,0 MOV CH,27H MOV BX,OFFSET GSH_BUF ;该磁道仅有7个扇区 MOV AH,05 INT 13H PUSH ES MOV AH,35H MOV AL,1EH INT 21H MOV AL,09H ;恢复磁道基数表原值 ADD BX,04H MOV ES:BX,AL POP ES 计算机安全技术软件安全技术 4.4扇段软标记加密法 在被加密程序中可以安排一段专门程序,用来检查磁 盘是否为原盘。具体做法是:检查磁盘的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 ;找到转非法盘处理子程序 计算机安全技术软件安全技术 4.4扇段软标记加密法 4.4.7 扇段对齐加密法 扇段对齐技术是一种十分有效的磁盘软加密方 法。但是由于要精确依靠磁盘的转动速度来判断扇 段对齐,而磁盘的转动速度实际上时时刻刻都不相 同,因而这种加密技术实施难度大,也较难得到高 可靠性。因此,在实际应用中,扇段对齐技术的使 用并不多见。 计算机安全技术软件安全技术 4.5 口令加密与限制技术 4.5.1口令加密技术 比如一个利用系统的功能调用07H来接收键盘输入的 口令加密示范程序。以回车键(0DH)作为结束符。口令 字输入后与程序中事先安排好的规定值进行比较。若一致 ,则显示:“OK PASS”,然后运行程序;否则,提示用 户重新输入口令字。口令字最多三次,三次输入若均不正 确,则屏幕上显示:“非法用户,对不起!”,然后返回 DOS,同时以声音报警:笛!笛!笛! 该程序比较简单,容易被破译。实际应用时采用个加 密算法事先将口令字作为密钥对主要程序段进行加密变换 ,在程序的开头接收键盘输入的口令字作为密钥对文件中 的密码进行解密。这样,如果非法用户输入的口令不正确 ,程序根本无法运行,而对于解密来说,也是相当困难的 。 计算机安全技术软件安全技术 4.5 口令加密与限制技术 4.5.2 限制技术 1设置软件使用期限 许多软件加密人员为了保护自己的软件产品, 或者为了控制软件的使用周期,往往在对软件加密 过程中规定了软件的使用期限。被加密的软件在每 次运行过程中,首先通过一段程序检测软件使用期 限是否已经到期。如果没有到期,则使软件正常运 行;否则,提示用户软件使用已经到期,请用户到 软件研制单位进行版本更新换代,并中止软件的运 行,甚至从磁盘上删除当前软件。 计算机安全技术软件安全技术 4.5 口令加密与限制技术 设置软件使用期限的方法,一般是利用DOS的系统功 能调用2AH子功能。该子功能是获取系统日期的系统功能 调用,其调用方法如下: 入口参数: AH=2AH 出口参数: CX=年(1980至2099) DH=月(1= 一月,2=二月,12=十二月) DL=日(1至 31) AL=星期几(0=星期日,1=星期一,6=星期六) 注意:上述的出口参数都以二进制形式存放在相应的 寄存器中。 计算机安全技术软件安全技术 下面的一段程序所完成的功能是:检测当前日期是否 超过1992年3月26日。如果未到该日期,则使软件正常工 作;否则使软件转入死机。程序如下: MOV AH,2AH INT 21H CMP CX,1992 JB OKPASS JA ERR CMP DH,3 JB OKPASS JA ERR CMP DH,26 JB OKPASS ERR: PUSH CS POP DS MOV DX,OFFSER MSG MOV AH,9 INT 21H RETRY :CLI HLT JMP RETRY MSG DB ODH,OAH,09 OKPASS: 上述程序段在检测到软 件使用期限已经到期的情况 下,首先显示提示信息警告 用户,然后使程序转入死机 状态。而有的软件在到期的 情况下,则使用系统功能调 用41H来将软件自身从磁盘 上删除。41H子功能调用方 法如下: 计算机安全技术软件安全技术 4.5 口令加密与限制技术 入口参数: AH41H DS:DX带路径的文件名 出口参数: CF0 删除成功 CFl 删除不成功,AX返回出错码(2一未找到路径;5一 拒绝存取) 例如,下面的程序片段完成删除文件C:MYPROGEXE 和返回 DOS的功能: PUSH CS POP DS MOV AH, 41H MOV DX,OFFSET WJM;删除文件C:MYPROGEXE INT 21H MOV AX,4CFFH;带错误码FFH返回DOS INT 21H WJM DB C:MYPROGEXE 计算机安全技术软件安全技术 4.5 口令加密与限制技术 2限制软件的运行次数 限制软件的运行次数是软件加密中的一种常用的方法 。其基本思想是:利用安装程序将一个被加密的软件拷贝 到硬盘中,并将一个规定的运行次数写入被加密的软件中 。对于被加密的软件来说,在每次运行过程中,都要将运 行次数单元内容减1,当某一次运行结果中运行次数减为0 时,该加密软件从此便不能运行,或拒绝运行,或将自身 从磁盘上删除掉,然后要求用户利用安装盘重新安装。单 独使用这种方法的加密软件有一种缺陷,那就是如果被加 密的软件不具有防拷贝功能,则非法拷贝者可以将该软件 拷贝到自己的磁盘上。只要运行次数不为0,它就一直执 行到运行次数为0为止。 计算机安全技术软件安全技术 4.5 口令加密与限制技术 为了阻止拷贝,可将运行次数单元设置在主引导扇区 中。如果是合法用户,安装程序便将规定的运行次数写入 主引导扇区相应的单元中,被加密软件每一次运行时读取 这一单元的内容并进行减1操作,然后判断运行次数是否 为0,从而决定程序是否执行。对于这种将运行次数写入 硬盘主引导扇区的方法,如果非法复制者只将软件本身拷 贝到自己的磁盘上,而没有将他自己硬盘中主引导扇区的 运行次数单元的内容进行相应的设置,被拷贝的程序就不 能正常运行。更进一步,为了防止非法用户识别出主引导 扇区的运行次数,可以将运行次数单元的内容经过加密变 换以后,以密码的形式存放。加密密钥可以使用被加密软 件自身的首簇号,这样基本可以做到一次一密,使得解密 者想通过走捷径(不分析加密程序,而想仿造运行次数)的方 法来破译这一软件是非常困难的. 计算机安全技术软件安全技术 4.6硬盘防拷贝技术 常由出售给用户的商品软件和硬盘加密安装系统软件 组成。这两个软件都通过软盘方式售给用户,其中被出售 的商品软件是经过加密处理的。 硬盘加密技术实际上是给硬盘加锁,加锁的硬盘只有 用密钥开锁后才能使用。密钥有两种形式:一种是口令形 式,密钥由授权用户掌握;另一种是密钥盘形式,密钥盘 掌握在授权用户手中。 加密硬盘只对授权用户开放,而对非授权用户关闭, 既阻止了非法用户对硬盘的使用,又不影响合法用户的使 用,从而有效地保护了硬盘上信息的安全。硬盘加密技术 主要采用以下几种方法: 主引导扇区设置密码防拷贝; 利用文件首簇号防拷贝; 硬盘消隐与还原技术。 计算机安全技术软件安全技术 4.6硬盘防拷贝技术 4.6.l 主引导扇区设置密码防拷贝 硬盘的主引导扇区中存放主引导程序和硬盘分区表的 信息。通常引导程序占用的偏移地址000000DFH,而硬 盘分区表则从偏移地址01BEH开始存放,在引导程序和硬 盘分区表之间大约有206个字节空间是空白区。 硬盘安装程序的主要功能有两个:一是在硬盘上设置 密码标志;二是将被加密的软件由软盘安装到硬盘上(一 般是在硬盘上建立一个子目录,将被加密软件的标志存放 在此子目录中)。被安装的软件,一般在出售给用户之前 已进行了防动态跟踪和防静态分析的加密处理,并具有识 别硬盘主引导扇区中存放的密码功能。下面给出其密码设 置程序和密码识别程序。 计算机安全技术软件安全技术 1密码设置程序 密码设置程序属于安装程序的一部分,可以使用如下 的一段程序: BUF:DB 512 DUP(0);读盘缓冲区 PUSH CS POP DS PUSH CS POP ES ;CSDSES MOV BX,OFFSET BUT MOV CX,l MOV DX,0080H MOV AX,0201H ;读硬盘主引导扇区到BUF INT 13H MOV BX,OFFSET BUF MOV AX,7E7EH MOV BX十00E0H,AX ;密码7E7EH到主引导扇区00E0H单元 MOV BX,OFFSET BUF MOV CX,l MOV DX, 0080H MOV AX,0301H;将设置密码的主引导扇区写回硬盘 INT 13H 计算机安全技术软件安全技术 2密码识别程序 密码识别程序属于被加密软件程序的部分,可用如下一段程序 进行主引导区约定偏移地址处密码的识别操作: BUF DB 512 DUP(0);读盘缓冲区 PUSH CS POP DS PUSH CS POP ES ;CSDSES MOV BX, OFFSET BUF MOV CX,l MOV DX,0080H MOV AX,0201H ;读硬盘主引导扇区 INT 13H MOV BX,OFFSET BUF MOV AX,7E7EH CMP BX00E0H,AX JZ OK_PASS ;有密码,则转OK_PASS正常进行 RETRY:CLI HLT ;无密码,死机 JMP RETRY OK_PASS: 计算机安全技术软件安全技术 4.6硬盘防拷贝技术 4.6.2 利用文件首簇号防拷贝 不同类型硬盘的柱面数、磁头数、每个柱面上的扇区 数都是不尽相同的,对于同一个文件来说,拷到两个硬盘 上,其首簇号一般是不相同的。即使同一类型的硬盘,磁 盘空间的使用状况也不尽相同。 1文件首簇号的获取与安装 文件首簇号的获取与安装操作由安装程序来完成。安 装程序的主要工作是:将被加密的软件拷贝到硬盘根目录 或某一子目录下,读取该软件的首簇号,以明文或密文的 形式写入被加密软件规定的地方。对于DOS3.3(含3.3)以上 的版本来说,文件首簇号保存在FCB第28、29字节中,而 对于DOS3.3以下的版本来说,文件首簇号则在FCB的第26 、27字节中。 计算机安全技术软件安全技术 下面的一段程序就是安装软件中用于获取被加密软件 首簇号的程序片段: MSG DB 0DH,0AH,FILE OPEN ERROR! FCBI DB 0FFH,0,0,0,0,0,20,0,PROTECTI.EXE,25 DUP(0) MOV DX,OFFSET FCBI MOV AL,0FH INT 21H CMP AL,0 JNZ ERR MOV AH,30H INT 21H CMP AL,3 JB NEXT MOV SI,OFFSET FCBI MOV AX,SI28 JMP GOON ERR: MOV DX,OFFSET MSG MOV AH,9 INT 2 IH MOV AX,4CFFH INT 21H NEXT: MOV AX,SI26 GOON: 计算机安全技术软件安全技术 4.6硬盘防拷贝技术 2文件首簇号的识别 文件首簇号的识别操作常由被加密程序自己来 完成。另外也有用系统功能调用来获取文件首簇号 的方法,在传统的文件管理系统功能调用中,11H 和12H号功能调用分别是搜索第一个匹配文件和下 一个匹配文件的功能调用。直接使用它们其中之一 ,也可以方便地获取文件目录登记项的全部32个字 节内容,当然也包含了文件首簇号。程序片段如下 : MOV DX,OFFSET FCBI MOV AH,11H INT 21H 计算机安全技
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年宿州市埇桥区事业单位考试真题
- 2025年邯郸科技职业学院招聘真题(行政管理岗)
- 援建项目资金管理与成本控制技巧
- 2026中国绿发投资集团有限公司高校毕业生招聘测评考试历年真题汇编带答案解析
- 2025年安徽医科大学第一附属医院临床研究医院劳务派遣招聘10人备考题库附答案解析
- 2025福建宁德市部分市直医院招聘编外人员3人(二)考试历年真题汇编带答案解析
- 纺丝工安全生产能力评优考核试卷含答案
- 太阳能利用工岗前基础技能考核试卷含答案
- 宿舍助理辅导员与同学沟通技巧总结
- 兽用化学药品制剂工安全实践竞赛考核试卷含答案
- 云南省招投标从业人员考试真题及答案
- 第七单元综合测评卷(单元测试)2025-2026学年六年级语文上册(统编版)
- 四川省德阳市2025-2026学年高二上学期期中考试化学(含答案)
- 脑膜炎课件教学课件
- 2025年摄像导演岗位招聘面试参考试题及参考答案
- 2026届新高考政治热点突破复习 发展中国特色社会主义文化
- 电子元器件销售培训
- 2025年大学《马克思主义理论-马克思主义发展史》考试备考题库及答案解析
- 2025年大学《海警后勤管理-营房与设施管理》考试备考试题及答案解析
- 财务核算标准化建设方案
- 宴会厅音响系统施工方案
评论
0/150
提交评论