一种热补丁实现方法及装置、终端制造方法及图纸

技术编号:17615095 阅读:23 留言:0更新日期:2018-04-04 06:27
本发明专利技术实施例提供了一种热补丁实现方法及装置、终端;该方法包括:在接收到热补丁的执行指令后,确定热补丁的被执行对象;获取被执行对象的运行状态,运行状态用于判断被执行对象是否满足执行热补丁条件;在运行状态满足执行热补丁条件时,执行热补丁。本发明专利技术在执行热补丁之前,获取被补丁对象的运行状态,仅在运行状态满足执行条件时,执行热补丁,这样从根本上解决了现有热补丁实现方法不能完成消除发生异常的问题,增强了用户的使用体验。

A heat patch implementation method and device and terminal

The embodiment of the invention provides a method and a device, a hot patch terminal; the method comprises: receiving instructions hot patch after patch is performed to determine the thermal object; get the execution state of the object, the running state of object is executed for judging whether meet the hot patch in operation conditions; satisfy the hot patch conditions, hot patch. The present invention before performing a heat patch, get the running state of patch object, meet only in operation execution conditions, heat patches, which solves the existing hot patch implementation method can not complete elimination of abnormal problems fundamentally, to enhance the user experience.

【技术实现步骤摘要】
一种热补丁实现方法及装置、终端
本专利技术涉及热补丁领域,尤其涉及一种热补丁实现方法及装置、终端。
技术介绍
热补丁是一种能够在不需要重启当前运行系统的前提下修复软件漏洞的一些代码,是一种快速、低成本修复产品软件版本缺陷的方式。现有基于动态链接库的功能制作的热补丁,在补丁加载和卸载的过程中,将补丁内容以动态库的形式挂载或者卸载以后,就直接进行函数地址跳转的设置,在程序运行的过程中存在很大的风险:若在函数替换过程中,正好遇到修改动作,则容易发生系统挂起,对前方工程会产生严重的后果。目前为了规避这种风险,现有技术对被补丁函数增加限制,即不能为频繁调用的函数打补丁,虽然从概率上减少的异常的发生,但是并不能完全消除发生异常的可能性,反而对打补丁的功能对象增加了限制。
技术实现思路
本专利技术实施例提供了一种热补丁实现方法及装置、终端,以解决现有热补丁实现方法不能完成消除发生异常的问题。一方面,提供了一种热补丁实现方法,包括:在接收到热补丁的执行指令后,确定热补丁的被执行对象;获取被执行对象的运行状态,运行状态用于判断被执行对象是否满足执行热补丁条件;在运行状态满足执行热补丁条件时,执行热补丁。一方面,提供了一种热补丁实现装置,包括:判断模块及执行模块,其中,判断模块用于在接收到热补丁的执行指令后,确定热补丁的被执行对象;获取被执行对象的运行状态,运行状态用于判断被执行对象是否满足执行热补丁条件;执行模块用于在运行状态满足执行热补丁条件时,执行热补丁。一方面,提供了一种终端,包括作为被补丁对象的至少一个进程、操作维护接口、设置在进程内的补丁客户端、以及独立于被补丁对象之外的补丁服务端,其中:操作维护接口用于在接收到热补丁的执行指令后,确定热补丁的被执行对象;被执行对象内的补丁客户端用于获取被执行对象的运行状态,并发送至补丁服务端,运行状态用于判断被执行对象是否满足执行热补丁条件;补丁服务端用于在运行状态满足执行热补丁条件时,执行热补丁。另一方面,提供了一种计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于执行前述的热补丁实现方法。本专利技术实施例的有益效果:本专利技术实施例提供了一种热补丁实现方法,该方法在执行热补丁之前,获取被补丁对象的运行状态,仅在运行状态满足执行条件时,执行热补丁,这样从根本上解决了现有热补丁实现方法不能完成消除发生异常的问题,增强了用户的使用体验。附图说明图1为本专利技术第一实施例提供的热补丁实现方法的流程图;图2为本专利技术第二实施例提供的热补丁实现装置的结构示意图;图3为本专利技术第三实施例涉及的终端的结构示意图;图4为本专利技术第三实施例涉及的热补丁实现方法的通信示意图;图5为本专利技术第三实施例提供的热补丁实现方法的流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本专利技术中一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。现通过具体实施方式结合附图的方式对本专利技术做出进一步的诠释说明。第一实施例:图1为本专利技术第一实施例提供的热补丁实现方法的流程图,由图1可知,本实施例提供的热补丁实现方法包括:S101:在接收到热补丁的执行指令后,确定热补丁的被执行对象;S102:获取被执行对象的运行状态,运行状态用于判断被执行对象是否满足执行热补丁条件;S103:在运行状态满足执行热补丁条件时,执行热补丁。在一些实施例中,当执行指令为加载热补丁时,上述实施例中的热补丁实现方法在确定热补丁的被执行对象之前,还包括:检测热补丁的合法性;若热补丁合法,则以动态库的形式加载热补丁。一些实施例中,当执行指令为加载热补丁时,上述实施例中的运行状态包括被执行对象的函数头部若干指令是否被调用;当执行指令为卸载热补丁时,上述实施例中的运行状态包括被执行对象的函数头部若干指令、函数体中指令及被补丁函数中子函数是否被调用。一些实施例中,上述实施例中的获取被执行对象的运行状态包括:收集进程中被补丁函数当前是否满足加载或者卸载热补丁的条件,并作为运行状态保存;在热补丁可以执行后,将被补丁对中所有任务或者线程挂起,获取运行状态,判断被补丁函数当前是否满足执行加载和卸载的条件;若满足,则执行加载和卸载功能中补丁函数替换和恢复操作,恢复被补丁进程中所有挂起任务和线程。一些实施例中,上述实施例中的热补丁实现方法还包括:若不满足,则恢复被补丁对象所有任务和线程,运行指定时间后,再次挂起,收集当前被补丁函数的最新运行状态;根据最新运行状态判断被补丁函数当前是否满足执行加载和卸载的条件。第二实施例:图2为本专利技术第二实施例提供的热补丁实现装置的结构示意图,由图2可知,本实施例提供的热补丁实现装置包括:判断模块21及执行模块22,其中,判断模块21用于在接收到热补丁的执行指令后,确定热补丁的被执行对象;获取被执行对象的运行状态,运行状态用于判断被执行对象是否满足执行热补丁条件;执行模块22用于在运行状态满足执行热补丁条件时,执行热补丁。在一些实施例中,当执行指令为加载热补丁时,上述实施例中的判断模块21在确定热补丁的被执行对象之前,还用于检测热补丁的合法性;若热补丁合法,则触发执行模块以动态库的形式加载热补丁。在一些实施例中,当执行指令为加载热补丁时,上述实施例中的运行状态包括被执行对象的函数头部若干指令是否被调用;当执行指令为卸载热补丁时,上述实施例中的运行状态包括被执行对象的函数头部若干指令、函数体中指令及被补丁函数中子函数是否被调用。在一些实施例中,上述实施例中的判断模块21用于收集进程中被补丁函数当前是否满足加载或者卸载热补丁的条件,并作为运行状态保存;在热补丁可以执行后,将被补丁对中所有任务或者线程挂起,获取运行状态,判断被补丁函数当前是否满足执行加载和卸载的条件;若满足,则触发执行模块22执行加载和卸载功能中补丁函数替换和恢复操作,恢复被补丁进程中所有挂起任务和线程。在一些实施例中,上述实施例中的判断模块21还用于若不满足,则恢复被补丁对象所有任务和线程,运行指定时间后,再次挂起,收集当前被补丁函数的最新运行状态;根据最新运行状态判断被补丁函数当前是否满足执行加载和卸载的条件。在实际应用中,图2所示实施例中的所有功能模块,都可以采用处理器、编辑逻辑器件等方式实现。对应的,在一些实施例中,本专利技术也提供了一种终端,其包括作为被补丁对象的至少一个进程、操作维护接口、设置在进程内的补丁客户端、以及独立于被补丁对象之外的补丁服务端,其中:操作维护接口用于在接收到热补丁的执行指令后,确定热补丁的被执行对象;被执行对象内的补丁客户端用于获取被执行对象的运行状态,并发送至补丁服务端,运行状态用于判断被执行对象是否满足执行热补丁条件;补丁服务端用于在运行状态满足执行热补丁条件时,执行热补丁。进一步的,当执行指令为加载热补丁时,被执行对象内的补丁客户端还用于检测热补丁的合法性,若热补丁合法,则以动态库的形式加载热补丁。进一步的,当执行指令为加载热补丁时,运行状态包括被执行对象的函数头部若干指令是否被调用;当执行指令为卸载热补丁时,运行状态包括被执行对象的函数头部若干指令、函数体中本文档来自技高网...
一种热补丁实现方法及装置、终端

【技术保护点】
一种热补丁实现方法,包括:在接收到热补丁的执行指令后,确定所述热补丁的被执行对象;获取所述被执行对象的运行状态,所述运行状态用于判断所述被执行对象是否满足执行热补丁条件;在所述运行状态满足执行热补丁条件时,执行所述热补丁。

【技术特征摘要】
1.一种热补丁实现方法,包括:在接收到热补丁的执行指令后,确定所述热补丁的被执行对象;获取所述被执行对象的运行状态,所述运行状态用于判断所述被执行对象是否满足执行热补丁条件;在所述运行状态满足执行热补丁条件时,执行所述热补丁。2.如权利要求1所述的热补丁实现方法,其特征在于,当所述执行指令为加载热补丁时,在确定所述热补丁的被执行对象之前,还包括:检测所述热补丁的合法性;若所述热补丁合法,则以动态库的形式加载所述热补丁。3.如权利要求1所述的热补丁实现方法,其特征在于,当所述执行指令为加载热补丁时,所述运行状态包括所述被执行对象的函数头部若干指令是否被调用;当所述执行指令为卸载热补丁时,所述运行状态包括所述被执行对象的函数头部若干指令、函数体中指令及被补丁函数中子函数是否被调用。4.如权利要求1至3任一项所述的热补丁实现方法,其特征在于,所述获取所述被执行对象的运行状态包括:收集进程中被补丁函数当前是否满足加载或者卸载热补丁的条件,并作为所述运行状态保存;在热补丁可以执行后,将被补丁对中所有任务或者线程挂起,获取所述运行状态,判断被补丁函数当前是否满足执行加载和卸载的条件;若满足,则执行加载和卸载功能中补丁函数替换和恢复操作,恢复被补丁进程中所有挂起任务和线程。5.如权利要求4所述的热补丁实现方法,其特征在于,还包括:若不满足,则恢复被补丁对象所有任务和线程,运行指定时间后,再次挂起,收集当前被补丁函数的最新运行状态;根据所述最新运行状态判断被补丁函数当前是否满足执行加载和卸载的条件。6.一种热补丁实现装置,包括:判断模块及执行模块,其中,所述判断模块用于在接收到热补丁的执行指令后,确定所述热补丁的被执行对象;获取所述被执行对象的运行状态,所述运行状态用于判断所述被执行对象是否满足执行热补丁条件;所述执行模块用于在所述运行状态满足执行热补丁条件时,执行所述热补丁。7.如权利要求6所述的热补丁实现装置,其特征在于,当所述执行指令为加载热补丁时,所述判断模块在确定所述热补丁的被执行对象之前,还用于检测所述热补丁的合法性;若所述热补丁合法,则触发所述执行模块以动态库的形式加载所述热补丁。8.如权利要求6所述的热补丁实现装置,其特征在于,当所述执行指令为加载热补丁时,所述运行状态包括所述被执行对象的函数头部若干指令是否被调用;当所述执行指令为卸载热补丁时,所述运行状态包括所述被执行对象的函数头部若干指令、函数体中指令及被补丁函数中子函数是否被调用。9.如权利要求6至8任一项所述的热补丁实现装置,其特征在...

【专利技术属性】
技术研发人员:潘龑
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东,44

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

1