[發明專利]一種動態補丁函數的方法及裝置有效
| 申請號: | 201310385256.4 | 申請日: | 2013-08-29 |
| 公開(公告)號: | CN104424037B | 公開(公告)日: | 2018-12-14 |
| 發明(設計)人: | 尹峰;朱明星 | 申請(專利權)人: | 中興通訊股份有限公司 |
| 主分類號: | G06F11/00 | 分類號: | G06F11/00;G06F9/32 |
| 代理公司: | 工業和信息化部電子專利中心 11010 | 代理人: | 梁軍 |
| 地址: | 518057 廣東省深圳市南山*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 動態 補丁 函數 方法 裝置 | ||
本發明公開了一種動態補丁函數的方法及裝置,其中,該方法包括:根據當前運行任務的預先標記將已修改的被補丁函數起始指令處的N條長跳轉指令恢復成被補丁函數的原有指令,其中,N為大于等于3的整數;在當前任務退出運行時,將起始指令開始處的N條原有指令修改為長跳轉指令,以動態補丁函數。通過運用本發明,在任務得到運行時根據需要先將已修改的被補丁函數起始指令處的N條長跳轉指令恢復成被補丁函數的原有指令,在任務退出運行時再將起始指令開始處的N條原有指令修改為長跳轉指令,完成了補丁函數的替換,實現函數的動態補丁,解決了在被補丁函數的起始指令被修改成長跳轉指令后,修改后的系統可能無法正常運行的問題。
技術領域
本發明涉及通訊領域,特別是涉及一種動態補丁函數的方法及裝置。
背景技術
軟件補丁一般是為了修改現有軟件系統某些功能或糾正現有軟件系統某些故障而發布的獨立的軟件單元。軟件動態補丁升級技術能在不影響系統正常運行的情況下完成對系統功能或故障的修復,一般是將現有系統中正在運行的函數替換成補丁函數,從而改變了函數的功能。
在嵌入式系統中,動態補丁升級的技術雖然有多種實現方案,總結起來主要包括以下幾個關鍵步驟:
1、在后臺(一般是個人計算機)重新編寫、編譯補丁函數funcA,生成補丁文件fileB。
2、將補丁文件fileB下載到前臺目標機中。
3、前臺目標機中升級服務模塊解析補丁文件,獲取補丁函數funcA和被補丁函數funcC在內存中的地址。
4、修改被補丁函數funcC首指令為跳轉指令,跳轉到補丁函數funcA。
這樣,調用函數funcC時,由于funcC的起始指令是一個跳轉指令,于是直接跳轉到函數funcA中去執行,返回時直接返回到調用函數funcC的下一條指令處,從而達到函數funcA取代函數funcC的目的。
如果補丁函數funcA和被補丁函數funcC在內存中的相對地址較小位于短跳轉地址范圍內,使用短跳轉就能實現動態補丁升級。但是隨著軟件規模的不斷增大,當版本的映像文件的代碼段和數據段的大小超過短跳轉地址范圍時, 補丁函數和被補丁函數在內存中的相對距離也超過短跳轉地址范圍時,使用短跳轉就無法實現了。
現有技術長跳轉指令至少要用三條指令來完成,如果被補丁函數的起始指令被修改成長跳轉指令,也就至少要修改從被補丁函數起始指令開始處的三條指令,就會出現如下幾種情況:
1.正好有任務A的程序計數器(Program Counter,簡稱為PC)指針位于被補丁函數的起始第二條或第三條指令處,則當任務A再次得到調度運行時將會產生不可預知的后果。2.任務B的PC指針位于被補丁函數的起始第一條指令處,則任務B再次得到調度運行時能正常執行補丁函數。3.任務C的PC指針位于被補丁函數的未被修改的指令處,則任務C再次得到調度運行時能正常執行被補丁函數。
基于上述過程可以看出,現有技術在被補丁函數的起始指令被修改成長跳轉指令后,沒有一種能夠保證修改后的系統正常運行的方法。
發明內容
本發明提供了一種動態補丁函數的方法及裝置,用以解決現有技術在被補丁函數的起始指令被修改成長跳轉指令后,修改后的系統可能無法正常運行的問題。
為解決上述技術問題,一方面,本發明提供一種動態補丁函數的方法,包括:根據當前運行任務的預先標記將已修改的被補丁函數起始指令處的N條長跳轉指令恢復成所述被補丁函數的原有指令,其中,所述N為大于等于3的整數;在當前任務退出運行時,將所述起始指令開始處的N條所述原有指令修改為長跳轉指令,以動態補丁函數。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中興通訊股份有限公司,未經中興通訊股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310385256.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種NVRAM數據恢復方法和裝置
- 下一篇:一種應用系統內嵌腳本的方法和裝置





