保护可重写储存媒体中数据的系统及方法

文档序号:6417009阅读:194来源:国知局

专利名称::保护可重写储存媒体中数据的系统及方法
技术领域
:本发明涉及一种对存储在可重写储存媒体(rewritablestoragemedia)例如硬盘上的数据进行保护的系统及方法,以避免该数据被计算机病毒程序或其他破坏性程序非法修改。目前,大部分个人计算机是以硬盘作为大量储存媒体。举例来说,硬盘可以用来存放操作系统(OS)文件及用户数据文件的代码。图1(已知技术)是表示在计算机系统的硬盘中存取数据动作的框图。如图1所示,用户1执行应用程序2或操作系统命令解释程序(OperatingSystemshell)以完成所需的工作。举例来说,在磁盘操作系统(DOS)中,命令解释程序是COMMAND.COM;而微软视窗3.11中,命令解释程序则是程序管理员PROGRAM.EXE。当用户1试图进行一需要存取硬盘的工作时,应用程序2会呼出应用程序界面(API)3以送出存取硬盘7的存取命令至操作系统核心4。应用程序界面3则利用统一程序平台提供各种应用,由此在操作系统中执行预定的程序。待分析完所接收的存取命令后,操作系统核心4会送出写入或读取命令至某特定装置的驱动程序(driver)5,用以控制硬件控制器6以实际执行硬盘7的写入及读出动作。明显地操作系统可以在正常情况下对于任何硬盘存取要求,辨识出其来源。如上所述,硬盘通常保存很多重要的数据,如操作系统文件及文件描述区块(filedescriptorblock,FDB)。大多数计算机在开机时,存在硬盘的操作系统文件首先会被载入到计算机的主存储器,借以建立操作平台。若与操作系统相关的文件无法正确找到或完整读出,则计算机系统便无法启动及工作。另外,硬盘中各文件还具有一文件描述区块,用以储存文件相关信息。若文件描述区块遭到毁坏或更改,则对应文件亦可能遗失或无法正常读出。因此,保护硬盘中数据便成为系统操作上相当关键的课题。不幸的是,计算机世界存在很多的计算机病毒,这些病毒试图用各种技术来破坏和摧毁计算机系统。重写或修改文件描述区块或其它系统文件是这些技术之一。但是,对于传统的计算机系统,没有有效的办法来防止这类安全被破坏的事的发生。本发明提供一种保护可重写储存媒体(例如硬盘)上的数据的系统及方法,以避免被计算机病毒程序或其他破坏性程序的非法修改,借以提高计算机系统的稳定性。储存在可重写储存媒体上的数据,在实体上是由硬件控制器加以控制。预先被定义的表则是在可重写储存媒体中定义出一个或多个写入保护储存区,其最好也存放于可重写储存媒体中。这表示,任何将要写入保护储存区的数据均是可检测和可控制的。软件驱动程序(softwaredriver)则链结到操作系统,用以接收可重写媒体中特定储存区的写入命令、并检查写入命令的特定储存区是否位于写入保护储存区中。当写入命令及该表间存在对应关系时,写入命令首先是由与操作系统链结的监视程序模块进行处理。监视程序模块会根据操作系统的状态,检查写入命令的合法性。若监视程序模块确认写入命令的合法性,则软件驱动程序便可以执行正常的写入动作、并将数据填入写入保护储存区中的特定储存区。为让本发明的上述和其他目的、特征、和优点能更明显易懂,下文特举一较佳实施例,并配合附图,作详细说明如下图1(已知技术)是已知计算机硬盘中存储的存取数据的处理示意图;图2是本发明实施例的系统框图,其用以保护计算机系统的硬盘数据免于被非法修改;图3是本发明的实施例中,存取表数据及硬盘扇区的对应关系图;图4是本发明的实施例中,软件驱动程序的详细动作流程图;图5是本发明的实施例中,监视程序模块的详细动作流程图;图6是本发明的实施例中,将数据写入可重写储存媒体的写入保护储存区的步骤流程图。本实施例公开了一种保护数据特别是存储器例如硬盘中重要的数据(如文件描述区块)的方法及系统,借以避免被非法修改。在正常状态下,操作系统会根据主应用程序的要求送出一存取命令(读取或写入)至储存数据的装置驱动程序。因此,操作系统核心可以辨识出与硬盘相关的正常存取命令的来源。若这个存取命令并非由操作系统的应用程序所送出,则这个存取命令便不属于操作系统的合法应用程序。而本发明便是利用这个特性,借以分辨出任何装置驱动程序所接收到的存取命令,特别是写入命令是否合法。另外,用一个表在硬盘中定义写入保护储存区(或储存扇区)。该表(存取表)定义需要保护的储存区位置,如文件描述区块信息。在改变或修改属于存取表中所界定的硬盘位置前,装置驱动程序会将这个写入命令送至监视程序模块,借以检查其合法性。待确认写入命令的合法性后,装置驱动程序才会将数据写入保护区。图2是本发明实施例的系统框图,其用以保护计算机系统的硬盘数据免于被非法修改。在图2中,计算机系统的结构不同于图1所示的情况。其中,文件控制的装置驱动程序20用以代替图1中所示的特定装置驱动程序5。文件控制的装置驱动程序20比已知的驱动程序增加一功能,亦即会去检查所有写入命令所指定的存取区,这点在稍后会详细说明。控制器6中的文件控制存取发送器61只会对装置驱动程序20所发出的有效存取请求回应。根据本实施例,存取表40设置在硬盘7中,且用以辨识或放置需要保护的储存扇区。监视程序模块30链接到文件控制的装置驱动程序20及操作系统10,用以检查任何想要改变保护扇区内容的写入命令的合法性。文件控制装置驱动程序20与已知装置驱动程序的功能相似,其接收有关硬盘7中特定储存扇区的读取或写入命令,并且驱动控制器6及其中的文件控制存取发送器61,借以执行对应的存取动作。文件控制存取发送器61可以保证只有文件控制装置驱动程序20所发出的存取命令可以被执行。通常,接收的读取或写入命令由操作系统10根据其上执行的应用程序要求而送出。不过,当计算机中毒时,接收的读取或写入命令也可能由未知程序如计算机病毒送出。文件控制装置驱动程序20的另一个功能,是检查写入命令的储存扇区是否由存取表40定义,其定义有重要信息(如操作系统档及文件描述区块)的储存扇区。若欲写入的储存扇区属于存取表40所定义的保护储存扇区,则写入命令必须由监视程序模块30处理。监视程序模块30耦接(钩接)于操作系统10,用以监视操作系统的状态。也就是说,监视程序模块30检查是否操作系统10送出的写入命令正确地为文件控制装置驱动程序20所接收。因为合法应用程序的任何正常写入命令均可以这种方式确认,故计算机病毒的写入命令便可以被抓到。文件控制存取发送器61一对一地对应于文件控制装置驱动装置20,借以避免对存取表40的非法存取。因此,文件控制装置驱动器20可根据监视程序模块30的检查结果来接受或拒绝该写入命令。因此,以上所述的计算机系统便可以防止硬盘的重要数据遭计算机病毒变动或修改。接下来详细说明存取表40、文件控制装置驱动器20、及监视程序模块30三个单元。如上述,存取表40定义重要信息的储存扇区,如操作系统文件及文件描述区块。在这个例子中,只以文件描述区块的保护为例。不过,对于本领域的技术者而言,任何与文件相关的储存扇区均可以采用存取表40定义的方法予以保护。图3是本发明实施例中的存取表40及硬盘7中扇区的对应关系图。存取表40可以存放在硬盘7中,这有助于存取表40的存取处理。通常,硬盘是以字节为单位储存数据,每个字节具有8比特。根据本实施例,存取表40的每个字节用于定义硬盘驱动器7的四个储存扇区,因此,可用两个比特表示一个储存扇区的状态。以下的表一则表示状态排列例。表1如表1所示,若对应储存扇区的两位为00时,表示对应的储存扇区未受保护(开放);若对应储存扇区的两位为11时,表示对应的储存扇区受保护且在存取前应先确认(文件描述区块)。“锁住”状态表示对应的储存扇区禁止存取,而“写入一次”状态则表示对应的储存扇区只可以被写入一次。在图3中表示四个字节长度的存取表40,及硬盘7的储存扇区7a部分。存取表40的四个字节依序表示成Bn、Bn+1、Bn+2、Bn+3,用以储存十六个储存扇区Sm~Sm+15的使用状态。举例来说,字节Bn表示储存扇区Sm、Sm+1、Sm+2、Sm+3的使用状态。在此例中,这些扇区都是正常数据。字节Bn+1表示储存扇区Sm+4、Sm+5、Sm+6、Sm+7的使用状态,其中前两个扇区Sm+4、Sm+5包含有正常数据,后两个扇区Sm+6、Sm+7则具有欲保护的文件描述区块。字节Bn+2表示储存扇区Sm+8、Sm+9、Sm+10、Sm+11的使用状态。前三个扇区Sm+8、Sm+9、Sm+10具有欲保护的文件描述区块,扇区Sm+11、Sm+7则是正常数据。字节Bn+3表示储存扇区Sm+12、Sm+13、Sm+14、Sm+15的使用状态。这些扇区也都包含正常数据。当文件控制装置驱动程序20接收写入命令,准备改变具有保护数据的扇区(例如扇区Sm+7)内容时,写入命令首先要被送至监视程序模块30以检查其合法性。若写入命令为合法的,则文件控制装置驱动程序20会驱动控制器6以执行必要的写入动作。另外,当文件控制装置驱动程序20所接收到的写入命令,是要改变储存正常数据的扇区(例如扇区Sm+12)内容时,写入命令可直接由文件控制装置驱动程序20处理,借以启动控制器6执行必要的写入动作。任何非法的存取要求均会被文件控制存取发送器61挡下来。图4是本发明实施例中,文件控制装置驱动程序20的详细动作流程图。注意的是,本实施例的文件控制装置驱动程序20也都可以进行已知装置驱动程序的各项功能。如图4所示,文件控制装置驱动程序20首先接收操作系统(S1)或未知程序的命令。基本上,文件控制装置驱动程序20此时并不能分辨出送出目前命令的程序。接着,文件控制装置驱动程序20辨识该命令的动作是读取命令或写入命令(S2)。当此命令为读取命令时(与本发明无关),文件控制装置驱动程序20可以直接驱动控制器6以执行正常的读取动作(S3)。当此命令为写入命令时,文件控制装置驱动程序20则执行以下两个步骤,亦即检查想要存取的储存扇区是否受到保护、以及检查此写入命令的合法性。如图4所示,文件控制装置驱动程序20首先透过文件控制存取发送器61读取硬盘7的存取表40,借以检查是否为认可的存取要求(S4)。根据存取表40,文件控制装置驱动程序20检查将被写入命令存取的扇区是否属于存取表40中定义的受存取保护的扇区(S5)。若这种关系不成立,则这个写入命令不需要进一步的检查,而文件控制装置驱动程序20可以直接地驱动控制器6以执行正常写入动作(S6)。若这种关系成立,则必确认写入命令的合法性。确认写入命令的合法性是由监视程序模块30所执行。因此,文件控制装置驱动程序20可以将写入命令送入监视程序模块30,并等待回应(S7)。待确认写入命令的合法性后,监视程序模块30会将结果送回文件控制装置驱动程序20。若写入命令为合法的(S8),文件控制装置驱动程序20驱动控制器6以执行正常写入动作(S6)。若写入命令为不合法的(S8),则文件控制装置控制程序20便将错误信息送至操作系统,并拒绝执行写入动作(S9)。图5是本发明实施例中,监视程序模块30的详细动作流程图。如上述,监视程序模块30检查被送至文件控制装置驱动程序20的写入命令的合法性,并将检查结果送回文件控制装置驱动器20。在图5中,监视程序模块30首先接收有关被送至文件控制装置驱动器20的写入命令的信息(S11)。在本实施例中,监视程序模块30以“钩接”(hook)方式耦接于操作系统,借以得到操作系统的状态。举例来说,在微软视窗操作系统中,监视程序模块30可以虚拟装置驱动器(VirtualDeviceDriver,VeD)达成。因此,监视程序模块30可检查操作系统以得到写入命令是否由合法应用或例行程序所送出(S12)。通常,任何执行应用的硬盘存取要求均可以由操作系统所辨识。也就是说,通过钩接操作系统,监视程序模块30可决定写入命令的合法性或正确性。最后,监视程序模块30会将写入命令的正确性送回文件控制装置驱动程序20(S13)。因此,文件控制装置驱动程序20便可以判断写入命令是否合法(图4的S8),并适当地执行此命令(图4的S6或S9)。前面已分别说明了文件控制装置驱动器20及监视程序模块30的功能。图6是本发明实施例中,将数据写入可重写储存媒体的写入存取表40所定义的保护储存区的步骤流程图。首先,计算机系统(或储存系统)会在硬盘7中建立并定义一个存取表40,借以指出重要文件或数据(如文件描述区块)的储存扇区(S21)。存取表40可以随着硬盘7的内容而机动变化。接着,操作系统或病毒程序的写入命令可送至文件控制装置驱动程序20(S22)。此时,文件控制装置驱动程序20并不能辨识写入命令的来源。然后,文件控制装置驱动程序20可利用文件控制存取发送器61,检查欲存取扇区与存取表40中所定义的保护储存区间关系(S23)。注意的是,只有文件控制存取发送器61可调整存取表40。若写入命令想要存取存取表40定义的保护储存区,驱动程序20会将写入命令送至监视程序模块30(S24)。监视程序模块30会根据操作系统的状态,检查写入命令是否由合法应用程序所送出(S25)。最后,若写入命令为合法的,文件控制装置驱动程序20就可以驱动控制器6,以对保护储存区执行正常写入动作(S26)。不过,若写入命令为不合法的,则文件控制装置驱动程序20不会执行任何写入动作,并将错误信息送到操作系统。根据上述叙述,本发明的保护装置及方法可成功地滤出未知程序如计算机病毒的非法写入要求,并避免因此而改变硬盘中的重要信息。另外,文件控制装置驱动程序20及文件控制存取发送器61可执行存取表40的存取。这个特征可确保存取表的完整性。虽然本发明已以较佳实施例公开如上,然其并非用以限定本发明,任何本领域的技术人员,在不脱离本发明的精神和范围内所作的改进和替换,应被视为属于本发明。权利要求1.一种用来保护一可重写储存媒体中数据的系统,该可重写储存媒体由一控制器控制,并被设置于执行一操作系统的一计算机中,该系统包括存取表,用于在该可重写储存媒体中定义写入保护储存区;软件驱动程序,链接于该操作系统,用以接收对应于该可重写媒体中一特定储存区的写入命令、并检查该写入命令中相应的该特定储存区是否对应于该写入保护储存区;以及一监视装置,链接于该软件驱动程序及该操作系统,在该软件驱动程序确认该特定储存区对应于该写入保护储存区时,检查该写入命令是否合法,当该监视装置确认该写入命令的合法性时,该软件驱动程序驱动该控制器,由此将数据写入该特定储存区。2.如权利要求1所述的系统,其特征在于,该存取表存放于该可重写储存媒体。3.如权利要求1所述的系统,其特征在于,该可重写储存媒体是一硬盘。4.如权利要求3所述的系统,其特征在于,该写入保护储存区包括该硬盘的一个或多个扇区。5.如权利要求3所述的系统,其特征在于,该写入保护储存区是该硬盘的一文件描述区块。6.一种将数据写入一可重写储存媒体的方法,该可重写储存媒体由一控制器控制,并被设置于执行一操作系统的一计算机中,该方法包括以下步骤定义一存取表,借以在该可重写储存媒体中定义写入保护储存区;利用一软件驱动程序接收对应于该可重写媒体中一特定储存区的写入命令,其中该软件驱动程序可用于驱动该控制器,借以在该可重写储存媒体中执行写入动作;检查该特定储存区的至少一部分是否对应于该存取表所定义的该写入保护储存区;当该软件驱动程序确认该特定储存区的至少一部分对应于该写入保护储存区时,将该软件驱动模块所接收的该写入命令送至一链接于该操作系统的监视模块。根据该操作系统的状态,用该监视模块检查该写入命令是否合法;用该软件驱动程序驱动该控制器,借以在该监视模块确认该写入命令的合法性时,将数据写入该特定储存区。7.如权利要求6所述的方法,其特征在于,该存取表存放于该可重写储存媒体。8.如权利要求6所述的方法,其特征在于,该可重写储存媒体是一硬盘。9.如权利要求8所述的方法,其特征在于,该可写入保护储存区包括该硬盘的一个或多个扇区。10.如权利要求8所述的方法,其特征在于,该可写入保护储存区是该硬盘中的一文件描述区块。全文摘要一种保护可重写储存媒体(如硬盘)数据的系统及方法。预先定义的存取表可用来在可重写储存媒体中定义出写入保护储存区。软件驱动程序接收硬盘中特定储存扇区的写入命令、并检查特定扇区是否对应于存取表中定义的写入保护储存区。该写入命令由监视程序模块处理。而监视程序模块则根据操作系统状态,检查写入命令的合法性。当监视程序模块确认该写入命令的合法性时,软件驱动程序执行正常写入动作、并将数据写入该特定储存区。文档编号G06F12/16GK1250911SQ9911943公开日2000年4月19日申请日期1999年9月24日优先权日1998年9月28日发明者后健慈申请人:英属维京群岛盖内蒂克瓦尔有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1