首先声明, 本帖为 iceboy[366tian] 原创. 转载请注明出处, 谢谢合作.
中天、比特均通过修改 Hosts 文件实现瑞星升级, 剑盟则是通过设置代理服务器实现. 大概的过程就是让瑞星的智能升级程序连接到非官
方服务器。正如比特网 abcbit 所言:“虽然修改hosts仅仅是一小步,但是幕后的工作确是一大步。”
有很多网友问关于瑞星升级的原理, 网上也出现了许多解释, 我写本文的目的只是为了把这个过程说得更具体。仅属个人意见, 供大家参
考, 可能会有些错误。
瑞星智能升级程序 (Smartup.exe) 启动的时候, 首先连接以下地址检测最新版本:
http://update.rising.com.cn/register/pcver/autoupgradepad/ver2006/newver.asp 大家用 IE 打开, 出现的是“无法找到网页”, 这是因为瑞星是通过 HTTP 协议的 Loacation Header 传输数据的, 大家可以查阅有关
HTTP 协议的文章来了解相关知识。瑞星网站的返回信息是这样的 (假设最新版本为 18.25.20):
HTTP/1.1 302 Object moved
...... (此处省略)
Location: 18.25.20
...... (此处省略)
当瑞星确认最新版本和本机安装版本不一样时, 便会进行下一步。这里有个有趣的事情, 就是不管最新版本比本机版本新还是旧, 瑞星都
会去“更新”, 瑞星这样做应该是为了避免版本格式的变动导致的不能更新。这也就是为什么瑞星服务器出问题的时候, 有些人会“升级到旧
版”。
第二步: 寻找验证服务器 (我认为此步纯属浪费网络带宽). 瑞星连接到以下地址:
http://update.rising.com.cn/register/PcVer/AutoUpgradePad/ver2006/PcVerLayerRequest.asp?Product=275775494&Ver=18.25.20 这串数字“275775494”表示 2006 单机版, 后面的 18.25.20 表示版本号。同样的, 返回信息通过 Location Header 传输。
在瑞星更新算法以前, 所有的连接都会被重定向到:
http://update.rising.com.cn/register/pcver/autoupgradePad/ver2006/PcVerRequestUpdate.asp 而在这之后, 这个文件被用来辨别版本, 如果在 18.24 或以前版本则还是这个地址, 18.24 之后则指向:
http://update.rising.com.cn/register/pcver/autoupgradePad/ver2006/PcVerRequestUpgrade.asp 这两个文件分别是瑞星的旧版和新版验证程序, 有兴趣的人可以自己研究, 天机在此, 不可泄露。
验证通过之后, 瑞星便会去连接这个文件:
http://download.rising.com.cn/register/pcver/AutoUpgradePad/pcver2006new/CompsVer18.24.42.inf 下载下来以后, 调用 RavCopy.exe 下载升级文件。
在这之后, 下载的文件全部都是从 download.
可见, 修改 update.rising.com.cn 的 Hosts 只会影响版本判断和验证过程, 对文件下载没有任何影响, 而修改代理服务器则是所有文件全部从非官方的服务器上下载。而一些瑞星升级程序则是跳过验证, 直接下载那个文件并运行 RavCopy.exe。