⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 软磁盘反拷贝加密技术.txt

📁 到一位朋友寻找软磁盘的加密资料
💻 TXT
📖 第 1 页 / 共 2 页
字号:
看到一位朋友寻找软磁盘的加密资料,这个我也很感兴趣,所以就把以前从书本和网上的资料整理了一下,希望对正在寻找和学习此方面技术的朋友有所帮助^_^ 


软磁盘反拷贝加密技术 

    软磁盘反拷贝实质上就是在磁盘中制作一些特殊的标记,这种标记不能被轻易复制,可以由被加密程序识别,由此来达到软件加密的目的。 
    软磁盘反拷贝技术在多年来的发展过程中不断成熟,涌现出多种方法,但由于拷贝工具也在发展,有些反拷贝技术已不能抵御功能强大的拷贝工具的进攻而逐渐被淘汰。但也有一些经典的加密技术,至尽仍被广泛运用。 
    
    1、超级扇区法 
    
    这种方法利用专用设备在软盘上写上一些超长(往往接近一个磁道)扇区,正常情况下这种长扇区磁盘控制器无法在磁盘上写出,但可以在程序的控制下在其中读出信息。将密钥存放在正常情况下扇区间隙的位置处,这样,一般的复制程序就无法将其复制,而在被加密程序中却可以将间隙处的密钥作为超级扇区的一部分读出,判断读出信息的正确性就可以确定该盘是否是原盘,从而获得加密效果。 
    设超级扇区字节长度为4096,所在磁道为0面0道。读出的信息放在DS段偏移1000H开始的区域中。 

    C:\DEBUG 
    -E 0:0525                  ;修改磁盘技术表 
    0000:0525  02.05  09.01 
    -A  100 
    1180:0100  MOV  AX,0201    ;读一个扇区 
    1180:0103  MOV  BX,1000    ;读出数据缓冲区指针 
    1180:0106  MOV  CX,0        ;0道0扇 
    1180:0109  MOV  DX,0        ;A道0扇 
    1180:010C  INT  13 
    1180:010E  INT  3 
    1180:010F 
    -G=100 

    2、异常ID法 

    扇区中的ID字段由柱面号(C)、磁头号(H)、扇区号(R)和扇区字节长度(N)四个参数组成。对于5.25in双面低密度软盘来讲,这四个参数的正常取值的范围是:C(0~39),H(0,1),R(1~8或9),N=2。异常ID的扇区是不能正确读写的,而ID在格式化写入时不作正确性检查,于是就可以用这一点来人为地制造异常ID扇区,阻止一般拷贝软件的复制。 
    有很多种方法来产生异常ID扇区,如:使扇区长度不等于512字节(即使N≠2);将扇区号取大雨9的值;打乱磁道上扇区的排列顺序;使磁头的逻辑号与物理号不相符,等等。 
    对于打乱磁道上扇区的排列顺序的方法可以采取以下步骤来实现,这段程序在A盘第20道0面进行格式话时,把9个扇区的顺序完全颠倒了。 

    C:\DEBUG 
    -E  1000 
    2884:1000 00.14 00.00 00.09 00.02 00.14 00.00 00.08 00.02 
    2884:1008 00.14 00.00 00.07 00.02 00.14 00.00 00.06 00.02 
    2884:1010 00.14 00.00 00.05 00.02 00.14 00.00 00.04 00.02 
    2884:1018 00.14 00.00 00.03 00.02 00.14 00.00 00.02 00.02 
    2884:1020 00.14 00.00 00.01 00.02 
    -A 100    格式化A盘0面20道 
    2884:0100 MOV AX, 0509 
    2884:0103 MOV BX, 1000 
    2884:0106 MOV CX, 1401 
    2884:0109 MOV DX, 0 
    2884:010C INT 13 
    2884:010E INT 3 
    2884:010F 
    -G=100 

    3、额外扇区法 
    
    一个扇区由标识区(长度为22字节,对5.25in双面低密软盘而言)和数据区(长度为512+16+2=530字节)以及两个间隙(GAP2和GAP3,长度分别为22和84字节)组成,其实际长度为22+22+530+84=658字节,9个扇区在加上前置区和后置区的长度,一个磁道的容量大约有6224字节,而其中的GAP3和后置区的长度都是可改变的,尤其是GAP的调整可以在格式化时通过修改磁盘基数表位移07处的值来设定,所以完全可以通过减小GAP3 长度来减少一个扇区所占的字节数,从而在一个磁道内多装入一个扇区。例如取GAP3的长度为10(不能小于5,否则有可能出现磁盘故障)时,每扇区长度为625-(84-10)=584,10×584+32=5872,所以一个磁道内足以装下10个扇区。 
    如此格式化出的第10个扇区,常规拷贝软件无法访问,如果把密钥放在这一额外扇区中,就可以防止磁盘被复制。 

    C:\DEBUG 
    -E 0:526                ;修改磁道基数表 
    0000:0526 09.0A 2A      ;每道扇区数改为10~~~~~~~~~~~~~~~~ 
    0000:0528 FF    54.0A  ;GAP3长度改为10 
    -E 10000                ;格式化所需的扇区ID参数 
    5068:1000 00.14 00.00 00.01 00.02 00.14 00.00 00.02 00.02 
    5068:1008 00.14 00.00 00.03 00.02 00.14 00.00 00.04 00.02 
    5068:1010 00.14 00.00 00.05 00.02 00.14 00.00 00.06 00.02 
    5068:1018 00.14 00.00 00.07 00.02 00.14 00.00 00.08 00.02 
    5068:1020 00.14 00.00 00.09 00.02 00.14 00.00 00.0A 00.02 
    -A 100:                ;格式化A盘0面20道 
    5068:0100 MOV AX,050A 
    5068:0103 MOV BX,1000 
    5068:0106 MOV CX,1401 
    5068:0109 MOV DX,0 
    5068:010C INT 13 
    5068:010E INT 3 
    5068:010F 
    -G 100 

    格式化额外扇区 

    C:\DEBUG 
    -E 0:526                ;修改磁道基数表 
    0000:0526 09.0A 2A    ;每道扇区数改为10 
    0000:0528 FF    54.0A  ;GAP3长度改为10 
    -A 100                  ;读A盘0面20道第10扇区 
    5068:0100  MOV AX,0201 
    5068:0103  MOV BX,1000 
    5068:0106  MOV CX,140A 
    5068:0109  MOV DX,0 
    5068:010C  INT 13 
    5068:010E  INT 3 
    5068:010F 
    -G=100 

  4、伪扇区法 
    
    该方法在一磁道上按扇区的标准格式顺序存放若干扇区头标志,后边不跟数据。当拷贝软件复制这一磁道时,要在其缓冲区内分配足够的内存来存放这些伪扇区的数据值,于是很快就会使缓冲区溢出,从而保护了伪扇区后面真正有用的关键数据。 

    5、扇区对齐法 

    绝大多数PC机及其兼容机使用的磁盘都是软分段的。所谓软分段,就是在整张磁盘上只有一个索引孔,通过磁盘的旋转以及磁头的步进来存取信息。磁盘每转一周,磁盘驱动器将自动产生一个索引脉冲信号,以次标记磁道的开始。在索引脉冲信号之后,依次为每个扇区写上扇区识别标志(ID),这些标志能标志磁道的开始。传统的磁盘复制实际上就是一个读写交错的过程,它将读到的磁盘的信息全部写到目标盘的对应磁道上,而全然不顾扇段与扇段是否对期。这里的扇段对齐是指每个磁道的磁偏角相等。因而,如果有了对齐的扇段,便可以通过一些检测手段达到加密的目的。 
    有了这种想法,如何制作一张扇段对齐的磁盘呢?这可以通过精确磁道位置(即按相同的磁偏角)将相应的扇段写到每个相应的磁道中,来完成扇段的对齐操作。由于传统的复制程序的“非智能性”(即全然不管扇段是否对齐),以及磁盘机的转速存在着误差,因而利用传统的自复制程序复制的磁盘必然导致扇段的磁偏角不再相等,即扇段不再对齐。可以在被加密程序中安排一段代码,用它来读一个磁道上的某个扇段,步入下一个磁道,等待确定的时间,读它找到的下一个扇段的号码来检查扇段是否对齐,从而可以判断是否为原盘,达到加密的目的。可以通过精确控制磁盘驱动器的磁头,将相应的扇区以相对于索引孔的精确偏移写到每个对应的磁道来实现扇区对齐。 
    扇段对齐技术是一种十分有效的磁盘软加密方法。但是由于要精密依靠磁盘的转动速度来判断扇段对齐,而磁盘的转动速度实际上时时刻刻都不相同,因而这种加密技术实施难度大,也较难得到高可靠性。因此在实际应用中,扇区对齐技术的使用并不多见。 

    6、未格式化扇区法 

    众所周知,微机上使用的软盘必须经过格式化处理后才能存储信息,未格式化的磁盘是无法使用的。未格式化扇区的加密原理就是利用这个特点,该方法在制作原盘时对某一磁道的部分扇区不作格式化处理,这部分扇区无法存储信息,一般的拷贝软件无法拷贝,这样,在被加密程序中对某一特定的磁道进行检查,看其是否为正常磁道,即不含未格式化的扇区,若是正常磁道,则必定为复制盘。下面提供一段制作含未格式化扇区原盘的程序: 

    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 
            DB 27H, 00, 04, 02 
            ... ... 
            PUSH ES 
            MOV  AH,35H 
            INT  21H 
            MOV  AL,07H 
            ADD  BX,04H 
            MOV  ES:[BX],AL 
            POP  ES 
            MOV  DL,0 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -