[发明专利]一种应用于Linux系统的热补丁方法和装置在审
申请号: | 202010507481.0 | 申请日: | 2020-06-05 |
公开(公告)号: | CN113760340A | 公开(公告)日: | 2021-12-07 |
发明(设计)人: | 张天洋;葛正中;李涛;林坤 | 申请(专利权)人: | 大唐移动通信设备有限公司 |
主分类号: | G06F8/70 | 分类号: | G06F8/70 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 刘冬亮 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用于 linux 系统 补丁 方法 装置 | ||
1.一种应用于Linux系统的热补丁方法,其特征在于,所述方法包括:
在目标代码中确定第一函数;
确定所述第一函数对应的第二函数;
根据所述第一函数以及所述第二函数,构建所述第一函数对应的结构体,所述结构体中包括所述第二函数的地址指针;
将所述结构体加入目标数组;
在所述目标代码中修改所述第一函数,修改后的第一函数中包括第一跳转指令和所述结构体在所述目标数组中的偏移量,所述第一跳转指令用于跳转至公共桩函数,所述公共桩函数用于依据所述偏移量确定所述第二函数的地址指针,并执行第二跳转指令,跳转至所述第二函数。
2.根据权利要求1所述的方法,其特征在于,所述在所述目标代码中修改所述第一函数之后,所述方法还包括:
执行所述目标代码;
当执行到所述目标代码中的所述修改后的第一函数时,响应于所述第一跳转指令,跳转至公共桩函数;
通过所述公共桩函数,基于所述偏移量,确定所述第二函数的地址指针;
根据所述地址指针,执行第二跳转指令,跳转至所述第二函数。
3.根据权利要求2所述的方法,其特征在于,所述基于所述偏移量,确定所述第二函数的地址指针,包括:
基于所述偏移量,在所述目标数组中读取所述第一函数对应的结构体;
从所述第一函数对应的结构体中,获取所述第二函数的地址指针。
4.根据权利要求2所述的方法,其特征在于,所述确定所述第一函数对应的第二函数,包括:
确定所述第一函数对应的多个第二函数;
所述根据所述第一函数以及所述第二函数,构建所述第一函数对应的结构体,包括:
根据所述第一函数以及所述多个第二函数,构建所述第一函数对应的多个结构体,每个结构体中包括对应的第二函数的地址指针;
所述将所述结构体加入目标数组,包括:
将所述第一函数对应的多个结构体加入目标数组;
所述基于所述偏移量,确定所述第二函数的地址指针,包括:
基于所述偏移量,在所述多个第二函数中确定目标第二函数的地址指针。
5.根据权利要求1所述的方法,其特征在于,所述在所述目标代码中修改所述第一函数之前,所述方法还包括:
获取所述第一函数对应内存的读写权限。
6.根据权利要求1所述的方法,其特征在于,所述Linux系统应用于5G基站设备。
7.一种应用于Linux系统的热补丁装置,其特征在于,所述装置包括:
第一确定模块,用于在目标代码中确定第一函数;
第二确定模块,用于确定所述第一函数对应的第二函数;
构建模块,用于根据所述第一函数以及所述第二函数,构建所述第一函数对应的结构体,所述结构体中包括所述第二函数的地址指针;
加入数组模块,用于将所述结构体加入目标数组;
修改模块,用于在所述目标代码中修改所述第一函数,修改后的第一函数中包括第一跳转指令和所述结构体在所述目标数组中的偏移量,所述第一跳转指令用于跳转至公共桩函数,所述公共桩函数用于依据所述偏移量确定所述第二函数的地址指针,并执行第二跳转指令,跳转至所述第二函数。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
执行模块,用于执行所述目标代码;
第一跳转模块,用于当执行到所述目标代码中的所述修改后的第一函数时,响应于所述第一跳转指令,跳转至公共桩函数;
第三确定模块,用于通过所述公共桩函数,基于所述偏移量,确定所述第二函数的地址指针;
第二跳转模块,用于根据所述地址指针,执行第二跳转指令,跳转至所述第二函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大唐移动通信设备有限公司,未经大唐移动通信设备有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010507481.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种小区共享频段分配方法和装置
- 下一篇:一种电子设备及其控制方法