[發明專利]一種不停服的熱更新方法在審
| 申請號: | 201811580208.X | 申請日: | 2018-12-24 |
| 公開(公告)號: | CN109840105A | 公開(公告)日: | 2019-06-04 |
| 發明(設計)人: | 何雪松 | 申請(專利權)人: | 蘇州蝸牛數字科技股份有限公司 |
| 主分類號: | G06F8/65 | 分類號: | G06F8/65 |
| 代理公司: | 北京德崇智捷知識產權代理有限公司 11467 | 代理人: | 王金雙 |
| 地址: | 215000 江蘇省*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 可執行文件 補丁 修復 業務功能控制 函數地址 函數替換 加載應用 偏移地址 游戲體驗 在線恢復 在線修復 基地址 熱補丁 原函數 原文件 更新 調用 服務器 中斷 創建 配合 | ||
1.一種不停服的熱更新方法,包括以下步驟:
將需要進行熱補丁的可執行文件靜態加載應用補丁庫;
修復可執行文件;
修復后的可執行文件調用創建補丁庫的接口,指明要修復的函數所在模塊、函數相對于模塊基地址的偏移地址以及新的函數地址;
使用補丁可執行文件中的新的函數替換原文件中的原函數。
2.根據權利要求1所述的不停服的熱更新方法,其特征在于,所述將需要進行熱補丁的可執行文件靜態加載應用補丁庫的步驟,進一步包括,加載應用補丁庫,生成的可執行文件;所述可執行文件,包括兩個預留的內存頁,分別為用于存放補丁數據的內存頁和用于存放補丁代碼的內存頁。
3.根據權利要求1所述的不停服的熱更新方法,其特征在于,所述修復可執行文件的步驟,進一步包括,在修復可執行文件時,添加一個與原函數簽名一致的新的函數,并在新的函數中修改存在的問題,新添加的函數編譯后存放在預留的代碼內存頁中。
4.根據權利要求1所述的不停服的熱更新方法,其特征在于,所述修復可執行文件的步驟,進一步包括,引入額外的全局變量,全局變量遵守與新的函數編寫相同的規則,并且全局變量存在放預留的數據內存頁中。
5.根據權利要求1所述的不停服的熱更新方法,其特征在于,所述修復后的可執行文件調用創建補丁庫的接口,指明要修復的函數所在模塊、函數相對于模塊基地址的偏移地址以及新的函數地址的步驟,進一步包括,
創建補丁庫并根據傳入的信息生成補丁文件,記錄所指明的信息,同時將預留的數據代碼頁和內存代碼頁的二進制數據存入補丁文件。
6.根據權利要求1所述的不停服的熱更新方法,其特征在于,所述使用補丁可執行文件中的新的函數替換原文件中的原函數的步驟,進一步包括,接收到需要應用補丁的指令后,調用應用補丁庫的接口加載生產的補丁文件,將其中內存頁和代碼頁裝載到自身預留的內存頁和代碼頁中,并解析其中的補丁信息,根據模塊信息和相對偏移地址,重新計算出被補丁函數的地址,并將被補丁函數修改為jump指令,使其跳轉到新的函數地址。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于蘇州蝸牛數字科技股份有限公司,未經蘇州蝸牛數字科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811580208.X/1.html,轉載請聲明來源鉆瓜專利網。





