分析露水CG自動更新運作細節
發表於 : 2020-11-04, 05:55
工作原理
1.和服務器上的版本號比較如果不同則向用戶推送自動更新提示 並且從伺服器下載新CG(cg_up.pkt) 至使用者系統臨時目錄
2.運行bat指令操作已經下載好的臨時文件(拷貝) 當客戶端程式退出時(工作管理器中找不到程式自身)自動覆蓋舊版本CG程式(升級自己)
3.更新版本號訊息控制文件(version.txt)
4.更新後首次登入提示已升級成功的版本號訊息(由CG主程式提供該功能)
下為關鍵代碼段
我們可以把伺服器改寫成自己的伺服器網址由自己控制版本推送
這樣可以確保新版本的CG經過測試才推送給使用者
1.和服務器上的版本號比較如果不同則向用戶推送自動更新提示 並且從伺服器下載新CG(cg_up.pkt) 至使用者系統臨時目錄
2.運行bat指令操作已經下載好的臨時文件(拷貝) 當客戶端程式退出時(工作管理器中找不到程式自身)自動覆蓋舊版本CG程式(升級自己)
3.更新版本號訊息控制文件(version.txt)
4.更新後首次登入提示已升級成功的版本號訊息(由CG主程式提供該功能)
下為關鍵代碼段
代碼: 選擇全部
v1 = fsopen("update.bat", "w", 64);
if ( v1 )
{
v2 = sub_471E42(&Filename, &Filename, &Filename, &Filename, "version.txt", "version.txt");
fprintf(
v1,
":begin\n"
"tasklist|find /i \"%s\" && goto begin||goto end\n"
":end\n"
"if exist %s del %s\n"
"if exist cg_up.pkt copy cg_up.pkt %s\n"
"del cg_up.pkt\n"
"if exist %s del %s\n"
"del %%0 & taskkill /f /im cmd.exe\n",
v2);
dword_1756824 = 1;
fclose(v1);
}
return 0;
我們可以把伺服器改寫成自己的伺服器網址由自己控制版本推送
這樣可以確保新版本的CG經過測試才推送給使用者