版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件安全的基本要求4.l软件安全的基本要求拷贝盘母盘制造的特殊标记特殊标记的不完全拷贝图4—1加密母盘的不完全拷贝示意图图4—2防拷贝软件的一般结构开始读磁盘特殊标记有标记吗?结束拒绝运行NY4.l软件安全的基本要求一个简单的手工作业方法制作硬标记:准备一根针,在酒精灯上将针尖部分烧红,然后在磁盘上选择某一位置,将烧红的针尖靠近磁介质表面停留片刻(注意不要接触磁介质表面);当拿开针尖以后,磁盘介质的这一部分就有一个小小的痕迹因受热而发生变化,不能记录信息,被损坏的扇区如果用INT13H读写数据时,会发生10H(CRC)错。这样,我们即制作了一个磁盘标记。在被加密程序中编写一段程序来识别这一标记,因此必须知道被损坏的扇区所在的磁道和扇区号。
4.l软件安全的基本要求知道被烧坏的扇区为1面10磁道的第4扇区,因此就可以在程序中写上下面一段识别母盘的程序片段:RETRY:MOVAX,0201;读一个扇区MOVBX,OFFSETHCQ1MOVCX,0A04H;读10磁道的第4扇区MOVDX,0100;A驱动器的1面INT13HJBOK_PASS;读扇区出错,转OK_PASSJMPRETRY;是非法复制盘,重复读盘OK-PASS:CMPAH,10H;CRC错(受热损坏的结果)吗?JNZRETRY;不是,重复读盘假定被加密程序是显示字符串“Howareyou!”.
STACKSEGMENTPARASTACK‘STACK’DB128DUP(0)STACKENDSDATASEGMENTMSG1DB0DH,0AH,“Howareyou!$”DATAENDSCODESEGMENTASSUMECS:CODE,ES:DATA,DS:DATASTARTPROCFARMOVAX,DATAMOVDS,AXMOVES,AXMOVDX,OFFSETMSG1MOVAH,9INT21HMOVAH4CHINT21HSTARTENDPCODEENDSENDSTART上述程序采取防拷贝的措施,是将识别母盘的程序片段写入到程序中,修改后的程序如下:
STARTSEGMENTPARASTACK‘STACK’DB128DUP(0)STACKENDSDATASEGMENTMSG1DB0DH,0AH,“Howareyou!$”HCQ1DB512DUP(0);设置磁盘缓冲区DATAENDSCODESEGMENTASSUMECS:CODE,ES:DATA,DS:DATASTART:PROCFARMOVAX,DATAMOVDS,AXMOVES,AX
;以下识别母盘RETRY:MOVAX,0201HMOVBX,OFFSETHCQ1MOVCX,0A04HMOVDX,0100HINT13HJBOK_PASS;读扇区出错,转OK_PASSJMPRETRY;是非法复制盘,重复读盘OK_PASS:CMPAH,10HJNZRETRY;不是原盘,转RETRYMOVDX,OFFSETMSG1;是原盘,正常运行MOVAH,9INT21HMOVAH,4CHINT21HSTART:ENDPCODE
ENDSENDSTART
—U0271E53:0000B832lEMOVAX,1E321E53:00038ED8MOVDS,AX1E53:00058EC0MOVES,AX1E53:0007B80102MOVAX,02011E53:000ABB0F00MOVBX,000F1E53:000DB9040AMOVCX,0A041E53:0010BA0001MOVDX,01001E53:0013CD13INT131E53:00157202JB00191E53:0017EBEEJMP00071E53:001980FC10CMPAH,101E53:001C75E9JNZ00071E53:001EBA0000MOVDX,00001E53:0021B409MOVAH,091E53:0023CD21INT211E53:0025B44CMOVAH,4C1E53:0027CD21INT214.l软件安全的基本要求防止静态阅读和分析主要方法:将识别磁盘特殊标记的程序放在比较隐蔽的地方,或者是对该段程序进行加密变换,以密文的形式放在软件中。但被加密以后的程序不能被执行,要求在被加密的程序片段之前利用另外一段解码程序,使其变换成明文,然后再运行该段程序进行磁盘特殊标记的识别。经过这样处理以后的软件,不运行解码程序,用DEBUG的“U”命令反汇编出来的密文对破译者来说是根本看不明白的,因此阻止了非法用户对软件的静态分析和修改。例如,将1E53:0007~0028之间的指令代码进行逐字节求反,那么在运行时,必须使用解码程序进行解密变换。为此在1E53:0007处增加一段解码程序,而把原CS:0007~0028H之间的指令代码经逐字节求反加密变换以后,存放在1E53:00lB开始的内存区域中。4.l软件安全的基本要求……1E53:0007BE1B00MOVSI,00lB;SI指向密码首地址1E53:000AB93D00MOVCX,003D;CX指向密码末地址1E53:000D2BCESUBCX,SI;解密的字节数→CX1E53:000FFCCLD1E53:00102ECS:1E53:00118A04MOVAL,[SI];取一字节密文1E5:0013F6D0NOTAL;求反解密1E53:00152ECS:1E53:00168804MOV[SI],AL;存明文一字节1E53:001846INCSI;改变地址1E53:0019E2F5LOOP0010;循环解密1E53:001B47INCDI1E53:001CFEFD???CH……4.l软件安全的基本要求如:1E53:001B,001C,001D处内容为:47,FE,FD逐字节取反后为:B8,01,02其汇编指令为:MOVAX,02014.1.3防动态跟踪采取了防静态分析的措施以后,虽然阻止了非法用户对软件的静态分析和阅读及修改,但是可以利用DEBUG对被加密的软件进行跟踪,运行解码程序,找到识别磁盘特殊标记的程序段,然后对其进行修改。所以,进行软件加密的第三个基本任务是:必须采取一定的措施阻止解密者的动态跟踪,使得在正常状态下无法用DEBUG程序或其它调试程序对软件本身进行跟踪执行。例如,对于上面的程序,我们可以在防拷贝和防静态分析的基础上再增加防动态跟踪的技术。所用的防动态跟踪技术是“封锁键盘输入”。4.l软件安全的基本要求
2A61:0018E421INAL,21;读中断控制寄存器2A61:001A0C02ORAL,02;封锁键盘输入2A61:001CE621OUT21,AL;回送中断控制字2A61:001E46INCSI2A61:001FE2EFLOOP00104.2软件防拷贝技术磁盘上做特殊标记,有硬标记、软标记。4.2.1激光孔加密技术激光方向性好、亮度高等特点,用激光在数据区或扇区标识符上烧若干个痕迹,使磁盘的某几点失去磁性,在软盘表面产生永久不可恢复的标志。由于激光孔很小,不仔细看不容易看见。软盘在激光处理过的区域读写时,产生CRC校验错误。而加密软盘都有自己的识别程序,当判断有CRC检验错误时,就认为此盘是原盘,然后执行被保护的用户程序;若没有CRC校验错误,则认为此盘是复制品,从而拒绝运行被保护的用户程序,使拷贝工具无法使用,不能正常工作。4.2软件防拷贝技术补充:MOVAH,19H;取磁盘驱动器编号放在AL中INT21H;0:A;1:B;2:CINT13HAH=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软标记加密法补充:INT13HAH=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道,由于标准的拷贝软件只能拷贝0~39道,因此可以起到软盘防拷贝的目的。由于标准的格式化程序只能格式化出40个磁道,所以额外磁道的制作要由自己编制的汇编程序来实现。假设将A驱动器中磁盘的0面40道格式化成一个标准格式的磁道,具体操作如下:
A>DEBUG—AXXXX:100MOVAX,0501MOVBX,1000MOVCX,2801MOVDX,0INT13JC100INT3-E10002800010228000202-E10082800030228000402-E10102800050228000602-E10182800070228000802-E102028000902-G=1004.3软标记加密法4.未格式化磁道加密法在格式化磁盘时,跳过某个或某些磁道,造成一个或多个未格式化的空白磁道,使被加密程序在系统下能正常工作,而传统的拷贝软件则无法正常拷贝。使用被加密程序时,先用在被加密程序中的一段特殊程序对磁盘进行检查,如果发现某一(或某些)特定的磁道为未格式化磁道,则此盘为原盘,否则为非法拷贝盘。5.磁道间距不规则变化加密法磁道间距不规则变化技术的原理就是利用软件来控制步进电机,使得磁头在磁盘上产生不规则的磁道间距,使传统拷贝软件无法复制(传统的拷贝工具是利用程序控制步进电机,使磁盘驱动器的读/写磁头在磁道间距相等的磁道上来回移动而完成其复制工作的)。4.4扇段软标记加密法扇段软标记加密方法很多,如扇区间隙加密法、扇区软指纹加密法、异常ID加密法、额外扇段加密法、超级扇段加密法、扇区错乱排序法、未格式化扇区法和扇段对齐技术法等。4.4.1扇区软指纹加密法扇区间隙软指纹加密方法为:磁盘格式化以后,在某一磁道上的第一个扇区后的某个扇区写上需要重写的信息,如被加密程序的数据或软件的一部分,然后再从该扇区的前一个扇区读该扇区的内容,并利用该扇区读出的信息去加密要保护的软件。由于从前一段扇区读出该扇区内容时,该扇区的GAP2一起被读人,所以从该扇区读出的内容将受GAP2长度的影响。再利用这些受GAP2影响的CRC码去加密用户程序,其方法和途径可以灵活多样。4.4扇段软标记加密法按扇区间隙软件指纹加密的一个实例(设被处理的扇区为第40道0面1扇区)。(1)对第40道(可以选择任意一道)进行特殊格式化(只格式化0面),使第二扇区中从第一扇区开始,读该重写扇区数据时,所读的内容与重写前是不同的。GAP2SYNCAM2…OldData(512字节)CRCGAP2SYNCAM2…Newdata(512字节)CRC同一磁道的同一扇区新数据写入后DataFieldofaSector扇区软指纹信息图4-12软指纹的形成(2)读第40道0面3扇区,读之前修改软盘基数表中的N值,使N=4,这样就可以把第40道0面2扇区的全部内容读出,而不是仅读出数据域的内容。(3)经这样处理后的软盘,第40道0面上的9个扇区就不能被许多拷贝软件所复制。4.4.2异常ID加密法通常采用异常ID参数的方法如下:(1)使扇区长度不等于512字节。例如,早期版本的CCDOS字库盘上,其格式为每道4扇区,每扇区1024字节。4.4扇段软标记加密法(2)改变磁盘上扇区的排列顺序。例如,可将磁道中扇区格式化成按相反的顺序或交错排列的顺序。(3)使扇区号取标准格式的取值范围(l~9)以外的值。(4)使磁道的逻辑地址与其物理编号不相符。(5)使磁头的逻辑编号与其物理编号不相符。由于格式化所需的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字节。-E1000;设置格式化时所需参数0FA0:100000.1000.0000.0100.0200.1000.0000.0200.020FA0:100800.1000.0000.0300.0200.1000.0000.0400.020FA0:101000.1000.0000.0500.0200.1000.0000.0600.020FA0:101800.1000.0000.0700.0200.1000.0000.0800.020FA0:102000.1000.0000.0900.0200.1000.0000.0A00.02-G=100;执行格式化程序AX=0000BX=1000CX=1001DX=0000SP=FFEEBP=0000SI=0000DI=0000SS=0FA0ES=0FA0SS=0FA0CS=0FA0IP=010ENVUPEINGNZACPENC0FA0:0F0ECCINT3-E0000:0522;恢复磁盘基数表0000:0522DF.02,25,02,0A,09,2A0000:0528FF.0A,504.4扇段软标记加密法下面给出读取磁道额外扇区的程序及其执行结果:C>DEBUG;进入DEBUG-E0000:0525;修改磁盘基数表0000:052802,09,0A,2A.0000:0528FF,50,0A-A100;读16道0面第10扇区程序0FA0:0100MOVAX,02010FA0:0103MOVBX,10000FA0:0106MOVCX,100A0FA0:0109MOVDX,00000FA0:010CINT130FA0:010EINT30FA0:010F4.4扇段软标记加密法4.4扇段软标记加密法4.4.4超级扇段加密法由于磁盘机本身电路的原因,磁盘机对读出的要求较低,往往对大扇区能正确读出,但要复制大扇区一般是做不到的。根据这个原理,Softguard系统公司研制了超级扇段技术来实现磁盘防拷贝。超级扇段技术也称连续写技术,它使用专用设备在软盘上写上一些超长的扇区,这些扇区的长度接近一个磁道的长度(如N=5时,每扇区字节数为4096字节)。普通的磁盘控制器不能写这些扇区,但在程序控制下可以成功地读出这些扇区(磁盘机甚至可以正确读出N=6的扇区)。超级扇段技术可以作为一种防拷贝加密技术单独使用,也可以同其他技术结合起来使用,如扇区接缝指纹技术和磁道接缝指纹技术中可以使用超级扇段技术。4.4扇段软标记加密法下面的程序给出了读取超级扇段的操作过程(这里,超级扇段容量为4096字节,即N=5,其所在磁道为0面39道):C>DEBUG;进入DEBUG—E0000:0525;修改磁盘基数表0000:052502.0509.01一A100;读39道0面第1扇区程序0FA0:0100MOVAX,02010FA0:0103MOVBX,10000FA0:0106MOVCX,27010FA0:0109MOVDX,00000FA0:010CINT130FA0:010EINT30FA0:010F4.4扇段软标记加密法4.4.5磁道扇区乱序排列加密法目前所用的磁盘都是用软分段的方法规划(格式化)出来的。所谓软分段就是用扇区识别标志来存取磁盘上的信息,整个磁盘只有一索引孔。这种磁盘的每个磁道上分布着固定数目的扇区,每个扇区的开始部分是扇区识别标志。一条磁道上的扇区从小到大按序排列,读写磁盘扇区时,根据磁头号、磁道号和扇区号来决定读写磁盘上的哪一个扇区。每个扇区由标识域、数据域和两个间隙域四个部分构成。标识域指示该扇区所在的磁道号、磁头号和扇区号以及扇区中数据域的大小。4.4扇段软标记加密法一般地,正常格式化出来的磁盘,标识域中所指示某扇区的磁道号、磁头号和扇区号与该扇区的实际位置相一致。读写磁盘时,根据请求参数(磁道号、磁头号和扇区号)来转动盘片和移动磁头,并且将读出的标识域与请求参数相比较。如果一致,则目标找到并进行读写操作;如果不一致,则还要转动盘片直到一致为止。磁道扇区乱序排列法就是打乱磁道扇区的正常排列,改变由小到大的次序,由大到小排列,或用大数排列、跳跃排列次序排列,等等。为加密而改变磁盘扇区的排列,只要选择一道或几道就行了,完全没有必要改变所有磁道的扇区排列。4.4扇段软标记加密法4.4.6未格式化扇区加密法软盘格式化处理后才能存储信息,未格式化的磁盘是无法使用的。未格式化扇区的加密原理就是利用这个特点,在格式化软盘时,对某一磁道的部分扇区不做格式化处理。这样,被加密程序运行时,首先利用被加密程序中的一程序段对某一特定磁道进行检查。如果发现此磁道为一正常磁道(即没有未格式化扇区),那么此盘必定为复制盘,否则为原盘。若是原盘则正常执行,否则作异常处理。4.4扇段软标记加密法GSH_BUFDB27H,00,01,02;格式化时所需的标识字段DB27H,00,02,02;集合DB27H,00,03,02DB27H,00,04,02DB27H,00,05,02DB27H,00,06,02DB27H,00,07,02·······PUSHESMOVAH,35H;取磁盘基数表指针MOVAL,1EHINT21HMOVAL,07H;修改磁盘基数表中每道的扇区数ADDBX,04HMOVES:[BX],ALPOPES4.4扇段软标记加密法在被加密程序中可以安排一段专门程序,用来检查磁盘是否为原盘。具体做法是:检查磁盘的39道上扇区数是否大于7。若大于7,则此盘为拷贝盘;否则,为原盘。
MOVAX,SEGMY_BUF;ES:BX为用户缓冲区地址
MOVES,AXMOVBX,OFFSETMY_BUFMOVAL,0lH;读一个扇区MOVDL,00H;A驱动器MOVDH,00H;0磁头MOVCH,27H;39磁道MOVCL,08H;第8扇区MOVAH,02H;读盘INT13H;转BIOSCMPAX,0400;申请扇区找到否JNZILLEGL_DISKERR;找到转非法盘处理子程序4.4扇段软标记加密法4.4.7扇段对齐加密法扇段对齐技术是一种十分有效的磁盘软加密方法。但是由于要精确依靠磁盘的转动速度来判断扇段对齐,而磁盘的转动速度实际上时时刻刻都不相同,因而这种加密技术实施难度大,也较难得到高可靠性。因此,在实际应用中,扇段对齐技术的使用并不多见。4.5口令加密与限制技术4.5.1口令加密技术比如一个利用系统的功能调用07H来接收键盘输入的口令加密示范程序。以回车键(0DH)作为结束符。口令字输入后与程序中事先安排好的规定值进行比较。若一致,则显示:“OKPASS…”,然后运行程序;否则,提示用户重新输入口令字。口令字最多三次,三次输入若均不正确,则屏幕上显示:“非法用户,对不起!”,然后返回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=星期六)注意:上述的出口参数都以二进制形式存放在相应的寄存器中。4.5口令加密与限制技术①入口参数:AH=41HDS:DX=带路径的文件名②出口参数:CF=0删除成功CF=l删除不成功,AX返回出错码(2—一未找到路径;5—一拒绝存取)例如,下面的程序片段完成删除文件C:\M\YPROG.EXE和返回DOS的功能:PUSHCSPOPDSMOVAH,41HMOVDX,OFFSETWJM;删除文件C:\M\YPROG.EXEINT21HMOVAX,4CFFH;带错误码FFH返回DOSINT21HWJMDBC:\M\YPROG.EXE4.5口令加密与限制技术2.限制软件的运行次数限制软件的运行次数是软件加密中的一种常用的方法。其基本思想是:利用安装程序将一个被加密的软件拷贝到硬盘中,并将一个规定的运行次数写入被加密的软件中。对于被加密的软件来说,在每次运行过程中,都要将运行次数单元内容减1,当某一次运行结果中运行次数减为0时,该加密软件从此便不能运行,或拒绝运行,或将自身从磁盘上删除掉,然后要求用户利用安装盘重新安装。单独使用这种方法的加密软件有一种缺陷,那就是如果被加密的软件不具有防拷贝功能,则非法拷贝者可以将该软件拷贝到自己的磁盘上。只要运行次数不为0,它就一直执行到运行次数为0为止。4.5口令加密与限制技术为了阻止拷贝,可将运行次数单元设置在主引导扇区中。如果是合法用户,安装程序便将规定的运行次数写入主引导扇区相应的单元中,被加密软件每一次运行时读取这一单元的内容并进行减1操作,然后判断运行次数是否为0,从而决定程序是否执行。对于这种将运行次数写入硬盘主引导扇区的方法,如果非法复制者只将软件本身拷贝到自己的磁盘上,而没有将他自己硬盘中主引导扇区的运行次数单元的内容进行相应的设置,被拷贝的程序就不能正常运行。更进一步,为了防止非法用户识别出主引导扇区的运行次数,可以将运行次数单元的内容经过加密变换以后,以密码的形式存放。加密密钥可以使用被加密软件自身的首簇号,这样基本可以做到一次一密,使得解密者想通过走捷径(不分析加密程序,而想仿造运行次数)的方法来破译这一软件是非常困难的.4.6硬盘防拷贝技术常由出售给用户的商品软件和硬盘加密安装系统软件组成。这两个软件都通过软盘方式售给用户,其中被出售的商品软件是经过加密处理的。硬盘加密技术实际上是给硬盘加锁,加锁的硬盘只有用密钥开锁后才能使用。密钥有两种形式:一种是口令形式,密钥由授权用户掌握;另一种是密钥盘形式,密钥盘掌握在授权用户手中。加密硬盘只对授权用户开放,而对非授权用户关闭,既阻止了非法用户对硬盘的使用,又不影响合法用户的使用,从而有效地保护了硬盘上信息的安全。硬盘加密技术主要采用以下几种方法:①主引导扇区设置密码防拷贝;②利用文件首簇号防拷贝;③硬盘消隐与还原技术。4.6硬盘防拷贝技术4.6.l主引导扇区设置密码防拷贝硬盘的主引导扇区中存放主引导程序和硬盘分区表的信息。通常引导程序占用的偏移地址0000~00DFH,而硬盘分区表则从偏移地址01BEH开始存放,在引导程序和硬盘分区表之间大约有206个字节空间是空白区。硬盘安装程序的主要功能有两个:一是在硬盘上设置密码标志;二是将被加密的软件由软盘安装到硬盘上(一般是在硬盘上建立一个子目录,将被加密软件的标志存放在此子目录中)。被安装的软件,一般在出售给用户之前已进行了防动态跟踪和防静态分析的加密处理,并具有识别硬盘主引导扇区中存放的密码功能。下面给出其密码设置程序和密码识别程序。1.密码设置程序密码设置程序属于安装程序的一部分,可以使用如下的一段程序:BUF:DB512DUP(0);读盘缓冲区PUSHCSPOPDSPUSHCSPOPES;CS=DS=ESMOVBX,OFFSETBUTMOVCX,lMOVDX,0080HMOVAX,0201H;读硬盘主引导扇区到BUFINT13HMOVBX,OFFSETBUFMOVAX,7E7EHMOV[BX十00E0H],AX;密码7E7EH到主引导扇区00E0H单元MOVBX,OFFSETBUFMOVCX,lMOVDX,0080HMOVAX,0301H;将设置密码的主引导扇区写回硬盘INT13H4.6硬盘防拷贝技术4.6.2利用文件首簇号防拷贝不同类型硬盘的柱面数、磁头数、每个柱面上的扇区数都是不尽相同的,对于同一个文件来说,拷到两个硬盘上,其首簇号一般是不相同的。即使同一类型的硬盘,磁盘空间的使用状况也不尽相同。1.文件首簇号的获取与安装文件首簇号的获取与安装操作由安装程序来完成。安装程序的主要工作是:将被加密的软件拷贝到硬盘根目录或某一子目录下,读取该软件的首簇号,以明文或密文的形式写入被加密软件规定的地方。对于DOS3.3(含3.3)以上的版本来说,文件首簇号保存在FCB第28、29字节中,而对于DOS3.3以下的版本来说,文件首簇号则在FCB的第26、27字节中。下面的一段程序就是安装软件中用于获取被加密软件首簇号的程序片段:MSGDB0DH,0AH,’FILEOPENERROR!$’FCBIDB0FFH,0,0,0,0,0,20,0,’PROTECTI.EXE’,25DUP(0)······MOVDX,OFFSETFCBIMOVAL,0FHINT21HCMPAL,0JNZERRMOVAH,30HINT21HCMPAL,3JBNEXTMOVSI,OFFSETFCBIMOVAX,[SI+28]JMPGOONERR:MOVDX,OFFSETMSGMOVAH,9INT2IHMOVAX,4CFFHINT21HNEXT:MOVAX,[SI+26]GOON:……4.6硬盘防拷贝技术4.6.3磁盘的消隐与还原1.硬盘消隐技术一种使硬盘从逻辑上消失,在逻辑上不存在的硬盘,在物理上始终是存在的。使硬盘消隐实际上是使系统不能识别物理上存在的硬盘,使得针对硬盘的文件存取操作不能进行,从而达到保护硬盘上信息的目的。通常把使硬盘消隐的操作称为硬盘加锁(密)操作。实现硬盘消隐有以下几种方法:(1)改变系统设置法(2)修改分区表系统指示字节法(3)搬移分区表法4.6硬盘防拷贝技术2.硬盘还原技术授权用户运行解锁软件还原硬盘有两种形式:一种是还原后的硬盘在再次加锁前处于开锁状态,任何用户都可以正常使用硬盘,因而授权用户上完机后需再次加锁才能阻止非授权用户对硬盘的访问;另一种形式是还原后的硬盘只在再次启动前处于开锁状态,一旦关机或重新启动机器,硬盘使自动处于关锁状态。这是通过用密钥系统盘启动机器实现的,该密钥系统盘由授权用户掌握。不用该密钥系统盘启动机器,硬盘不能被使用。硬盘还原的手段不是恢复系统设置表中的硬盘设置就是恢复主引导记录中的分区表。4.6硬盘防拷贝技术4.6.4硬盘加密、解密实例密钥系统盘的实例。密钥系统盘的关键在于引导记录,它是采用搬移硬盘分区表实现加锁,采用恢复硬盘分区表实现解锁的。当用例中所给出的密钥系统盘启动机器时,第一次不能写保护,以后则可以。用它启动机器,则硬盘可用,不用它启动则硬盘不可用。……4.7防动态跟踪技术4.7.l跟踪的工具及其实现1.跟踪软件调试软件是破译者的“天然”跟踪工具,能对程序实现指令级跟踪,DEBUG可以跟踪DOS认可的任意小的可执行文件。T:单步跟踪命令。使用该命令可严格按指令级进行跟踪,即该命令不把INTn、CALLn等语句作为一条指令,而是进入这些语句相应的子程序中进行逐条指令跟踪。P:按汇编语句跟踪。与T命令不同的是,该命令把诸如INTn、CALLn等语句作为一条指令对待,而不像T语句那样跟踪到这些语句相对应的子程序中,执行子程序中的每条命令。4.7防动态跟踪技术4.7.2防动态跟踪的方法防动态跟踪的目的是阻止破译者进行有效跟踪。实现这个目的的方法有两个途径:第一个途径是破坏跟踪,使破译者跟踪不了几步就死机或机器自启动;第二个途径是利用反穷举法,使跟踪者在“耗尽精力”之前不能进行实质性跟踪。这两个途径的防跟踪都要与密文相配合,否则就不能阻止破译者识破“机关”,实现解密。4.7防动态跟踪技术1.修改中断向量法就是用新值来代替中断向量的旧值。这个新值可以是被加密程序中某一程序的入口,也可以是一个随机数。前者可以使跟踪者误入加密者设置的“陷阱”中,后者可使机器进入死循环或出现其它异常现象而死机。所有跟踪软件都利用了单步中断和断点中断。这两个中断的中断服务程序的入口(中断向量)分别被放在内存0:0004~0007H和0:000C~000FH中。修改这两个中断的中断向量,就可以破坏跟踪或使跟踪误入“歧途”。4.7防动态跟踪技术(1)破坏中断向量:由于DEBUG程序在跟踪程序时,需要使用INT1和INT3中断向量,所以只需破坏这两个中断向量,即可阻止DEBUG程序的正常运行,从而丧失其跟踪其它程序的能力。(2)破坏更多的中断向量:有时,为了加强防跟踪措施,可以破坏更多的中断向量。(3)将数据放入中断向量地址(4)使中断向量指向一个子程序4.7防动态跟踪技术2.改变堆栈指针法(1)将堆栈设在ROM区:破译者用DEBUG进行跟踪时,DEBUG程序需要在当前堆栈段中存放其运行时的一些重要数据。如果在软件运行时,自身不需要进行堆栈操
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度平菇香菇线上线下销售渠道拓展合同
- 2025年度二手房买卖合同交易手续办理指南
- 2025年度文化创意产业项目合作开发合同4篇
- 2025年度宁夏粮食和物资储备局粮食储备库安全管理合同4篇
- 二零二五年度高品质木箱纸箱租赁经营合同3篇
- 二零二五年停薪留职员工绩效管理合同
- 二零二五年度床上用品电商平台合作推广合同2篇
- 江苏省村卫生室人员合理用药培训
- 二零二五年度民政局认证离婚协议书范本
- 二零二五年度林地使用权租赁合同范例3篇
- 2024年高纯氮化铝粉体项目可行性分析报告
- 安检人员培训
- IT硬件系统集成项目质量管理方案
- 《容幼颖悟》2020年江苏泰州中考文言文阅读真题(含答案与翻译)
- 水上水下作业应急预案
- API520-安全阀计算PART1(中文版)
- 2023年广东省广州地铁城际铁路岗位招聘笔试参考题库附带答案详解
- 商务提成办法
- 直流电机电枢绕组简介
- GB/T 19889.5-2006声学建筑和建筑构件隔声测量第5部分:外墙构件和外墙空气声隔声的现场测量
- 《土地宝忏》2019版定稿
评论
0/150
提交评论