[发明专利]补丁加载方法及装置有效
申请号: | 201410033575.3 | 申请日: | 2014-01-23 |
公开(公告)号: | CN103744709B | 公开(公告)日: | 2017-02-15 |
发明(设计)人: | 刘中柱 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京同立钧成知识产权代理有限公司11205 | 代理人: | 刘芳 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明实施例提供一种补丁加载方法及装置,该方法包括编译补丁代码生成可重定位的动态链接库,所述补丁代码为以补丁函数为单位的指令;解析包含所述补丁代码的补丁镜像文件,获取所述补丁镜像文件中的重定位函数信息,建立所述补丁镜像文件和目标进程的连接关系,所述目标进程为加载所述补丁代码后的应用程序在运行时所处的进程;根据所述补丁镜像文件和目标进程的连接关系,修改原有函数入口指令,跳转执行所述补丁函数。本发明实施例通过将补丁代码编译生成动态加载库的方式,实现同一补丁代码对多个版本应用程序的通用。 | ||
搜索关键词: | 补丁 加载 方法 装置 | ||
【主权项】:
一种补丁加载方法,其特征在于,包括:编译补丁代码生成可重定位的动态链接库,所述补丁代码为以补丁函数为单位的指令;解析包含所述补丁代码的补丁镜像文件,获取所述补丁镜像文件中的重定位函数信息,建立所述补丁镜像文件和目标进程的映射关系,所述目标进程为加载所述补丁代码后的应用程序在运行时所处的进程;根据所述补丁镜像文件和目标进程的映射关系,修改原有函数入口指令,跳转执行所述补丁函数;其中,所述根据所述补丁镜像文件和目标进程的映射关系,修改原有函数入口指令,跳转执行所述补丁函数,包括:在所述目标进程的符号表中,查找重定位函数名称和/或重定位全局变量名称;若确定所述重定位函数名称和所述重定位全局变量名称存在于所述目标进程中,则将其标记为目标进程内函数或目标进程内变量;将所述目标进程内函数和/或目标进程内变量从重定位段中移除,并调用系统的动态链接库加载函数重定位所述动态链接库中的符号;以及,根据所述补丁镜像文件的加载内存地址及所述目标进程内函数和所述目标进程内变量的相对地址,得到所述目标进程内函数和所述目标进程内变量的重定位地址并写入;修改所述原有函数的入口指令,跳转执行所述补丁函数。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410033575.3/,转载请声明来源钻瓜专利网。