一种热补丁管理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:26375289 阅读:24 留言:0更新日期:2020-11-19 23:43
本发明专利技术提供一种热补丁管理方法、装置、电子设备及存储介质。该方法包括:接收热补丁安装指令,获取对应的热补丁信息;确定热补丁信息对应的安装版本号、被补丁函数和替换指令;在存储的被补丁函数链表中查找到对应的被补丁函数节点后,获取以被补丁函数节点为链表头的热补丁函数链表;根据安装版本号按照热补丁版本顺序,在热补丁函数链表中构建热补丁信息对应的热补丁节点,在热补丁节点中保存热补丁信息对应的替换指令;获取热补丁函数链表中的最高热补丁版本对应的替换指令;将被补丁函数节点中的入口指令修改为最高热补丁版本对应的替换指令。本发明专利技术使得以任意顺序安装卸载补丁时仍然保证生效最新版本热补丁,提高了热补丁安装卸载效率。

【技术实现步骤摘要】
一种热补丁管理方法、装置、电子设备及存储介质
本专利技术实施例涉及通信
,具体涉及一种热补丁管理方法、装置、电子设备及存储介质。
技术介绍
热补丁能够在不需要重启当前运行系统的前提下修复软件漏洞,是一种快速、低成本修复产品软件版本缺陷的方式。热补丁(函数级)通常是通过将被替换函数(被补丁函数)的入口处指令修改为跳转到新函数(补丁函数)的指令实现。图1为函数级热补丁原理示意图,如图1所示,函数FuncA调用函数FuncB,被补丁函数为FuncB,补丁函数为FuncC,FuncC实质是包含修订后的FuncB的内容,通过将FuncB的入口处指令修改为跳转到FuncC的指令,并使得FuncC函数执行完成后返回到调用函数FuncA,即可达到函数级热补丁替换的目的。现有技术方案中,对被补丁业务侧的版本管理通常是升级控制端检测不同的版本情况,并控制升级顺序,每次安装新的热补丁后,优先生效新补丁中的补丁函数,同时提供机制能失效所有旧补丁。然而,由于需要被补丁业务侧控制升级顺序,若安装顺序与实际的热补丁版本顺序不一致,则最终生效的将不是最新版本的补丁,导致软件漏洞修复失败。
技术实现思路
针对现有技术中的缺陷,本专利技术实施例提供了一种热补丁管理方法、装置、电子设备及存储介质。第一方面,本专利技术实施例提供一种热补丁管理方法,包括:接收热补丁安装指令,获取所述安装指令对应的热补丁信息;确定所述热补丁信息对应的安装版本号、被补丁函数和替换指令;在存储的被补丁函数链表中查找到所述被补丁函数对应的被补丁函数节点后,获取以所述被补丁函数节点为链表头的热补丁函数链表;根据所述安装版本号按照热补丁版本顺序,在所述热补丁函数链表中构建所述热补丁信息对应的热补丁节点,在所述热补丁节点中保存所述热补丁信息对应的替换指令;获取所述热补丁函数链表中的最高热补丁版本对应的替换指令;将所述被补丁函数节点中的入口指令修改为所述最高热补丁版本对应的替换指令。如上述方法,可选地,还包括:若存储的被补丁函数链表中未查找到所述被补丁函数对应的被补丁函数节点,则在所述被补丁函数链表中构建所述被补丁函数对应的被补丁函数节点,在所述被补丁函数节点中存储所述被补丁函数的原始入口指令;以所述被补丁函数节点为链表头,构建热补丁函数链表,按照所述安装版本号在所述热补丁函数链表中构建热补丁节点,在所述热补丁节点中保存所述热补丁信息对应的替换指令;将所述被补丁函数节点中的原始入口指令修改为所述热补丁信息对应的替换指令。如上述方法,可选地,还包括:接收热补丁卸载指令,获取所述卸载指令对应的卸载版本号;在存储的所有热补丁函数链表中查找最高热补丁版本对应的热补丁节点,确定所述热补丁节点对应的最高热补丁版本号;若所述最高热补丁版本号与所述卸载版本号相同,则获取热补丁版本号低于所述最高热补丁版本的次高热补丁版本对应的替换指令,将所述热补丁节点对应的被补丁函数节点中的的入口指令修改为所述次高热补丁版本对应的替换指令,并删除所述热补丁节点。如上述方法,可选地,还包括:若无所述次高热补丁版本对应的热补丁节点,则将所述热补丁节点对应的被补丁函数节点中的的入口指令修改为原始入口指令,并删除所述最高热补丁版本对应的热补丁节点和所述被补丁函数节点。如上述方法,可选地,还包括:若所述最高热补丁版本号大于所述卸载版本号,则直接删除所述卸载版本号对应的热补丁节点。第二方面,本专利技术实施例提供一种热补丁管理装置,包括:安装模块,用于接收热补丁安装指令,获取所述安装指令对应的热补丁信息;预处理模块,用于确定所述热补丁信息对应的安装版本号、被补丁函数和替换指令;查找模块,用于在存储的被补丁函数链表中查找到所述被补丁函数对应的被补丁函数节点后,获取以所述被补丁函数节点为链表头的热补丁函数链表;构建模块,用于根据所述安装版本号按照热补丁版本顺序,在所述热补丁函数链表中构建所述热补丁信息对应的热补丁节点,在所述热补丁节点中保存所述热补丁信息对应的替换指令;获取模块,用于获取所述热补丁函数链表中的最高热补丁版本对应的替换指令;替换模块,用于将所述被补丁函数节点中的入口指令修改为所述最高热补丁版本对应的替换指令。如上述装置,可选地,所述构建模块还用于:若存储的被补丁函数链表中未查找到所述被补丁函数对应的被补丁函数节点,则在所述被补丁函数链表中构建所述被补丁函数对应的被补丁函数节点,在所述被补丁函数节点中存储所述被补丁函数的原始入口指令;以所述被补丁函数节点为链表头,构建热补丁函数链表,按照所述安装版本号在所述热补丁函数链表中构建热补丁节点,在所述热补丁节点中保存所述热补丁信息对应的替换指令;相应地,所述替换模块还用于:将所述被补丁函数节点中的原始入口指令修改为所述热补丁信息对应的替换指令。如上述装置,可选地,还包括:卸载模块,用于接收热补丁卸载指令,获取所述卸载指令对应的卸载版本号;最高版本确定模块,用于在存储的所有热补丁函数链表中查找最高热补丁版本对应的热补丁节点,确定所述热补丁节点对应的最高热补丁版本号;处理模块,用于若所述最高热补丁版本号与所述卸载版本号相同,则获取热补丁版本号低于所述最高热补丁版本的次高热补丁版本对应的替换指令,将所述热补丁节点对应的被补丁函数节点中的的入口指令修改为所述次高热补丁版本对应的替换指令,并删除所述热补丁节点。如上述装置,可选地,所述处理模块还用于:若无所述次高热补丁版本对应的热补丁节点,则将所述热补丁节点对应的被补丁函数节点中的的入口指令修改为原始入口指令,并删除所述最高热补丁版本对应的热补丁节点和所述被补丁函数节点。如上述装置,可选地,所述处理模块还用于:若所述最高热补丁版本号大于所述卸载版本号,则直接删除所述卸载版本号对应的热补丁节点。第三方面,本专利技术实施例提供一种电子设备,包括:存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:接收热补丁安装指令,获取所述安装指令对应的热补丁信息;确定所述热补丁信息对应的安装版本号、被补丁函数和替换指令;在存储的被补丁函数链表中查找到所述被补丁函数对应的被补丁函数节点后,获取以所述被补丁函数节点为链表头的热补丁函数链表;根据所述安装版本号按照热补丁版本顺序,在所述热补丁函数链表中构建所述热补丁信息对应的热补丁节点,在所述热补丁节点中保存所述热补丁信息对应的替换指令;获取所述热补丁函数链表中的最高热补丁版本对应的替换指令;将所述被补丁函数节点中的入口指令修改为所述最高热补丁版本对应的替换指令。第四方面,本专利技术实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如下方法:接收热补丁安装指令,获取所述安装指令对本文档来自技高网...

【技术保护点】
1.一种热补丁管理方法,其特征在于,包括:/n接收热补丁安装指令,获取所述安装指令对应的热补丁信息;/n确定所述热补丁信息对应的安装版本号、被补丁函数和替换指令;/n在存储的被补丁函数链表中查找到所述被补丁函数对应的被补丁函数节点后,获取以所述被补丁函数节点为链表头的热补丁函数链表;/n根据所述安装版本号按照热补丁版本顺序,在所述热补丁函数链表中构建所述热补丁信息对应的热补丁节点,在所述热补丁节点中保存所述热补丁信息对应的替换指令;/n获取所述热补丁函数链表中的最高热补丁版本对应的替换指令;/n将所述被补丁函数节点中的入口指令修改为所述最高热补丁版本对应的替换指令。/n

【技术特征摘要】
1.一种热补丁管理方法,其特征在于,包括:
接收热补丁安装指令,获取所述安装指令对应的热补丁信息;
确定所述热补丁信息对应的安装版本号、被补丁函数和替换指令;
在存储的被补丁函数链表中查找到所述被补丁函数对应的被补丁函数节点后,获取以所述被补丁函数节点为链表头的热补丁函数链表;
根据所述安装版本号按照热补丁版本顺序,在所述热补丁函数链表中构建所述热补丁信息对应的热补丁节点,在所述热补丁节点中保存所述热补丁信息对应的替换指令;
获取所述热补丁函数链表中的最高热补丁版本对应的替换指令;
将所述被补丁函数节点中的入口指令修改为所述最高热补丁版本对应的替换指令。


2.根据权利要求1所述的方法,其特征在于,还包括:
若存储的被补丁函数链表中未查找到所述被补丁函数对应的被补丁函数节点,则在所述被补丁函数链表中构建所述被补丁函数对应的被补丁函数节点,在所述被补丁函数节点中存储所述被补丁函数的原始入口指令;
以所述被补丁函数节点为链表头,构建热补丁函数链表,按照所述安装版本号在所述热补丁函数链表中构建热补丁节点,在所述热补丁节点中保存所述热补丁信息对应的替换指令;
将所述被补丁函数节点中的原始入口指令修改为所述热补丁信息对应的替换指令。


3.根据权利要求1或2所述的方法,其特征在于,还包括:
接收热补丁卸载指令,获取所述卸载指令对应的卸载版本号;
在存储的所有热补丁函数链表中查找最高热补丁版本对应的热补丁节点,确定所述热补丁节点对应的最高热补丁版本号;
若所述最高热补丁版本号与所述卸载版本号相同,则获取热补丁版本号低于所述最高热补丁版本的次高热补丁版本对应的替换指令,将所述热补丁节点对应的被补丁函数节点中的的入口指令修改为所述次高热补丁版本对应的替换指令,并删除所述热补丁节点。


4.根据权利要求3所述的方法,其特征在于,还包括:
若无所述次高热补丁版本对应的热补丁节点,则将所述热补丁节点对应的被补丁函数节点中的的入口指令修改为原始入口指令,并删除所述最高热补丁版本对应的热补丁节点和所述被补丁函数节点。


5.根据权利要求3所述的方法,其特征在于,还包括:
若所述最高热补丁版本号大于所述卸载版本号,则直接删除所述卸载版本号对应的热补丁节点。


6.一种热补丁管理装置,其特征在于,包括:
安装模块,用于接收热补丁安装指令,获取所述安装指令对应的热补丁信息;
预处理模块,用于确定所述热补丁信息对应的安装版本号、被补丁函数和替换指令;
查找模块,用于在存储的被补丁函数链表中查找到所述被补丁函数对应的被补丁函数节...

【专利技术属性】
技术研发人员:江信辉
申请(专利权)人:锐捷网络股份有限公司
类型:发明
国别省市:福建;35

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

1