本地掃描策略
- 註冊表:`HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall` 及 `HKCU` 對應項,讀取 `DisplayName`、`DisplayVersion`、`InstallLocation`、`UninstallString`。
- 安裝目錄特征文件:Program Files 下已知軟件的版本資源(`.exe` 版本信息)、配置文件(`config.ini`、`version.xml`)。
- 啟動項/服務/計劃任務:輔助發現無註冊表條目的綠色軟件。
- 特征碼匹配:對主流軟件維護指紋庫(路徑關鍵字、文件哈希、版本資源)。
雲端比對流程
- 客戶端上傳軟件列表(名稱+版本+路徑)到服務器。
- 服務器查詢自維護軟件庫(非官網實時抓取),返回 XML/JSON:
<soft name="Chrome" latest="120.0.6099.109" url="https://dl.xxx/chrome_install.exe" size="..." md5="..." />
- 客戶端比對版本號(語義化版本比較),提示更新。
- 用戶確認後,客戶端下載安裝包(多為管家服務器鏡像,保障帶速與安全),靜默安裝或喚起原安裝程序。
XML 作用
作為版本元數據交換格式,包含版本號、下載鏈接、MD5、更新日志、是否強制更新等字段,客戶端解析後決策 UI 展示與下載邏輯。
工程難點
- 海量軟件指紋庫維護(需專人跟進版本發布)。
- 版本號比較邏輯(如 `1.10` > `1.9`)。
- 靜默安裝參數收集(`/S`, `/quiet`, `/norestart` 等)。
- 權限提升(UAC)、殺毒軟件誤報、卸載殘留清理。