用于反安装的监控方法

文档序号:6651488阅读:311来源:国知局
专利名称:用于反安装的监控方法
技术领域
本发明涉及一种用于反安装的监控方法,特别涉及一种可以同时监控多个安装程序,且在监控期间不受使用者其他操作影响的监控方法。
一般来说,如果想要在电脑系统中使用某一软件,需要先从磁盘或光盘中执行一安装程序(install.exe或setup.exe),以将软件数据存入硬盘的相关目录中,之后才能正常执行该软件,上述的动作过程称为安装(install或setup)。安装一电脑软件不只是将其文件数据复制到硬盘之中,同时会修改作业系统的相关环境设定;相反地,若要将软件由电脑系统中除去,只将该软件的所在目录删除是不够的,还必须在作业系统(尤其是像Windows这种整合式环境)中移除某些设定才行,否则软件会移除得不十分干净。虽然没有将软件的相关环境设定移除干净,一时之间也许不会使电脑出错,但长久下来,由於电脑一直执行许多不必要的设定内容,因此会严重浪费系统资源并影响电脑运作效率,最後甚至会使得电脑常掉机。
为避免上述的问题发生,以便让使用者能够将所安装的软件完整从硬盘中移除,因此出现了一种解除安装程序,或称为反安装(uninstall)程序。由於反安装程序在执行解除安装的动作时,必须知道要移除哪些与该软件相关的目录与环境设定数据,故在软件安装之前需先启动该反安装程序,让反安装程序能监控并记录其设定内容。而目前的安装监控技术大都以“快照比较”为基础,也就是说反安装程序会在软件安装之前,先将电脑系统内相关的目录路径、登录与可能被修改的设定内容做一次的扫描与纪录,之后在软件安装完成之后,再扫描与纪录一次电脑系统的目录路径、登录与设定内容,两相比较之下,反安装程序便知道安装该软件所增加或改变的环境系统设定。
上述公知方法的特点是在同一时间中只能监控一个安装程序,并且要求使用者在监控期间不能有任何的修改动作,否则会导致监控记录错误,造成安装过程的失败,如果安装程序具有重启动功能,则会使监控过程中遗失记录,因而不能获得正确的监控结果。
有监于此,本发明的目的在于提供一种用于反安装的监控方法,设计一种可以同时监控多个安装软件的反安装程序,并且其监控期间的纪录也不受使用者的其他操作影响。
根据上述本发明的目的,本发明提供的一种用于反安装的监控方法应用于监控至少一安装程序的安装过程,以作为反安装(Uninstall)时移除数据的依据,将原本在Ring0层访问权限的文件纪录(File Record)与登录记录(Registry Record),转换为在Ring3层访问权限也可操作调用的一新文件纪录与一新登录记录,然后利用任务监控模块监测执行中的进程是否有安装程序,一但发现有安装程序在电脑系统中启动,则通知文件纪录模块与登录纪录模块,分别对文件系统数据与登录数据的更改前后内容进行备份与纪录,最后通过重启保护模块拦截系统启动程序,以避免电脑重新启动而造成安装纪录数据的遗失。其具体步骤包括拦截一执行中软件的进程识别码(Process ID),并确认该软件为该安装程序;将位於中央处理单元(CPU)的Ring0层访问权限的一文件纪录(File Record)与一登录记录(Registry Record),转换为在Ring3层访问权限也可操作调用的一新文件纪录与一新登录记录;监测该安装程序对该新文件纪录与一文件系统的输入/输出(I/O)操作,并且对该新文件纪录与该文件系统的内容备份;监测该安装程序对该新登录记录的输入/输出(I/O)操作,并且对该新登录记录的内容备份;以及利用该安装程序中之一跳转(Jump)命令而拦截电脑的系统启动函数。
由于本发明让每一个安装程序对应一个Ring3层的文件纪录与登录记录,因此可以让多个安装程序同时进行安装程序而不会将安装纪录弄错。
为让本发明的上述和其他目的、特征、和优点能更明显易懂,下文特举一优选实施例,并配合附图作详细说明如下。


图1A显示本发明的功能模块示意图;图1B显示本发明将纪录由Ring0层访问权限转换为Ring3层访问权限的示意图;图2显示本发明中任务监控的流程图;图3显示本发明中文件纪录的流程图;图4显示本发明中登录记录操作的流程图;图5显示本发明中重启保护的流程图;以及图6显示本发明中由Ring0层到Ring3层的数据转换流程图。
附图符号说明100.................Ring0层101.................文件纪录102.................登录纪录110.................Ring3层111.................文件纪录112.................登录纪录120.................Ring0层到Ring3层数据转换模块130.................任务监控模块140.................文件纪录模块150.................登录纪录模块160.................重启保护模块请参照图1A,图中显示本发明的安装监控功能由四个部份所支持,即任务监控模块130、文件记录模块140、登录记录模块150和重启保护模块160;除此之外,请参照图1B,本发明也须另外将Ring0层的文件记录(File Record)和登录记录(Registry Record),利用一数据转换模块120转换成Ring3层的文件记录和登录记录,之后,再由上述四个功能模块任务监控模块130、文件记录模块140、登录记录模块150和重启保护模块160来共同完成安装监控的功能。
至于上述四个功能模块的各自操作流程详述如下任务监控模块130请参照图2,该模块130通过对Win32API的拦截,来完成对系统任务(Task)的监控,首先调用与被处理进程相关的创建进程函数(CreateProcess)(步骤201),然后读取当前进程的识别码(Process ID)(步骤202),并且从原函数反馈值中取出被创建进程的识别码,同时将这个识别码ID发送给主控程序(步骤203),由主控程序判断该进程是否为安装程序进程(步骤204),如果是,则通知主控程序为该任务建立一个新的记录(步骤205),如果否,则返回,继续等待下次调用(步骤206)。
文件记录模块140请参照图3,首先调用拦截函数,以拦截文件系统的I/O操作(步骤301),然后判断目前正在执行的程序是否被监控(步骤302)?如果是,则判断当前的操作是否为开启文件(Open File)操作(步骤303),如果也是,则分析其存取(Access)操作权限(步骤309),同时判断其是否为破坏性操作(步骤310),如果又是,则备份该文件内容(步骤306),程序返回;如果不是,则直接结束程序。若之前判断目前操作不是开启文件操作,则继续判断当前操作是否为删除(Delete)操作(步骤304),如果是,则备份文件内容(步骤308);如果不是,则进一步判断当前操作是否为重命名(Rename)操作(步骤305),如果是,备份该文件内容(步骤306),如果仍然不是,则视为当前操作无效,程序返回,等待下一次操作(步骤307);登录记录模块150请参照图4,本发明通过对登录(Registry)的输入/输出(I/O)监测,以记录安装程序对其所做的修改。首先调用拦截函数,置换Ring0层与Ring3层的登录地址(步骤401),然后拦截输入/输出(I/O)操作(步骤402),判断当前操作是否有修改登录(步骤403),如果是,则记录所作的修改操作结果(步骤404),并记录下原始数据(步骤405);如果当前登录未修改,则程序返回(步骤406),等待拦截下一登录。
重启保护160请参照图5,该模块可以防止安装过程中,由於安装程序重新启动电脑所造成的安装纪录数据损失。首先寻找安装程序原函数地址(步骤501),读取其下的跳转(JUMP)命令(步骤502),并将该跳转命令中的跳转地址指向拦截函数(步骤503),然後拦截系统启动函数(步骤504),等待被外层的安装程序调用(步骤505);若接收到调用操作(步骤506),则判断此时运行的程序是否被监控(步骤507),如果是,则不影响此时的函数调用(步骤509),程序返回;如果不是,则重启电脑(步骤508)。
另外,Ring0层到Ring3层的数据转换模块120,请参照图6,通过该模块可以完成从Ring0层到Ring3层的数据转换,以使得Ring0层的文件记录和登录记录数据可以被Ring3层操作调用。首先初始化函数(步骤601),读取第一个Ring3层进程(Process)(步骤602),将其转换为TDB地址(步骤603),然後读取Ring0层ID识别码(步骤604),判断是否与之相等(步骤605),如果是,则返回该ID(步骤606);如果否,则取下一ID(步骤607),判断这个ID是否存在(步骤608),如果存在,则继续将其转换成TDB地址,重复转换为TDB地址(步骤603)到返回(步骤609)的操作;如果不存在,则程序返回,表明操作已空(步骤609)。
下面特以WinZip软件的安装过程为例,说明本发明的安装监控过程首先启动安装程序,此时,本发明所提供的任务监控模块被调用,拦截到当前的进程识别码(Process ID),提示主控程序发现当前所运行的进程是安装程序,询问是否记录,确认后,开始为当前任务建立新记录,接下来启动文件系统监控和登录监控程序,分别拦截文件系统和登录的输入/输出(I/O)操作,针对其不同情况进行备份处理,对应地将Ring0层文件记录和登录记录转换成Ring3层文件记录和登录记录,启动重启保护,跟踪进程变化,记录由此任务所产生的对文件系统和登录的改变,备份被修改的原始文件,安装完成后,显示所作的记录,供使用者参考。
由于本发明将原本在Ring0层进行的文件纪录与登录记录的修改动作,转换为在Ring3层执行,并且每一安装程序对应一组Ring3层的文件纪录与登录记录,因此可同时监控多个安装程序,且在监控过程中不影响使用者的其他操作。
再者,本发明能够自动监测使用者的重启请求,当使用者重启安装程序时,不会造成安装记录的错误或遗失,同时亦支持DOS操作和16位Windows程序操作。
虽然通过参考本发明的一优选实施例已经对本发明作了图示和描述,然其并非用于限定本发明。本领域普通技术人员应该明白,可以对其作各种更动和修改而不偏离后附权利要求书所限定的精神和范围。因此本发明的保护范围应以后附的权利要求书所限定的范围为准。
权利要求
1.一种用于反安装的监控方法,应用于监控至少一安装程序的安装过程,以作为反安装(Uninstall)时移除数据的依据,其包括拦截一执行中软件的进程识别码(Process ID),并确认该软件为该安装程序;将位于中央处理单元(CPU)的Ring0层访问权限的一文件纪录(FileRecord)与一登录记录(Registry Record),转换为在Ring3层访问权限也可操作调用的一新文件纪录与一新登录记录;监测该安装程序对该新文件纪录与一文件系统的输入/输出(I/O)操作,并且对该新文件纪录与该文件系统的内容备份;监测该安装程序对该新登录记录的输入/输出(I/O)操作,并且对该新登录记录的内容备份;以及利用该安装程序中之一跳转(Jump)命令而拦截电脑的系统启动函数。
2.如权利要求1所述的用于反安装的监控方法,其中透过拦截应用程序界面(Application Program Interface,API),来达到对该安装程序的任务监控。
3.如权利要求1所述的用于反安装的监控方法,其中该进程识别码(Process ID)由与该软件相关的创建进程(Create Process)函数中取得。
4.如权利要求1所述的用于反安装的监控方法,其中该文件系统包括相关目录结构、文件名称、文件数量以及文件内容。
5.如权利要求1所述的用于反安装的监控方法,其中监测该安装程序对该新文件纪录与该文件系统的输入/输出(I/O)操作,还包含下列步骤拦截该新文件纪录与该文件系统的输入/输出(I/O)操作;以及判断对该新文件纪录与该文件系统进行存取的程序是否被监控。
6.如权利要求5所述的用于反安装的监控方法,其中该输入/输出(I/O)操作包括开启文件(Open File)操作、删除文件(Delete File)操作与重命名(Rename)操作组合的其中之一。
7.如权利要求6所述的用于反安装的监控方法,其中若该输入/输出(I/O)操作为该开启文件(Open File)操作,则还增加一分析该操作的存取权限是否为一破坏性操作的步骤。
8.如权利要求7所述的用于反安装的监控方法,其中该破坏性操作指对该开启文件内容做任何更动的操作。
9.如权利要求1所述的用于反安装的监控方法,其中监测该安装程序对该新登录记录的输入/输出(I/O)操作,还包含下列步骤置换该登录纪录与该新登录纪录的地址;拦截该新登录纪录的输入/输出(I/O)操作;以及判断该输入/输出(I/O)操作是否修改该新登录纪录。
10.如权利要求1所述的用于反安装的监控方法,其中对该新登录记录的内容备份包括存储该新登录记录的原始数据;以及存储该输入/输出(I/O)操作的内容。
11.如权利要求1所述的用于反安装的监控方法,其中拦截电脑的系统启动函数,还包含下列步骤读取该安装程序下的该跳转(Jump)命令;以及将该跳转(Jump)命令中的跳转地址转换为一拦截函数的地址。
12.如权利要求1所述的用于反安装的监控方法,其中将数据由Ring0层访问权限转换为Ring3层访问权限,还包含下列步骤读取一Ring3层的进程(Process),并将其转换为TDB地址;以及读取该进程的相对Ring0层的识别码(ID),并判断是否与该进程的识别码相同。
全文摘要
一种用于反安装的监控方法,将位于Ring0层的文件记录与登录记录转换为Ring3层也可操作调用,再通过任务监控、文件纪录、登录记录以及重启保护四个部分的支持,而执行检测、监控安装程序以及记录其所更改的文件与设定内容,同时由于重启保护部分会拦截系统启动函数,因此可以保护在安装过程所记录的数据不会遗失,又由于每一安装程序皆可对应一Ring3层文件纪录与登录记录,使得本发明可以同时监控多个安装程序,而不会有将安装记录弄错的问题。
文档编号G06F11/30GK1368679SQ0110334
公开日2002年9月11日 申请日期2001年2月1日 优先权日2001年2月1日
发明者陈玄同, 林光信 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1