[发明专利]热补丁方法及装置有效
申请号: | 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.vipzhuanli.com/pat/books/201210018144.0/1.html,转载请声明来源钻瓜专利网。