一种磁盘读取方法技术

技术编号:11756451 阅读:49 留言:0更新日期:2015-07-22 04:28
本发明专利技术提供了一种磁盘读取方法,该方法包括:获取原始隐藏数据并进行加密和无损压缩;通过查找分区表定位到分区空闲区;根据宿主文件的空闲扇区数量进行文件分类;获得文件系统中共同隐藏数据的三类宿主文件的数量和每一类所需的宿主文件数量,得到三类文件的起始簇号和文件空闲簇的簇号,将簇号按顺序组成队列;建立文件空闲簇目录表并进行加密和无损压缩,然后从已定位的分区空闲区的首地址开始写入;在数据末尾添加0xFF位,分别按照队列顺序,将数据块写入到选定的文件空闲簇的簇文件空闲区中。本发明专利技术提出了一种磁盘读取方法,利用相对于操作系统透明的磁盘空闲空间进行数据隐藏,具有较高的安全性和时间效率,不受主机和宿主文件类型的影响。

【技术实现步骤摘要】

本专利技术涉及磁盘数据管理,特别涉及。
技术介绍
随着互联网与黑客技术的发展,针对计算机用户敏感数据的攻击事件频繁发生,造成了难以估量的损失。除了可能被远程恶意用户攻击,计算机用户存储在磁盘中敏感数据也有被其他本地用户窥探、窃取甚至破坏的危险。为了保证敏感数据的安全,人们对数据进行加密来隐藏数据本身所蕴含的信息,然而随着取证技术的发展,加密数据很容易被取证工具所发现,很难保证加密数据不被破解和修改。相比加密技术,信息隐藏技术把数据存储在介质的空闲区域内,使得被隐藏数据很难被发现,从而保证了数据的安全。现有技术中的隐藏方法,需要修改已有文件系统的某些数据结构,会改变宿主文件在磁盘中的位置,并产生一定数量的文件碎片,这显然影响了原有的直接数据的存储和读取。因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。
技术实现思路
为解决上述现有技术所存在的问题,本专利技术提出了,包括:a)获取原始隐藏数据R,利用128位的MD5算法加密R生成R*,再利用LZ77压缩算法对R*进行无损压缩生成新的隐藏数据F,大小为Sf字节,F所占用的扇区数为N F,Nf =Sf/512;通过查找主引导记录及扩展引导记录的分区表,定位到文件系统对应的分区空闲区C,其大小为S。字节;b)存在簇空闲区的宿主文件的空闲扇区数量分为3类,表示为A、B、C类,分别能够隐藏512字节、1024字节、1536字节的数据,对于文件系统中大小为的文件R:若Sk mod 2048 = O或SKmod 2048>1536,则该文件不属于存在簇空闲区的宿主文件;若0〈SK mod 2048 ( 512,则该文件属于C类宿主文件;若512〈SK mod 2048 ( 1024,则该文件属于B类宿主文件;若1024〈SK mod 2048 ( 1536,则该文件属于A类宿主文件;通过以上判定条件,获得文件系统中的三类存在簇空闲区的宿主文件的数量分别为 NA、NB、Nc;c)由A、B、C这三类文件共同隐藏上述加密之后的数据F,根据如下条件可确定所需的三类宿主文件数量Na、Nb、Nc:O ^ Na^ N A, O ^ Nb^ N B, O ^ Nc^ N cmin (Na+2Nb+3N。)多 Nf24+4min (Nc+Nb+Na) ^ Scd)在文件系统中,分别选取凡个A类文件、Nb个B类文件、N。个C类文件,利用文件目录表得到三类文件的起始簇号,然后再利用文件分配表得到对应的文件空闲簇的簇号,分别将选取的三类文件空闲簇的簇号按顺序组成队列S和S,其中0^na^Na,0^nb^Nb,0^nc^Nc;e)建立数据F的文件空闲簇目录表TF,该表中各项数据均采用16进制,在最后一项存储该表前字节的冗余校验值;f)利用128位的MD5算法加密Tf生成T F*,再利用LZ77算法对Tf*进行无损压缩生成TF**,然后从已定位的分区空闲区C的首地址开始,写入Tf** ;g)紧挨着F的末尾添加m个OxFF位,其中m= 512Na+1024Nb+1536Ne-SF,生成新的数据F*,将F*从前往后依次划分为N。个大小为1536字节数据块、Nb个大小为1024字节数据块和凡个大小为512字节数据块;h)分别按照S、S和S的顺序,将相应大小的数据块写入到选定的三类文件空闲簇的簇文件空闲区中。本专利技术相比现有技术,具有以下优点:提出了,利用相对于操作系统透明的磁盘空闲空间进行数据隐藏,具有较高的安全性和时间效率,不受主机和宿主文件类型的影响。【附图说明】图1是根据本专利技术实施例的磁盘读取方法的流程图。【具体实施方式】下文与图示本专利技术原理的附图一起提供对本专利技术一个或者多个实施例的详细描述。结合这样的实施例描述本专利技术,但是本专利技术不限于任何实施例。本专利技术的范围仅由权利要求书限定,并且本专利技术涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本专利技术的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本专利技术。本专利技术的一方面提供了,在解析磁盘分区及簇文件系统的基础上,寻找相对于操作系统透明的磁盘空闲区,然后利用该空闲区来隐藏数据。图1是根据本专利技术实施例的磁盘读取方法流程图。磁盘中包含着大量的扇区,其中大部分被磁盘管理数据结构(如磁盘分区表)、文件系统所使用。除此之外,在磁盘中仍存在一定数量的空闲扇区由于某些原因未被使用,将这些扇区所组成的空间为磁盘空闲区,并根据产生原因将磁盘空闲区分为分区空闲区和簇文件空闲区。本专利技术采用主引导记录进行磁盘分区。磁盘由主引导记录、主分区和扩展分区组成。其中,主引导记录位于磁盘的第一个扇区,存储着启动代码和磁盘分区表,记录着磁盘本身的相关信息。启动代码作用是检查磁盘分区表是否正确,并且在B1S工作完成以后负责操作系统的引导工作。磁盘分区表的作用是记录主分区和扩展分区的起始扇区位置、分区大小等基本信息。扩展分区和主分区均由主引导记录结构管理。与主分区不同的是,扩展分区在理论上可以划分为无数个逻辑分区,每一个逻辑分区都有一个和主引导记录类似的扩展引导记录,扩展引导记录中的分区表记录了自身分区信息以及下一个逻辑分区的扩展引导记录的位置,而最后一个逻辑分区的分区表只记录了自身分区信息,这样就通过单向链表的形式组成了逻辑分区链。通过使用扩展分区来替换某一个主分区,再将扩展分区分成若干个逻辑分区,就能解决主引导记录分区中分区数量扩展的问题。通过分析磁盘分区表,可以获取包括分区大小、分区位置等分区信息,从而掌握磁盘的整体组织结构。对于磁盘来说,分区是其组成部分,占据着大部分扇区,操作系统可直接通过文件系统访问分区内部扇区。除分区所占扇区外,磁盘内部还存在着一定数量的可用扇区,这些扇区一部分被主引导记录或扩展引导记录所占用,记录着磁盘关键信息,不可轻易改动;另一部分则由于分区策略的特殊规定等原因而处于空闲状态,将这些扇区称为分区空闲扇区,将这些扇区组成的空间称为分区空闲区。在主引导记录分区中,主引导记录与扩展引导记录都只占用单独一个磁道的某一个扇区,而该磁道的其他扇区通常处于空闲状态,形成分区空闲区。通过查找主引导记录或者扩展引导记录所形成的逻辑分区链表,就可以定位到相应的分区空闲区。此外,在主引导记录分区中,存在逻辑块寻址与磁头扇区寻址两种方式,而在磁盘分区时遵循柱面对齐的规则,因此在两种方式转换过程中,在磁盘的末端产生分区空闲区,该空闲区的起始扇区通常位于最后一个分区之后的第一个扇区,终止地址就是磁盘的最后一个扇区,因此通过查找磁盘分区表就可以定位到该分区空闲区。操作系统通过文件系统来组织和管理磁盘中的大量数据。本专利技术的文件系统由分区引导记录区、文件分配表、文件目录表和数据区构成。每个逻辑分区都有一个分区引导记录区,该区域负责系统引导、记录分区信息及文件分配表信息。文件分配表是文件系统管理磁盘空间和文件的重要组成部分,它保存着数据区各簇的使用情况信息,管理着文件占用空间及空闲区。文件系统中的文件目录表无固定位置,把文件目录表当做文件处理,在分区引导记录区中指出文件目录表起始簇地址。文件目录表包含了每一个文件的目录项,记录了对应文件的名字、属性、建立或最后修改的时间以及文件在磁盘上存本文档来自技高网...

【技术保护点】
一种磁盘读取方法,用于利用磁盘中的空闲区进行目标文件的隐藏和恢复,其中所述磁盘的文件系统中每个簇由四个扇区组成,每个扇区大小为512字节,其特征在于,包括:a)获取原始隐藏数据R,利用128位的MD5算法加密R生成R*,再利用LZ77压缩算法对R*进行无损压缩生成新的隐藏数据F,大小为SF字节,F所占用的扇区数为NF,NF=SF/512;通过查找主引导记录及扩展引导记录的分区表,定位到文件系统对应的分区空闲区C,其大小为SC字节;b)存在簇空闲区的宿主文件的空闲扇区数量分为3类,表示为A、B、C类,分别能够隐藏512字节、1024字节、1536字节的数据,对于文件系统中大小为SR位的文件R:若SR mod 2048=0或SR mod 2048>1536,则该文件不属于存在簇空闲区的宿主文件;若0<SR mod 2048≤512,则该文件属于C类宿主文件;若512<SR mod 2048≤1024,则该文件属于B类宿主文件;若1024<SR mod 2048≤1536,则该文件属于A类宿主文件;通过以上判定条件,获得文件系统中的三类存在簇空闲区的宿主文件的数量分别为NA、NB、NC;c)由A、B、C这三类文件共同隐藏上述加密之后的数据F,根据如下条件可确定所需的三类宿主文件数量Na、Nb、Nc:0≤Na≤NA,0≤Nb≤NB,0≤Nc≤NCmin(Na+2Nb+3Nc)≥NF24+4min(Nc+Nb+Na)≤Scd)在文件系统中,分别选取Na个A类文件、Nb个B类文件、Nc个C类文件,利用文件目录表得到三类文件的起始簇号,然后再利用文件分配表得到对应的文件空闲簇的簇号,分别将选取的三类文件空闲簇的簇号按顺序组成队列S[na]、S[nb]和S[nc],其中0≤na≤Na,0≤nb≤Nb,0≤nc≤Nc;e)建立数据F的文件空闲簇目录表TF,该表中各项数据均采用16进制,在最后一项存储该表前[20+4(Nc+Nb+Na)]字节的冗余校验值;f)利用128位的MD5算法加密TF生成TF*,再利用LZ77算法对TF*进行无损压缩生成TF**,然后从已定位的分区空闲区C的首地址开始,写入TF**;g)紧挨着F的末尾添加m个0xFF位,其中m=512Na+1024Nb+1536Nc‑SF,生成新的数据F*,将F*从前往后依次划分为Nc个大小为1536字节数据块、Nb个大小为1024字节数据块和Na个大小为512字节数据块;h)分别按照S[na]、S[nb]和S[nc]的顺序,将相应大小的数据块写入到选定的三类文件空闲簇的簇文件空闲区中。...

【技术特征摘要】

【专利技术属性】
技术研发人员:罗阳陈虹宇王峻岭
申请(专利权)人:四川神琥科技有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1