欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

垃圾清理的背后 常见的清理软件解密

程序员文章站 2022-04-26 19:21:40
垃圾清理的背后 常见的清理软件解密本文为您解密清理软件是怎么运作的?... 15-05-22...

知己知彼,心里有底。我们不能轻易将命运交给清理软件,所以最好要搞清楚它们运行的原理,是怎么判断文件有用没用的,是怎么判断注册表项是无效的,等等。

软件清理垃圾的流程

这里以360安全卫士()为例。启动程序后切换到“一键清理”,选择需要扫描的项目,点击“一键清理”,程序开始扫描指定位置的文件,完成后会根据默认勾选的项,删除扫描到的垃圾文件(图1)。

垃圾清理的背后 常见的清理软件解密

图1 360安全卫士一键清理界面

从以上描述可以看到,垃圾文件清理一般流程是:设定扫描条件→扫描具体文件→根据勾选删除指定文件。其中最为核心的就是“设定扫描条件”,也就是如何判断垃圾文件,请看下文解析。

垃圾文件的判断标准

按照文件性质划分,垃圾文件主要有三大类:

第一类是电脑中无用的文件,比如回收站文件、看过的视频缓冲文件、上网产生的临时文件等。

第二类是电脑软件使用痕迹文件,比如word打开记录、上网浏览记录等。

第三类则是注册表中的多余项目,比如无效、错误的注册表项目等。垃圾清理软件也多是参照上述三大类文件来设定扫描条件。比如在金山卫士“垃圾清理”中,完成扫描后,程序会列出扫描到的垃圾文件(图2)。

垃圾清理的背后 常见的清理软件解密

图2 金山卫士扫描到的垃圾文件

1.电脑无用文件的判定

系统垃圾、上网残留垃圾、视频音乐垃圾等第一大类的垃圾文件,它们一般都有特定的文件扩展名,以“系统产生的垃圾/日志文件”为例,点击其后的“垃圾详情”,在打开的窗口可以看到,这里的垃圾文件大多是 “*.log”或者“*.tlg”文件,只是文件具体位置不同而已(图3)。

垃圾清理的背后 常见的清理软件解密

图3 垃圾日志文件类型

所以金山卫士()是根据文件后缀来判定文件是否是垃圾文件的,比如要判定并扫描腾讯产品日志垃圾文件,因为腾讯软件一般在“c:\users\当前用户\appdata\roaming\tencent\logs”下产生日志文件,因此垃圾清理软件软件开发者只要在程序中添加一行搜索上述目录“*.tlg”的代码,然后再添加一条“del *.tlg”删除指令,即可完成对腾讯产品日志垃圾文件的清理。

除了依靠文件扩展名外,还可以依靠指定目录来判断,比如windows 7的临时文件目录在%userprofile%\appdata\local\temp,清理软件只要设置一个删除该指定目录下的所有文件的命令就可以了。

2.电脑使用痕迹文件的判定

电脑使用痕迹文件主要是一些应用程序运行后留下的一些数据。判定标准与上文所述相似,也主要是依靠文件扩展名和特定目录来判断。比如ie的历史记录在“c:\users\当前用户\appdata\local\microsoft\windows\temporary internet files\content.ie5”下,清理软件中添加删除此目录下的所有文件就可以了(图4)。

垃圾清理的背后 常见的清理软件解密

图4 ie历史记录垃圾文件

3.注册表中的多余项目判定

注册表是windows运行的中枢,几乎系统中所有的操作都会在注册表中留下痕迹。因此时间长了以后,不可避免地会在注册表中留下大量的垃圾数据。清理软件又是如何来判别的呢?下面以文件打开方式多余键值为例。

默认情况下,当我们在系统中为特定类型的文件关联打开方式后,系统就会在注册表中生成相应的键值。比如在系统中安装了ghost explorer软件(假设程序名为ghostxp.exe),并将其作为.gho文件的打开程序,此时展开[hkey_current_user\software\microsoft\windows\currentversion\explorer\fileexts\.gho\openwithlist],右侧一个名为“a”的字符串值就被赋值为“ghostxp.exe”(图5)。

垃圾清理的背后 常见的清理软件解密

图5 文件打开方式赋值

但是一段时间后,我又将ghost explorer软件卸载了,如果这一关联键值未被清理,就会也为无效的键值了。清理软件根据默认注册表关联来判定的(比如文件打开方式关联的是上述指定位置键值),软件先通过扫描指定键值,然后将其和正常键值比对,如果不一致,则将其判定为多余键值,最后将其标记并删除即可(图6)。

垃圾清理的背后 常见的清理软件解密

图6 没有打开方式的文件类型会被扫描为“无效的文件类型记录”

垃圾清理按需而删

通过上面的介绍,可见垃圾文件一键清理实质上只是一个删除文件的批处理+gui外壳,它对于垃圾文件的判定,只是根据程序内置的预设标准进行机械判断,因此造成“误删”的功能性还是很大的。

比如网站的cookie文件,很多垃圾清理软件都判定为垃圾文件,对于隐私要求保护较高的用户,cookie文件容易泄露隐私,自然是绝对的垃圾文件。但是对于那些马大哈,如果他们经常要登录不同论坛、网站,cookie文件可以帮助他们记住不同的账户名称和密码,它不仅不是垃圾文件,而是很重要的密码记忆帮手。

总之,对于具体垃圾文件的清理,我们一定要根据自己的需求来选择性地删除。