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.如权利要求1所述的热补丁实现方法,其特征在于,当所述执行指令为加载热补丁时,在确定所述热补丁的被执行对象之前,还包括:检测所述热补丁的合法性;若所述热补丁合法,则以动态库的形式加载所述热补丁。3.如权利要求1所述的热补丁实现方法,其特征在于,当所述执行指令为加载热补丁时,所述运行状态包括所述被执行对象的函数头部若干指令是否被调用;当所述执行指令为卸载热补丁时,所述运行状态包括所述被执行对象的函数头部若干指令、函数体中指令及被补丁函数中子函数是否被调用。4.如权利要求1至3任一项所述的热补丁实现方法,其特征在于,所述获取所述被执行对象的运行状态包括:收集进程中被补丁函数当前是否满足加载或者卸载热补丁的条件,并作为所述运行状态保存;在热补丁可以执行后,将被补丁对中所有任务或者线程挂起,获取所述运行状态,判断被补丁函数当前是否满足执行加载和卸载的条件;若满足,则执行加载和卸载功能中补丁函数替换和恢复操作,恢复被补丁进程中所有挂起任务和线程。5.如权利要求4所述的热补丁实现方法,其特征在于,还包括:若不满足,则恢复被补丁对象所有任务和线程,运行指定时间后,再次挂起,收集当前被补丁函数的最新运行状态;根据所述最新运行状态判断被补丁函数当前是否满足执行加载和卸载的条件。6.一种热补丁实现装置,包括:判断模块及执行模块,其中,所述判断模块用于在接收到热补丁的执行指令后,确定所述热补丁的被执行对象;获取所述被执行对象的运行状态,所述运行状态用于判断所述被执行对象是否满足执行热补丁条件;所述执行模块用于在所述运行状态满足执行热补丁条件时,执行所述热补丁。7.如权利要求6所述的热补丁实现装置,其特征在于,当所述执行指令为加载热补丁时,所述判断模块在确定所述热补丁的被执行对象之前,还用于检测所述热补丁的合法性;若所述热补丁合法,则触发所述执行模块以动态库的形式加载所述热补丁。8.如权利要求6所述的热补丁实现装置,其特征在于,当所述执行指令为加载热补丁时,所述运行状态包括所述被执行对象的函数头部若干指令是否被调用;当所述执行指令为卸载热补丁时,所述运行状态包括所述被执行对象的函数头部若干指令、函数体中指令及被补丁函数中子函数是否被调用。9.如权利要求6至8任一项所述的热补丁实现装置,其特征在...
【专利技术属性】
技术研发人员:潘龑,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。