CN103345411A - 卸载应用程序的方法及装置 - Google Patents
卸载应用程序的方法及装置 Download PDFInfo
- Publication number
- CN103345411A CN103345411A CN2013102869411A CN201310286941A CN103345411A CN 103345411 A CN103345411 A CN 103345411A CN 2013102869411 A CN2013102869411 A CN 2013102869411A CN 201310286941 A CN201310286941 A CN 201310286941A CN 103345411 A CN103345411 A CN 103345411A
- Authority
- CN
- China
- Prior art keywords
- application program
- file
- registry entry
- installation process
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了卸载应用程序的方法及装置,其中,所述方法包括:获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息;将获取到的文件的路径信息以及修改信息保存为日志文件;在需要对所述应用程序进行卸载时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。通过本发明,能够实现对应用程序安装过程中释放的文件及修改的注册表信息的彻底回滚,避免对***资源造成浪费。
Description
技术领域
本发明涉及应用程序卸载技术领域,具体涉及卸载应用程序的方法及装置。
背景技术
计算机操作***自带的程序很少,如果要让计算机实现多种功能,就需要在计算机中安装相应的应用程序。安装不同的应用程序可以扩展计算机的功能,如安装WinRAR进行文件压缩、安装ACDSee进行图片浏览等。而当不再需要使用某应用程序时,为了避免其继续占用***的存储空间,可以对应用程序执行卸载操作。
众所周知,卸载应用程序的方法一般有三种:利用控制面板中的“添加/删除程序”、使用应用程序自带的卸载程序、或者使用反安装软件来进行卸载。但是在实际应用中可能至少存在以下问题:按照上述常规的途径卸载了某些应用程序,但是***中可能仍然残留有大量的文件。例如,已经卸载了某程序,但是发现硬盘中仍然有该程序的文件夹,注册表中仍然有相关的注册表项等等。显然,由于应用程序已经被删除,因此,这些残留文件已经是没用的文件了,这种文件的存在会对***的存储等资源造成浪费。另外,还可能存在通过常规的卸载途径无法完成卸载的情况。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的卸载应用程序的方法及装置,能够实现对应用程序安装过程中释放的文件及修改的注册表信息的彻底回滚,避免对***资源造成浪费。
依据本发明的一个方面,提供了一种卸载应用程序的方法,包括:
获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息;
将获取到的文件的路径信息以及修改信息保存为日志文件;
在需要对所述应用程序进行卸载时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
可选地,所述在需要对所述应用程序进行卸载时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态,包括:
当按照常规方式对所述应用程序卸载完毕后,根据所述日志文件,判断***中是否存在关于该应用程序的残留信息;
如果存在,则根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
可选地,所述在需要对所述应用程序进行卸载时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态,包括:
当按照常规的方式对所述应用程序卸载失败时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
可选地,所述获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息包括:
通过读取主动防御***在应用程序安装过程中记录的日志,获取所述应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息。
可选地,所述获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息包括:
通过对应用程序安装过程的文件释放事件以及对注册表项进行修改的事件进行监控,获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息。
可选地,所述将获取到的文件的路径信息以及修改信息保存为日志文件包括:
在应用程序安装过程中,将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息保存到内存中;
在所述应用程序安装结束后,将内存中记录的数据以及应用程序的标识信息对应保存到硬盘中生成日志文件。
可选地,所述将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息保存到内存中包括:
将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息传给指定的监控进程,以便监控进程在得到数据后记录到内存中。
可选地,所述将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息传给指定的监控进程包括:
当监控到释放文件的事件时,将所释放的文件的的路径信息传给指定的监控进程;
当监控到修改注册表项的事件时,将被修改的注册表项的相关信息传给指定的监控进程;所述被修改的注册表项的相关信息包括:注册表项的路径、修改后的值、修改操作的类型。
根据本发明的另一方面,提供了一种卸载应用程序的装置,包括:
信息获取单元,用于获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息;
信息保存单元,用于将获取到的文件的路径信息以及修改信息保存为日志文件;
删除及还原单元,用于在需要对所述应用程序进行卸载时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
可选地,所述删除及还原单元包括:
判断子单元,用于当按照常规方式对所述应用程序卸载完毕后,根据所述日志文件,判断***中是否存在关于该应用程序的残留信息;
彻底清扫子单元,用于如果存在,则根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
可选地,所述删除及还原单元包括:
回滚子单元,用于当按照常规的方式对所述应用程序卸载失败时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
可选地,所述信息获取单元包括:
读取子单元,用于通过读取主动防御***在应用程序安装过程中记录的日志,获取所述应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息。
可选地,所述信息获取单元包括:
监控子单元,用于通过对应用程序安装过程的文件释放事件以及对注册表项进行修改的事件进行监控,获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息。
可选地,所述信息保存单元包括:
内存保存子单元,用于在应用程序安装过程中,将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息保存到内存中;
硬盘写入子单元,用于在所述应用程序安装结束后,将内存中记录的数据以及应用程序的标识信息对应保存到硬盘中生成日志文件。
可选地,所述内存保存子单元具体用于:
将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息传给指定的监控进程,以便监控进程在得到数据后记录到内存中。
可选地,所述内存保存子单元具体用于:
当监控到释放文件的事件时,将所释放的文件的路径信息传给指定的监控进程;当监控到修改注册表项的事件时,将被修改的注册表项的相关信息传给指定的监控进程;所述被修改的注册表项的相关信息包括:注册表项的路径、修改后的值、修改操作的类型。
根据本发明实施例提供的卸载应用程序的方法及装置将应用程序安装过程中释放的文件的路径信息以及对注册表进行修改的信息保存为日志文件,这样,在使用常规方式对应用程序进行卸载完成之后,就可以使用该日志文件来判断***中是否还该有该应用程序的残留信息,如果存在将其进行删除。或者,如果使用常规的卸载方式无法卸载某应用程序,则也可以使用该日志文件删除该应用程序安装过程中释放的文件,和/或,将被修改的注册表信息还原到该应用程序安装前的状态。因此,可以避免***中长期存在应用程序的残留信息,有利于提高***性能。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的方法的流程图;以及,
图2示出了根据本发明一个实施例的装置的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
首先需要说明的是,当在***中安装一个应用程序时,通常会在***中进行以下操作:向指定的目录中释放一些文件、修改注册表,包括修改某注册表项的取值,或者向注册表中添加新的注册表项等。其中,释放出的文件一般是应用程序运行过程中所需依赖的文件,包括可执行文件、数据库文件、图片等等;对注册表的修改是为了与操作***产生紧密的联系,例如,如果某应用程序希望随操作***自动启动,则需要修改以下注册表项:hklm-software-microsoft-windows-currentversion-run。
在理想的情况下,在对一个应用程序进行卸载时,应该将该应用程序在安装过程中释放的所有文件都删除,将安装过程中添加的注册表项全部删除,将安装过程中修改后的注册表项的值恢复到修改前的值。但是,在现有技术中,在使用常规的卸载方式对应用程序执行卸载时,可能会产生残留的文件,其中可能是安装过程中释放的某些文件尚未删除,或者添加的注册表项未被删除,或者注册表项的值没有恢复到修改前的状态,等等。
因此,在本发明实施例中,为了能够在常规的卸载方式无法彻底清除掉应用程序的相关文件或者注册表信息的情况下,进一步进行更彻底地清除,可以在应用程序安装的过程中,获取到该应用程序释放了哪些文件、对哪些注册表项进行了修改、添加了哪些注册表项等信息,并记录为日志文件。这样,当该应用程序被卸载时,就可以根据该日志文件来判断是否有安装过程中释放的文件尚未被删除,是否有安装过程中添加的注册表项未被删除,是否有安装过程被修改的注册表项的值没有恢复到修改前的状态,进而,如果存在上述情况,则同样根据日志文件中记录的信息,对残留文件进行删除,或者对残留的注册表项进行删除,对注册表项的值恢复到修改前的值,从而达到彻底清除残留文件的目的。下面对具体的技术实现进行详细地介绍。
参见图1,本发明实施例提供了一种卸载应用程序的方法,该方法可以包括以下步骤:
S101:获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息;
需要说明的是,这里所述的应用程序可以包括普通的应用程序,例如浏览器等,还可以是插件等需要依赖于其他应用程序的应用程序,例如,浏览器的flash插件等,这里不进行限定。
S102:将获取到的文件的路径信息以及修改信息保存为日志文件;
具体实现时,可以启动一监控进程,该监控进程可以在内核态或者用户态对应用程序的安装事件进行监控。例如,可以HOOK一些与应用程序安装相关的***函数,这样,当某应用程序在安装时,会发出调用这些***函数的请求,这样,监控程序就可以拦截到该请求,同时,可以获知释放了哪些文件、修改了哪些注册表项、新增了哪些注册表项,等等。
在实际应用中,在一种实现方式下,监控进程可以在应用程序安装过程中,将获取到的释放的文件信息(主要是指释放的各个文件的路径)以及对注册表项执行的修改信息同步地生成日志文件,保存到执行的硬盘目录下。其中,对注册表项执行的修改信息可以包括修改操作的类型(主要包括修改注册表项的值或者新增注册表项这两种类型)、在修改注册表项的值的情况下被修改的注册表项的标识以及修改前的值、在新增注册表项的情况下新增的注册表项的标识。
但是在这种同步生成日志文件的情况下,会涉及到写硬盘的操作,需要用到***的I/O指令,但与此同时应用程序也在安装,安装的过程中在释放文件时,也会有写硬盘的操作,同样会用到***的I/O指令,因此,会同步生成日志文件的实现方式下,可能会对应用程序的安装过程产生影响。
为了降低这种影响,本发明实施例可以采用异步的方式来实现。为此,可以由监控进程申请一块内存空间,并将该内存空间共享给安装进程(例如操作***的installer.exe进程),使得安装进程获得对该内存空间的控制权。这样,就可以获得以下效果:
在安装进程对某应用程序进行安装的过程中,在对文件进行释放时,安装进程就会将释放出的文件路径等信息传给监控进程,并标记为“文件释放”。监控进程在得到相关的数据之后进行保存,并将请求返回后,对数据标记进行读取,将“文件释放”标记与各个文件的路径对应地保存到共享内存中。
在安装进程对注册表项的值进行修改时,就可以将该注册表项的路径以及其修改前的值传给监控进程,并标记为“注册表项修改”。监控进程在得到相关的数据之后进行保存,并将请求返回后,对数据标记进行读取,将“注册表项修改”标记与注册表项的路径及修改前的值对应地保存到共享内存中。
在安装进程对注册表项进行添加时,可以将新增的注册表项的路径传给监控进程,并标记为“注册表项添加”。类似的,监控进程在得到相关的数据之后进行保存,并将请求返回后,对数据标记进行读取,将“注册表项添加”标记与注册表项的路径对应地保存到共享内存中。
在安装完成之后,可以将应用程序进行ID化(例如生成MD5值等能够唯一标识一个应用程序的信息)并写入到共享内存中,然后再根据共享内容中的信息生成日志文件,将日志文件压缩后保存到指定的硬盘位置。
也就是说,在应用程序安装的过程中,仅将获取到的释放文件的信息以及修改注册表的信息临时保存到内存中,在应用程序安装结束之后,再生成日志文件写入到硬盘中。这样,可以将对安装过程的影响降到最小。
以上所述的实现方式是通过启动一个监控进程来获取到应用程序在安装过程中对***进行修改的相关信息,在实际应用中,如果当前***中安装有具有主动防御功能的安全软件,则这种软件也可以在安装应用程序的过程中进行日志记录,记录的信息也可以包括该应用程序释放了哪些文件,对哪些注册表项的值进行了修改,修改前的值是什么,以及新增了哪些注册表项等等。因此,也可以在应用程序安装结束之后,直接从这种日志中导出所需的信息,而不需要再另外对应用程序的安装过程进行监控,这样可以进一步降低对安装过程的影响。
S103:在需要对所述应用程序进行卸载时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
由于日志文件中记录了一个应用程序在安装过程中释放了哪些文件、修改了哪些注册表项、新增了哪些注册表项,相当于记录了在卸载时,都需要删除哪些文件、还原哪些注册表项、删除哪些注册表项。因此,在按照常规的方式对应用程序完成卸载之后,就可以根据日志文件判断***中是否还存在未被删除的文件、未被还原的注册表项、未被删除的注册表项,等等,以此来判断是否还存在该应用程序的残留信息。
由于可以使用日志文件判断***中是否存在某应用程序的残留信息,因此,如果发现存在残留信息,则仍然可以根据日志文件对残留信息进行删除。例如,如果发现某应该被删除的文件仍然存在,则可以将该文件删除,如果发现某注册表项的值仍然是修改后的值,则根据日志文件中的记录,将其还原为修改前的值,如果发现某应该被删除的注册表项尚未被删除,则将其删除即可,总之,最后可以将安装过程中释放的所有文件都删除,将注册表项还原到修改前的状态(包括注册表项值的还原以及新增注册表项的删除)。
当然,在实际应用中,可能存在卸载器被损坏,使得无法安装常规方式进行卸载的情况,在这样的情况下,可以直接根据记录的日志文件确定需要删除哪些文件、删除哪些注册表项、还原哪些注册表项的值,等等,并据此进行删除及还原操作即可。
另外需要说明的是,可以通过日志来判断是否绑定了其他软件,例如,在日志中检测到指定的注册表被创建,则认为绑定安装了对应的软件。
总之,在本发明实施例中,将应用程序安装过程中释放的文件的信息以及对注册表进行修改的信息保存为日志文件,这样,在使用常规方式对应用程序进行卸载完成之后,就可以使用该日志文件来判断***中是否还该有该应用程序的残留信息,如果存在将其进行删除。或者,如果使用常规的卸载方式无法卸载某应用程序,则也可以使用该日志文件删除该应用程序安装过程中释放的文件,和/或,将被修改的注册表信息还原到该应用程序安装前的状态。因此,可以避免***中长期存在应用程序的残留信息,有利于提高***性能。
为了更好地理解本发明实施例,下面通过以下具体实现中的例子对本发明实施例进行更为详细地介绍。
例如,假设某应用程序的安装包名称为:110.exe,其在服务器对应的软件ID为:110。假设在安装的过程中,110.exe向该软件的安装目录中释放了以下文件:
1.exe,2.exe,3.exe,4.exe,uninstall.exe
向上层目录释放了以下文件:5.exe
于是,本发明实施例中就可以记录如下日志:
Write:%InstallLocation%\1.exe
Write:%InstallLocation%\2.exe
Write:%InstallLocation%\3.exe
Write:%InstallLocation%\4.exe
Write:%InstallLocation%\uninstall.exe
Write:%InstallLocation%\..\5.exe
(%InstallLocation%指的是软件安装目录)
110.exe对如下注册表进行修改
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run\
将其中的test项的值由“1”写为“2”。
于是,本发明实施例可以记录如下日志:
WriteReg:HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run\,test,1
另外,110.exe还新增了如下注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\110
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\110\UninstallString
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\110\InstallLocation
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\110\DisplayName
....
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\120\DisplayName2
于是本发明实施例可以提取其创建的注册表项(注册表中的“目录”)
记录如下:
CreateReg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\110,xiang
提取到一个独立的键(注册表中的“文件”):
CreateReg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\120\DisplayName2,jian
假设后续用户执行了卸载该应用程序的操作,则可能存在以下两种情况:
情况一:软件卸载器被破坏,无法完成卸载。也即该应用程序的uninstall.exe文件被删除或破坏,用户点击卸载后,会发现启动该卸载器失败,此时,可以向用户显示:“安装回滚”等提示信息。如果用户选择需要安装回滚,则可以进行以下操作:
提取日志:
CreateReg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\110,xiang
CreateReg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\120\DisplayName2,jian
依据如上日志,删除以下注册表项:“HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\110”
并删除以下注册表键:“HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\120\DisplayName2”
提取日志:
WriteReg:HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run\,test,1
依据如上日志
将以下注册表项:“HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run”下的“test”键值修改为“1”。
提取日志:
Write:%InstallLocation%\1.exe
Write:%InstallLocation%\2.exe
Write:%InstallLocation%\3.exe
Write:%InstallLocation%\4.exe
Write:%InstallLocation%\uninstall.exe
Write:%InstallLocation%\..\5.exe
依据如上日志:
删除安装目录下的以下文件:
1.exe,2.exe,3.exe,4.exe,uninstall.exe
删除安装目录的同级文件:
5.exe
最后向用户显示:安装回滚完成!
情况二:卸载后残留。也即卸载器调用成功,假设其卸载器删除了以下文件:
1.exe,2.exe,3.exe,4.exe,uninstall.exe
并删除了如下注册表项:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\110
之后卸载器进程退出.
则本发明实施例可以执行如下操作:
提取日志:
Write:%InstallLocation%\1.exe
Write:%InstallLocation%\2.exe
Write:%InstallLocation%\3.exe
Write:%InstallLocation%\4.exe
Write:%InstallLocation%\uninstall.exe
Write:%InstallLocation%\..\5.exe
扫描后得到结果:
..\5.exe残留
提取日志:
CreateReg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\110,xiang
CreateReg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\120\DisplayName2,jian
扫描后得到结果:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\120\DisplayName2残留
提取日志:
WriteReg:HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run\,test,1
依据如上日志
发现该值不为1
此时显示“精准清扫”等提示信息,如果用户需要执行该操作,则可以执行以下步骤:
将..\5.exe文件删除
将
“HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\120\DisplayName2”注册表键删除
将
“HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run\test”注册表键的值修改为:1
与本发明实施例提供的卸载应用程序的方法相对应,本发明实施例还提供了一种卸载应用程序的装置,参见图2,该装置可以包括:
信息获取单元201,用于获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息;
信息保存单元202,用于将获取到的文件的路径信息以及修改信息保存为日志文件;
删除及还原单元203,用于在需要对所述应用程序进行卸载时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
其中,在一种情况下,所述删除及还原单元可以包括:
判断子单元,用于当按照常规方式对所述应用程序卸载完毕后,根据所述日志文件,判断***中是否存在关于该应用程序的残留信息;
彻底清扫子单元,用于如果存在,则根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
或者,在另一种情况下,所述删除及还原单元可以包括:
回滚子单元,用于当按照常规的方式对所述应用程序卸载失败时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
具体实现时,所述信息获取单元201可以包括:
读取子单元,用于通过读取主动防御***在应用程序安装过程中记录的日志,获取所述应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息。
或者,在另一种实现方式下,所述信息获取单元201也可以包括:
监控子单元,用于通过对应用程序安装过程的文件释放事件以及对注册表项进行修改的事件进行监控,获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息。
为了降低对正在安装的应用程序造成的影响,所述信息保存单元202具体可以包括:
内存保存子单元,用于在应用程序安装过程中,将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息保存到内存中;
硬盘写入子单元,用于在所述应用程序安装结束后,将内存中记录的数据以及应用程序的标识信息对应保存到硬盘中生成日志文件。
其中,内存保存子单元具体可以用于:
将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息传给指定的监控进程,以便监控进程在得到数据后记录到内存中。
或者,所述内存保存子单元具体用于:
当监控到释放文件的事件时,将所释放的文件的路径信息传给指定的监控进程;当监控到修改注册表项的事件时,将被修改的注册表项的相关信息传给指定的监控进程;所述被修改的注册表项的相关信息包括:注册表项的路径、修改后的值、修改操作的类型
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的卸载应用程序的设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明还公开了A1、一种卸载应用程序的方法,包括:
获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息;
将获取到的文件的路径信息以及修改信息保存为日志文件;
在需要对所述应用程序进行卸载时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
A2、如A1所述的方法,所述在需要对所述应用程序进行卸载时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态,包括:
当按照常规方式对所述应用程序卸载完毕后,根据所述日志文件,判断***中是否存在关于该应用程序的残留信息;
如果存在,则根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
A3、如A1所述的方法,所述在需要对所述应用程序进行卸载时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态,包括:
当按照常规的方式对所述应用程序卸载失败时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
A4、如A1所述的方法,所述获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息包括:
通过读取主动防御***在应用程序安装过程中记录的日志,获取所述应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息。
A5、如A1所述的方法,所述获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息包括:
通过对应用程序安装过程的文件释放事件以及对注册表项进行修改的事件进行监控,获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息。
A6、如A5所述的方法,所述将获取到的文件的路径信息以及修改信息保存为日志文件包括:
在应用程序安装过程中,将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息保存到内存中;
在所述应用程序安装结束后,将内存中记录的数据以及应用程序的标识信息对应保存到硬盘中生成日志文件。
A7、如A6所述的方法,所述将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息保存到内存中包括:
将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息传给指定的监控进程,以便监控进程在得到数据后记录到内存中。
A8、如A6所述的方法,所述将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息传给指定的监控进程包括:
当监控到释放文件的事件时,将所释放的文件的的路径信息传给指定的监控进程;
当监控到修改注册表项的事件时,将被修改的注册表项的相关信息传给指定的监控进程;所述被修改的注册表项的相关信息包括:注册表项的路径、修改后的值、修改操作的类型。
本发明还公开了B9、一种卸载应用程序的装置,包括:
信息获取单元,用于获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息;
信息保存单元,用于将获取到的文件的路径信息以及修改信息保存为日志文件;
删除及还原单元,用于在需要对所述应用程序进行卸载时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
B10、如B9所述的装置,所述删除及还原单元包括:
判断子单元,用于当按照常规方式对所述应用程序卸载完毕后,根据所述日志文件,判断***中是否存在关于该应用程序的残留信息;
彻底清扫子单元,用于如果存在,则根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
B11、如B9所述的装置,所述删除及还原单元包括:
回滚子单元,用于当按照常规的方式对所述应用程序卸载失败时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
B12、如B9所述的装置,所述信息获取单元包括:
读取子单元,用于通过读取主动防御***在应用程序安装过程中记录的日志,获取所述应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息。
B13、如B9所述的装置,所述信息获取单元包括:
监控子单元,用于通过对应用程序安装过程的文件释放事件以及对注册表项进行修改的事件进行监控,获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息。
B14、如B13所述的装置,所述信息保存单元包括:
内存保存子单元,用于在应用程序安装过程中,将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息保存到内存中;
硬盘写入子单元,用于在所述应用程序安装结束后,将内存中记录的数据以及应用程序的标识信息对应保存到硬盘中生成日志文件。
B15、如B14所述的装置,所述内存保存子单元具体用于:
将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息传给指定的监控进程,以便监控进程在得到数据后记录到内存中。
B16、如B14所述的装置,所述内存保存子单元具体用于:
当监控到释放文件的事件时,将所释放的文件的路径信息传给指定的监控进程;当监控到修改注册表项的事件时,将被修改的注册表项的相关信息传给指定的监控进程;所述被修改的注册表项的相关信息包括:注册表项的路径、修改后的值、修改操作的类型。
Claims (10)
1.一种卸载应用程序的方法,包括:
获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息;
将获取到的文件的路径信息以及修改信息保存为日志文件;
在需要对所述应用程序进行卸载时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
2.如权利要求1所述的方法,所述在需要对所述应用程序进行卸载时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态,包括:
当按照常规方式对所述应用程序卸载完毕后,根据所述日志文件,判断***中是否存在关于该应用程序的残留信息;
如果存在,则根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
3.如权利要求1所述的方法,所述在需要对所述应用程序进行卸载时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态,包括:
当按照常规的方式对所述应用程序卸载失败时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
4.如权利要求1所述的方法,所述获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息包括:
通过读取主动防御***在应用程序安装过程中记录的日志,获取所述应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息。
5.如权利要求1所述的方法,所述获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息包括:
通过对应用程序安装过程的文件释放事件以及对注册表项进行修改的事件进行监控,获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息。
6.如权利要求5所述的方法,所述将获取到的文件的路径信息以及修改信息保存为日志文件包括:
在应用程序安装过程中,将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息保存到内存中;
在所述应用程序安装结束后,将内存中记录的数据以及应用程序的标识信息对应保存到硬盘中生成日志文件。
7.如权利要求6所述的方法,所述将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息保存到内存中包括:
将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息传给指定的监控进程,以便监控进程在得到数据后记录到内存中。
8.如权利要求6所述的方法,所述将通过监控获取到的应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息传给指定的监控进程包括:
当监控到释放文件的事件时,将所释放的文件的的路径信息传给指定的监控进程;
当监控到修改注册表项的事件时,将被修改的注册表项的相关信息传给指定的监控进程;所述被修改的注册表项的相关信息包括:注册表项的路径、修改后的值、修改操作的类型。
9.一种卸载应用程序的装置,包括:
信息获取单元,用于获取应用程序在安装过程中释放的文件的路径信息以及对注册表项执行的修改信息;
信息保存单元,用于将获取到的文件的路径信息以及修改信息保存为日志文件;
删除及还原单元,用于在需要对所述应用程序进行卸载时,根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
10.如权利要求9所述的装置,所述删除及还原单元包括:
判断子单元,用于当按照常规方式对所述应用程序卸载完毕后,根据所述日志文件,判断***中是否存在关于该应用程序的残留信息;
彻底清扫子单元,用于如果存在,则根据所述日志文件,将该应用程序安装过程中释放的文件删除,并将相关的注册表项还原到修改前的状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102869411A CN103345411A (zh) | 2013-07-09 | 2013-07-09 | 卸载应用程序的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102869411A CN103345411A (zh) | 2013-07-09 | 2013-07-09 | 卸载应用程序的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103345411A true CN103345411A (zh) | 2013-10-09 |
Family
ID=49280209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013102869411A Pending CN103345411A (zh) | 2013-07-09 | 2013-07-09 | 卸载应用程序的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103345411A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761178A (zh) * | 2014-01-17 | 2014-04-30 | 北京奇虎科技有限公司 | 一种实现应用卸载调查的方法 |
CN103838601A (zh) * | 2013-11-29 | 2014-06-04 | 北京奇虎科技有限公司 | 一种垃圾数据清理方法和装置 |
CN104200159A (zh) * | 2014-09-05 | 2014-12-10 | 北京奇虎科技有限公司 | 配置应用程序的权限的方法及装置 |
CN104376257A (zh) * | 2014-12-12 | 2015-02-25 | 北京奇虎科技有限公司 | 应用程序自我保护、主动防御方法与装置 |
CN104536792A (zh) * | 2014-12-30 | 2015-04-22 | 北京奇虎科技有限公司 | 清除应用程序残留文件的方法及装置 |
CN105278925A (zh) * | 2014-06-05 | 2016-01-27 | 腾讯科技(深圳)有限公司 | 对卸载的软件进行垃圾清除的方法及装置 |
CN104035858B (zh) * | 2014-06-27 | 2017-06-09 | 珠海市君天电子科技有限公司 | 一种监控软件的方法、通信终端及服务器 |
CN108170854A (zh) * | 2018-01-19 | 2018-06-15 | 广东欧珀移动通信有限公司 | 文件清理方法、装置、存储介质及移动终端 |
CN108228265A (zh) * | 2016-12-14 | 2018-06-29 | 北京国双科技有限公司 | 应用程序管理方法及装置 |
CN109683922A (zh) * | 2014-12-05 | 2019-04-26 | 北京奇虎科技有限公司 | 卸载破解版应用程序的方法及装置 |
CN112162763A (zh) * | 2020-10-22 | 2021-01-01 | 北京北信源软件股份有限公司 | 一种静默卸载软件的方法及装置 |
CN112416379A (zh) * | 2021-01-21 | 2021-02-26 | 统信软件技术有限公司 | 一种应用程序安装方法、装置、计算设备及可读存储介质 |
CN112698849A (zh) * | 2021-03-24 | 2021-04-23 | 北京海誉动想科技股份有限公司 | 基于云游戏的清除用户存档的方法与装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040250265A1 (en) * | 2003-03-25 | 2004-12-09 | Brother Kogyo Kabushiki Kaisha | Uninstall system |
CN1567248A (zh) * | 2003-07-01 | 2005-01-19 | 华为技术有限公司 | 应用程序日志记录方法及*** |
CN102043655A (zh) * | 2011-01-04 | 2011-05-04 | 奇智软件(北京)有限公司 | 一种强力卸载软件的方法及*** |
CN102508765A (zh) * | 2011-11-17 | 2012-06-20 | 深圳市中兴移动通信有限公司 | 一种通过进程间通信实现软件日志实时监控的方法 |
CN102662667A (zh) * | 2012-03-31 | 2012-09-12 | 奇智软件(北京)有限公司 | 一种软件卸载方法及装置 |
CN102929186A (zh) * | 2012-09-14 | 2013-02-13 | 北京科技大学 | 一种模型***与Web监控画面的数据通信实现方法 |
-
2013
- 2013-07-09 CN CN2013102869411A patent/CN103345411A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040250265A1 (en) * | 2003-03-25 | 2004-12-09 | Brother Kogyo Kabushiki Kaisha | Uninstall system |
CN1567248A (zh) * | 2003-07-01 | 2005-01-19 | 华为技术有限公司 | 应用程序日志记录方法及*** |
CN102043655A (zh) * | 2011-01-04 | 2011-05-04 | 奇智软件(北京)有限公司 | 一种强力卸载软件的方法及*** |
CN102508765A (zh) * | 2011-11-17 | 2012-06-20 | 深圳市中兴移动通信有限公司 | 一种通过进程间通信实现软件日志实时监控的方法 |
CN102662667A (zh) * | 2012-03-31 | 2012-09-12 | 奇智软件(北京)有限公司 | 一种软件卸载方法及装置 |
CN102929186A (zh) * | 2012-09-14 | 2013-02-13 | 北京科技大学 | 一种模型***与Web监控画面的数据通信实现方法 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838601A (zh) * | 2013-11-29 | 2014-06-04 | 北京奇虎科技有限公司 | 一种垃圾数据清理方法和装置 |
CN103838601B (zh) * | 2013-11-29 | 2017-04-19 | 北京奇虎科技有限公司 | 一种垃圾数据清理方法和装置 |
CN103761178A (zh) * | 2014-01-17 | 2014-04-30 | 北京奇虎科技有限公司 | 一种实现应用卸载调查的方法 |
CN105278925A (zh) * | 2014-06-05 | 2016-01-27 | 腾讯科技(深圳)有限公司 | 对卸载的软件进行垃圾清除的方法及装置 |
CN104035858B (zh) * | 2014-06-27 | 2017-06-09 | 珠海市君天电子科技有限公司 | 一种监控软件的方法、通信终端及服务器 |
CN104200159A (zh) * | 2014-09-05 | 2014-12-10 | 北京奇虎科技有限公司 | 配置应用程序的权限的方法及装置 |
CN104200159B (zh) * | 2014-09-05 | 2017-07-28 | 北京奇虎科技有限公司 | 配置应用程序的权限的方法及装置 |
CN109683922A (zh) * | 2014-12-05 | 2019-04-26 | 北京奇虎科技有限公司 | 卸载破解版应用程序的方法及装置 |
CN104376257B (zh) * | 2014-12-12 | 2017-10-20 | 北京奇虎科技有限公司 | 应用程序自我保护、主动防御方法与装置 |
CN104376257A (zh) * | 2014-12-12 | 2015-02-25 | 北京奇虎科技有限公司 | 应用程序自我保护、主动防御方法与装置 |
CN104536792A (zh) * | 2014-12-30 | 2015-04-22 | 北京奇虎科技有限公司 | 清除应用程序残留文件的方法及装置 |
CN108228265A (zh) * | 2016-12-14 | 2018-06-29 | 北京国双科技有限公司 | 应用程序管理方法及装置 |
CN108170854A (zh) * | 2018-01-19 | 2018-06-15 | 广东欧珀移动通信有限公司 | 文件清理方法、装置、存储介质及移动终端 |
CN112162763A (zh) * | 2020-10-22 | 2021-01-01 | 北京北信源软件股份有限公司 | 一种静默卸载软件的方法及装置 |
CN112162763B (zh) * | 2020-10-22 | 2024-06-07 | 北京北信源软件股份有限公司 | 一种静默卸载软件的方法及装置 |
CN112416379A (zh) * | 2021-01-21 | 2021-02-26 | 统信软件技术有限公司 | 一种应用程序安装方法、装置、计算设备及可读存储介质 |
CN112416379B (zh) * | 2021-01-21 | 2021-06-01 | 统信软件技术有限公司 | 一种应用程序安装方法、装置、计算设备及可读存储介质 |
WO2022156277A1 (zh) * | 2021-01-21 | 2022-07-28 | 统信软件技术有限公司 | 一种应用程序安装方法、装置、计算设备及可读存储介质 |
CN112698849A (zh) * | 2021-03-24 | 2021-04-23 | 北京海誉动想科技股份有限公司 | 基于云游戏的清除用户存档的方法与装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103345411A (zh) | 卸载应用程序的方法及装置 | |
US7774636B2 (en) | Method and system for kernel panic recovery | |
EP1915680B1 (en) | Archiving data in a virtual application environment | |
US7814476B2 (en) | Systems and methods for updating software | |
US7028305B2 (en) | Operating system abstraction and protection layer | |
US10353636B2 (en) | Write filter with dynamically expandable overlay | |
US20110041124A1 (en) | Version Management System | |
CN104008340A (zh) | 病毒查杀方法及装置 | |
CN104793946A (zh) | 基于云计算平台的应用部署方法和*** | |
CN101981550B (zh) | 数据库***、数据库更新方法、数据库以及数据库更新程序 | |
CN102999343A (zh) | 禁止启动项目自启动的方法和装置 | |
CN103617057A (zh) | 安装应用程序的方法及装置 | |
JP2014503895A (ja) | システム・リセット | |
US8041676B2 (en) | Backup and restore of file system objects of unknown type | |
CN103631603A (zh) | 软件清理方法和*** | |
KR20110136639A (ko) | 스냅샷 이미지의 동기화 장치 및 방법 | |
CN106095621A (zh) | 一种安卓***中Launcher运行异常的恢复方法及*** | |
US9003396B2 (en) | File manager integration of uninstallation feature | |
US9507657B2 (en) | Investigation program, information processing apparatus, and information processing method | |
CN103677931A (zh) | 一种软件搬家的方法及装置 | |
US9619340B1 (en) | Disaster recovery on dissimilar hardware | |
US8806477B2 (en) | Space efficient software package management | |
US20120222023A1 (en) | Automatic runtime dependency lookup | |
CN113032183A (zh) | ***管理方法、装置、计算机设备和存储介质 | |
CN112631621A (zh) | 一种依赖包管理方法、装置、服务器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination |