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