[發明專利]熱補丁方法及裝置有效
| 申請號: | 201210018144.0 | 申請日: | 2012-01-19 |
| 公開(公告)號: | CN102609241B | 公開(公告)日: | 2018-04-27 |
| 發明(設計)人: | 朱明星;阮芳芳 | 申請(專利權)人: | 中興通訊股份有限公司 |
| 主分類號: | G06F9/32 | 分類號: | G06F9/32 |
| 代理公司: | 北京康信知識產權代理有限責任公司11240 | 代理人: | 余剛,梁麗超 |
| 地址: | 518057 廣*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 補丁 方法 裝置 | ||
1.一種熱補丁方法,其特征在于包括:
確定調用指令與補丁函數之間的距離超過短跳轉指令能夠跳轉的范圍;
將所述調用指令替換為帶索引值的非法指令,其中所述索引值對應于所述補丁函數;
將所述調用指令替換為帶索引值的非法指令包括:確定用于執行所述替換操作的指令屬于長跳轉指令;獲取所述用于執行所述替換操作的指令中的用于控制PC指針轉移過程的指令;將所述用于控制PC指針轉移過程的指令替換為帶索引值的非法指令。
2.根據權利要求1所述的方法,其特征在于,獲取所述用于執行所述替換操作的指令中的用于控制PC指針轉移過程的指令包括:在所述用于執行所述替換操作的指令中搜索長跳轉指令,得到所述用于控制PC指針轉移過程的指令。
3.根據權利要求1所述的方法,其特征在于,在將所述調用指令替換為帶索引值的非法指令之前,還包括:
確定被補丁函數是靜態函數;
確定所述被補丁函數所屬的文件;
在所述文件中,執行將所述調用指令替換為帶索引值的非法指令的操作。
4.根據權利要求3所述的方法,其特征在于,確定所述被補丁函數所屬的文件包括:
在映像文件的符號表中查找所述被補丁函數所屬的文件的符號;
遍歷所述符號表,查找與所述符號的名稱相同的符號;
記錄查找到的所述符號在所述符號表中的下標。
5.根據權利要求1至4中任一項所述的方法,其特征在于,在將所述調用指令替換為帶索引值的非法指令之后,還包括:
目標機接收到替換后的所述調用指令;
所述目標機在執行與所述非法指令對應的異常處理函數的過程中,根據所述索引值獲取所述補丁函數的地址;
所述目標機將所述異常處理函數的返回地址修改為所述補丁函數地址。
6.一種熱補丁裝置,其特征在于包括:
第一確定模塊,用于確定調用指令與補丁函數之間的距離超過短跳轉指令能夠跳轉的范圍;
替換模塊,用于將所述調用指令替換為帶索引值的非法指令,其中所述索引值對應于所述補丁函數;
所述替換模塊包括:確定子模塊,用于確定用于執行所述替換操作的指令屬于長跳轉指令;獲取子模塊,用于獲取所述用于執行所述替換操作的指令中的用于控制PC指針轉移過程的指令;替換子模塊,用于將所述用于控制PC指針轉移過程的指令替換為帶索引值的非法指令。
7.根據權利要求6所述的裝置,其特征在于,所述獲取子模塊包括:搜索單元,用于在所述用于執行所述替換操作的指令中搜索長跳轉指令,得到所述用于控制PC指針轉移過程的指令。
8.根據權利要求6所述的裝置,其特征在于,所述裝置還包括:
第二確定模塊,用于確定被補丁函數是靜態函數;
第三確定模塊,用于確定所述被補丁函數所屬的文件。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中興通訊股份有限公司,未經中興通訊股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210018144.0/1.html,轉載請聲明來源鉆瓜專利網。





