一种应用于Linux系统的热补丁方法和装置制造方法及图纸

技术编号:31227400 阅读:23 留言:0更新日期:2021-12-08 09:36
本发明专利技术实施例提供了一种应用于Linux系统的热补丁方法和装置,其中的方法包括:在目标代码中确定第一函数;确定所述第一函数对应的第二函数;根据所述第一函数以及所述第二函数,构建所述第一函数对应的结构体,所述结构体中包括所述第二函数的地址指针;将所述结构体加入目标数组;在所述目标代码中修改所述第一函数,修改后的第一函数中包括第一跳转指令和所述结构体在所述目标数组中的偏移量,所述第一跳转指令用于跳转至公共桩函数,所述公共桩函数用于依据所述偏移量确定所述第二函数的地址指针,并执行第二跳转指令,跳转至所述第二函数。本发明专利技术实施例可以通过公共桩函数对所述热补丁行为进行实时的动态管理,以提高系统的安全性和稳定性。统的安全性和稳定性。统的安全性和稳定性。

【技术实现步骤摘要】
一种应用于Linux系统的热补丁方法和装置


[0001]本专利技术涉及通信
,尤其涉及一种应用于Linux系统的热补丁方法和装置。

技术介绍

[0002]随着通信技术的不断发展,通信系统中的软件也越来越复杂,通常一套通信系统由多个不同软件组成,以实现多样的功能,不同软件之间也可能具有复杂的层级结构。因此,针对所述通信系统在线进行功能修复、调试、以及故障定位等业务时,需要耗费大量的时间与精力。
[0003]现有技术中为了提高调试效率,缩短故障定位时间,通常会采用热补丁技术,所述热补丁是一种能够在不需要重启当前运行系统的情况下,对所述通信系统代码进行漏洞修复的一些代码。
[0004]但是,传统的热补丁技术通常采用直接函数地址替换的方式进行漏洞修复,所述替换过程管理混乱,且只能提供一对一的函数替换功能,因此,现有技术难以对多个函数的修复、调试以及故障定位业务进行统一管理,容易出现错误。

技术实现思路

[0005]本专利技术实施例提供一种应用于Linux系统的热补丁方法和装置,可以对热补丁行为进行实时的动态管理,以提高系统的安全性和稳定性。
[0006]本专利技术实施例提供了一种应用于Linux系统的热补丁方法,所述方法包括:
[0007]在目标代码中确定第一函数;
[0008]确定所述第一函数对应的第二函数;
[0009]根据所述第一函数以及所述第二函数,构建所述第一函数对应的结构体,所述结构体中包括所述第二函数的地址指针;
[0010]将所述结构体加入目标数组;
[0011]在所述目标代码中修改所述第一函数,修改后的第一函数中包括第一跳转指令和所述结构体在所述目标数组中的偏移量,所述第一跳转指令用于跳转至公共桩函数,所述公共桩函数用于依据所述偏移量确定所述第二函数的地址指针,并执行第二跳转指令,跳转至所述第二函数。
[0012]本专利技术实施例提供了一种应用于Linux系统的热补丁装置,所述装置包括:
[0013]第一确定模块,用于在目标代码中确定第一函数;
[0014]第二确定模块,用于确定所述第一函数对应的第二函数;
[0015]构建模块,用于根据所述第一函数以及所述第二函数,构建所述第一函数对应的结构体,所述结构体中包括所述第二函数的地址指针;
[0016]加入数组模块,用于将所述结构体加入目标数组;
[0017]修改模块,用于在所述目标代码中修改所述第一函数,修改后的第一函数中包括第一跳转指令和所述结构体在所述目标数组中的偏移量,所述第一跳转指令用于跳转至公
共桩函数,所述公共桩函数用于依据所述偏移量确定所述第二函数的地址指针,并执行第二跳转指令,跳转至所述第二函数。
[0018]本专利技术实施例包括以下优点:
[0019]本专利技术实施例能够根据所述第一函数以及所述第二函数,构建所述第一函数对应的结构体,将所述结构体加入目标数组,以获得所述第一函数对应的偏移量,所述公共桩函数依据所述偏移量确定所述第二函数的地址指针,并执行第二跳转指令,跳转至所述第二函数,从而利用所述第二函数对所述第一函数进行实时的热补丁行为。本专利技术实施例将直接的函数跳转方式修改为对公共桩函数的跳转,并且由公共桩函数对热补丁行为进行统一管理,可以提高热补丁操作的效率以及减少系统出错的概率,进而可以提高系统的安全性和稳定性。
附图说明
[0020]为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0021]图1示出了本专利技术的一种应用于Linux系统的热补丁方法实施例的流程图;
[0022]图2示出了本专利技术的一种应用于Linux系统的热补丁方法的流程示意图;
[0023]图3示出了本专利技术的一种应用于Linux系统的热补丁装置实施例的结构框图;
[0024]图4示出了本专利技术的一种电子设备的结构框图。
具体实施方式
[0025]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0026]方法实施例
[0027]参照图1,示出了本专利技术的一种应用于Linux系统的热补丁方法实施例一的流程图,具体可以包括:
[0028]步骤101,在目标代码中确定第一函数;
[0029]步骤102,确定所述第一函数对应的第二函数;
[0030]步骤103,根据所述第一函数以及所述第二函数,构建所述第一函数对应的结构体,所述结构体中包括所述第二函数的地址指针;
[0031]步骤104,将所述结构体加入目标数组;
[0032]步骤105,在所述目标代码中修改所述第一函数,修改后的第一函数中包括第一跳转指令和所述结构体在所述目标数组中的偏移量,所述第一跳转指令用于跳转至公共桩函数,所述公共桩函数用于依据所述偏移量确定所述第二函数的地址指针,并执行第二跳转指令,跳转至所述第二函数。
[0033]可选的,所述Linux系统应用于5G基站设备。
[0034]通常在所述5G基站设备的Linux系统中采用动态链接库的方式实现相应功能,具体的,所述动态链接库指能够为目标代码提供不属于所述目标代码可执行的函数,并供所述目标代码调用,以使所述Linux系统根据所述函数实现相应功能,如,所述Linux系统为了实现存储功能,可以在所述目标代码执行的过程中,通过调用动态链接库中的第一函数的方式,使所述Linux系统实现存储功能。因此,通过对所述第一函数执行热补丁行为,以解决对所述存储功能进行修复、调试以及故障定位的问题。
[0035]所述热补丁指将被打补丁的函数替换为补丁函数,以实现对所述Linux系统的相应功能进行修复、调试以及故障定位的一种技术。所述目标代码指在所述Linux系统中运行,并能够实现一系列相应功能的代码,如,通过执行所述目标代码能够使所述Linux系统实现对数据的逻辑计算和存储功能。
[0036]所述第一函数指所述Linux系统中需要被打补丁的函数,如,当目标代码执行到所述第一函数时,所述Linux系统能够实现对数据的存储功能。所述第二函数指所述Linux系统中的补丁函数,所述第二函数能够替换掉所述目标代码中的第一函数,如,所述第一函数能够实现对数据的逻辑A存储功能,所述第二函数能够实现对数据的逻辑B存储功能,当本领域技术人员需要在所述目标代码中将所述逻辑A存储功能修复为逻辑B存储功能时,可以通过将所述第一函数替换为第二函数的热补丁行为,实现对所述存储功能的修复。
[0037]在所述目标代码中确定第一函数,即,在所述目标代码中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用于Linux系统的热补丁方法,其特征在于,所述方法包括:在目标代码中确定第一函数;确定所述第一函数对应的第二函数;根据所述第一函数以及所述第二函数,构建所述第一函数对应的结构体,所述结构体中包括所述第二函数的地址指针;将所述结构体加入目标数组;在所述目标代码中修改所述第一函数,修改后的第一函数中包括第一跳转指令和所述结构体在所述目标数组中的偏移量,所述第一跳转指令用于跳转至公共桩函数,所述公共桩函数用于依据所述偏移量确定所述第二函数的地址指针,并执行第二跳转指令,跳转至所述第二函数。2.根据权利要求1所述的方法,其特征在于,所述在所述目标代码中修改所述第一函数之后,所述方法还包括:执行所述目标代码;当执行到所述目标代码中的所述修改后的第一函数时,响应于所述第一跳转指令,跳转至公共桩函数;通过所述公共桩函数,基于所述偏移量,确定所述第二函数的地址指针;根据所述地址指针,执行第二跳转指令,跳转至所述第二函数。3.根据权利要求2所述的方法,其特征在于,所述基于所述偏移量,确定所述第二函数的地址指针,包括:基于所述偏移量,在所述目标数组中读取所述第一函数对应的结构体;从所述第一函数对应的结构体中,获取所述第二函数的地址指针。4.根据权利要求2所述的方法,其特征在于,所述确定所述第一函数对应的第二函数,包括:确定所述第一函数对应的多个第二函数;所述根据所述第一函数以及所述第二函数,构建所述第一函数对应的结构体,包括:根据所述第一函数以及所述多个第二函数,构建所述第一函数对应的多个结构体,每个结构体中包括对应的第二函数的地址指针;所述将所述结构体加入目标数组,包括:将所述第一函数对应的多个结构体加入目标数组;所述基于所述偏移量,确定所述第二函数的地址指针,包括:基于所述偏移量,在所述多个第二函数中确定目标第二函数的地址指针。5.根据权利要求1所述的方法,其特征在于,所述在所述目标代码中修改所述第一函数之前,所述方法还包括:获取所述第一函数对应内存的读写权限。6.根据权利要求1所述的方法,其特征在于,所述Linux系统应用于5G基站设备。7.一种应用于Linux系统的热补丁装置,其特征在于,所述装置包括:第一确定模块,用于在目标代码中确定第一函数;第二确定模块,用于确定所述第一函数对应的第二函数;构建模块,用于根据所述第一函数以及所述第二函数,构建所述第一函数对应的结构<...

【专利技术属性】
技术研发人员:张天洋葛正中李涛林坤
申请(专利权)人:大唐移动通信设备有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1