[发明专利]一种补丁函数生成方法及装置有效
申请号: | 201711311047.X | 申请日: | 2017-12-11 |
公开(公告)号: | CN108009429B | 公开(公告)日: | 2021-09-03 |
发明(设计)人: | 刘天;张建新 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 王玉双 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 补丁 函数 生成 方法 装置 | ||
本发明实施例提供一种补丁函数生成方法及装置,所述方法包括:获得待打补丁的目标函数对应的第一源代码,并获得补丁函数对应的第二源代码;基于第一源代码和第二源代码,确定出目标函数与补丁函数之间所存在的竞争资源;根据内核锁机制,从第一源代码中确定出竞争资源在目标函数中对应的第一锁;按照预设策略,基于第一锁,对第二源代码进行处理,获得包含第一锁的处理后的补丁函数,其中,处理后的补丁函数能够与目标函数同时在内核中运行。这样,由于处理后的补丁函数中包含第一锁,是能够与待打补丁的目标函数同时在内核中运行的,从而,能够实现在不停机的情况下,将该目标函数替换为处理后的补丁函数。
技术领域
本发明涉及计算机领域,尤其涉及一种补丁函数生成方法及装置。
背景技术
内核是操作系统的核心,负责管理系统的进程、内存、设备驱动程序、文件和网路系统等,决定着系统的性能和稳定性。在内核出现缺陷,如安全漏洞时,如果该内核缺陷被非法分子利用,很可能会出现数据丢失或篡改、用户隐私泄露等问题,从而,容易导致给用户带来经济、精神损失。在实际应用中,通常采用内核热补丁技术来修复内核的缺陷,来实现避免系统重启导致业务中断,保证内核的安全性和可用性。
目前,现有的内核热补丁技术主要有以下两种类型:第一种,在系统启动时使用一个内核,在检测到内核中的待打补丁的目标函数并未执行时,先暂停该内核,再将该目标函数替换为对应的补丁函数。第二种,在系统启动时使用两个内核,其中,第一内核处于休眠态,第二内核处于运行态,首先,将处于休眠态的第一内核中的目标函数替换为补丁函数,然后,再切换两个内核,让进行过打补丁操作的目标函数所在的第一内核从休眠态进入到运行态,让未进行过打补丁操作的目标函数的第二内核从运行态进入到休眠态,最后,将处于休眠态的第二内核中的目标函数替换为补丁函数。
但是,发明人在执行上述打补丁操作的过程中发现:上述两种方法主要是通过确保目标函数及其对应的补丁函数只有一个在运行,来实现对目标函数进行打补丁操作。可见,在现有技术中至少存在如下问题:在对目标函数打补丁时,必须保证目标函数不在执行,无法实现在不停机来将目标函数替换为补丁函数,打补丁的过程不够方便。
发明内容
有鉴于此,本发明实施例提供一种补丁函数生成方法及装置,主要目的在于,在对待打补丁的目标函数进行打补丁操作之前,预先对该目标函数对应的补丁函数进行处理,获得能够与目标函数同时在内核中运行的处理后的补丁函数,这样,将目标函数替换为该处理后的补丁函数时,就无需内核处于休眠态。
为达到上述目的,本发明实施例主要提供如下技术方案:
第一方面,本发明实施例提供一种补丁函数生成方法,所述方法包括:获得待打补丁的目标函数对应的第一源代码,并获得补丁函数对应的第二源代码,其中,所述补丁函数与所述目标函数对应;基于所述第一源代码和所述第二源代码,确定出所述目标函数与所述补丁函数之间所存在的竞争资源;根据内核锁机制,从所述第一源代码中确定出所述竞争资源在所述目标函数中对应的第一锁;按照预设策略,基于所述第一锁,对所述第二源代码进行处理,获得包含所述第一锁的处理后的补丁函数,其中,所述处理后的补丁函数能够与所述目标函数同时在内核中运行。
第二方面,本发明实施例提供一种补丁函数生成装置,所述装置包括:第一获得单元、第一确定单元、第二确定单元以及处理单元,其中,所述第一获得单元,用于获得待打补丁的目标函数对应的第一源代码,并获得补丁函数对应的第二源代码,其中,所述补丁函数与所述目标函数对应;所述第一确定单元,用于基于所述第一源代码和所述第二源代码,确定出所述目标函数与所述补丁函数之间所存在的竞争资源;所述第二确定单元,用于根据内核锁机制,从所述第一源代码中确定出所述竞争资源在所述目标函数中对应的第一锁;所述处理单元,用于按照预设策略,基于所述第一锁,对所述第二源代码进行处理,获得包含所述第一锁的处理后的补丁函数,其中,所述处理后的补丁函数能够与所述目标函数同时在内核中运行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711311047.X/2.html,转载请声明来源钻瓜专利网。