论文部分内容阅读
使用过360安全卫士或者金山清理专家的人都会对“软件管理器”留下深刻的印象,最近腾讯也推出了自己的软件管理器。这些软件能自动搜索电脑中已经安装的软件,并检测它们是否要更新,并且可以一键安装需要的软件,十分方便,那它们是如何工作的呢?
追踪软件痕迹 清查“户口”
软件管理器首先要探寻已经安装好的软件有哪些,这是对已经发生的事情做清查了,这时软件管理器就好比是侦探,要找出电脑上存在的软件,就要通过线索来找,有了线索就可以顺藤摸瓜找到软件!下面看看都会有哪些可以利用的线索。
一般软件按照的默认目录都会是系统盘的Program Files目录,所以软件管理器首先就会搜索“C:\Program Files”这个目录来获取软件信息,但如果安装时修改了目录呢?那就要靠第二个线索——注册表了。
软件安装时为了记录自己的信息就会在[HKEY_LOCAL_MACHINE\Software]下添加键值(见图),以便实现很多功能,比如升级,备份配置、备份数据等。你可能会发现当安装某个软件的新版本时,软件管理器会自动找到旧版本的信息和配置,升级软件以后还能使用这些信息,这就是靠的注册表保存的信息。同样在[HKEY_LOCAL_MACHINE\Software\Micrsosoft\Windows\current version\uninstall]下面有这些软件的卸载程序。
有了这些信息,软件管理器管理软件就方便多了。结合上面两处线索,软件管理器就可以得到电脑上安装的软件信息,当然没有在这两处添加信息的绿色软件也就无法进入软件管理器的管辖范围了。
核对软件文件 判断“新旧”
得知软件信息后还有一个问题没有解决,如何能确定软件的真实性呢?万一是木马或是其他恶意程序伪造的呢?我们在背后还有一项内功——文件识别。每个文件都有大小、名称。而且对于软件发布来说,文件一定会随着某些版本发布出来。于是我们对这个文件记录一个摘要,这个摘要得到的是一个字符串,相当于这个文件的身份证。软件管理器先对软件文件做摘要(软件管理器会把常用软件文件的摘要放在本地,其他的保存在远程服务器),拿到这些摘要后会和自己所保存的该软件文件的摘要进行对比。如果相同,那么就能确定软件的版本,如果不同那么就可能是恶意伪装软件。管理器得到了版本信息后就会去网络服务器上查询有没有新的版本发布,如果有新的,就会及时通知我们该更新软件了。
小提示:
摘要的算法很多,比如常用的MD5、SHA1,算法的要求就是摘要结果不要容易碰撞且算起来比较快。MD5虽然已经能够破解也就是做出碰撞来,但其计算起来较快,在实际应用中还是很广泛的。
追踪软件痕迹 清查“户口”
软件管理器首先要探寻已经安装好的软件有哪些,这是对已经发生的事情做清查了,这时软件管理器就好比是侦探,要找出电脑上存在的软件,就要通过线索来找,有了线索就可以顺藤摸瓜找到软件!下面看看都会有哪些可以利用的线索。
一般软件按照的默认目录都会是系统盘的Program Files目录,所以软件管理器首先就会搜索“C:\Program Files”这个目录来获取软件信息,但如果安装时修改了目录呢?那就要靠第二个线索——注册表了。
软件安装时为了记录自己的信息就会在[HKEY_LOCAL_MACHINE\Software]下添加键值(见图),以便实现很多功能,比如升级,备份配置、备份数据等。你可能会发现当安装某个软件的新版本时,软件管理器会自动找到旧版本的信息和配置,升级软件以后还能使用这些信息,这就是靠的注册表保存的信息。同样在[HKEY_LOCAL_MACHINE\Software\Micrsosoft\Windows\current version\uninstall]下面有这些软件的卸载程序。
有了这些信息,软件管理器管理软件就方便多了。结合上面两处线索,软件管理器就可以得到电脑上安装的软件信息,当然没有在这两处添加信息的绿色软件也就无法进入软件管理器的管辖范围了。
核对软件文件 判断“新旧”
得知软件信息后还有一个问题没有解决,如何能确定软件的真实性呢?万一是木马或是其他恶意程序伪造的呢?我们在背后还有一项内功——文件识别。每个文件都有大小、名称。而且对于软件发布来说,文件一定会随着某些版本发布出来。于是我们对这个文件记录一个摘要,这个摘要得到的是一个字符串,相当于这个文件的身份证。软件管理器先对软件文件做摘要(软件管理器会把常用软件文件的摘要放在本地,其他的保存在远程服务器),拿到这些摘要后会和自己所保存的该软件文件的摘要进行对比。如果相同,那么就能确定软件的版本,如果不同那么就可能是恶意伪装软件。管理器得到了版本信息后就会去网络服务器上查询有没有新的版本发布,如果有新的,就会及时通知我们该更新软件了。
小提示:
摘要的算法很多,比如常用的MD5、SHA1,算法的要求就是摘要结果不要容易碰撞且算起来比较快。MD5虽然已经能够破解也就是做出碰撞来,但其计算起来较快,在实际应用中还是很广泛的。