CN111324481A - 一种Linux平台的修复方法及装置 - Google Patents

一种Linux平台的修复方法及装置 Download PDF

Info

Publication number
CN111324481A
CN111324481A CN202010129948.2A CN202010129948A CN111324481A CN 111324481 A CN111324481 A CN 111324481A CN 202010129948 A CN202010129948 A CN 202010129948A CN 111324481 A CN111324481 A CN 111324481A
Authority
CN
China
Prior art keywords
function
change set
kernel
hot patch
function change
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010129948.2A
Other languages
English (en)
Inventor
王竟成
刘映镇
郑天文
黄梓锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202010129948.2A priority Critical patent/CN111324481A/zh
Publication of CN111324481A publication Critical patent/CN111324481A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种Linux平台的修复方法及装置,所述方法包括:根据Linux平台的内核原代码,获得前置对象文件;根据Linux平台的内核原代码以及内核热补丁代码,获得后置对象文件;根据所述前置文件和所述后置文件,获得函数更改集;若判断获知所述函数更改集满足热补丁条件,则生成热补丁内核模块。所述装置用于执行上述方法。本发明实施例提供的Linux平台的修复方法及装置,提高了漏洞修复的效率。

Description

一种Linux平台的修复方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及一种Linux平台的修复方法及装置。
背景技术
Linux操作系统具有开源、稳定、可定制等特点,在国防、航天、政务、金融等领域得到了广泛应用。
Linux操作系统的内核修复漏洞的补丁程序会被发布,这些补丁程序中,安全类的补丁程序可实现热补丁,其余类别的补丁程序都为冷补丁。在应用这些修冷补丁时通常重启Linux的内核,而重新启动Linux的内核会导致停机和应用中断,即使有计算机冗余功能,重新启动会出现短暂的中断或导致意外复杂性。因此,许多系统管理员会延迟这些冷补丁的更新,会导致Linux系统在有漏洞的情况下运行,使Linux系统的运行存在风险。
发明内容
针对现有技术中的问题,本发明实施例提供一种Linux平台的修复方法及装置,能够至少部分地解决现有技术中存在的问题。
一方面,本发明提出一种Linux平台的修复方法,包括:
根据Linux平台的内核原代码,获得前置对象文件;
根据Linux平台的内核原代码以及内核热补丁代码,获得后置对象文件;
根据所述前置文件和所述后置文件,获得函数更改集;
若判断获知所述函数更改集满足热补丁条件,则生成热补丁内核模块。
另一方面,本发明提供一种Linux平台的修复装置,包括:
第一获得单元,用于根据Linux平台的内核原代码,获得前置对象文件;
第二获得单元,用于根据Linux平台的内核原代码以及内核热补丁代码,获得后置对象文件;
第三获得单元,用于根据所述前置文件和所述后置文件,获得函数更改集;
生成单元,用于在判断获知所述函数更改集满足热补丁条件之后,则生成热补丁内核模块。
再一方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述Linux平台的修复方法的步骤。
又一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述Linux平台的修复方法的步骤。
本发明实施例提供的Linux平台的修复方法及装置,能够根据Linux平台的内核原代码,获得前置对象文件,并根据Linux平台的内核原代码以及内核热补丁代码,获得后置对象文件,然后根据前置文件和后置文件,获得函数更改集,在判断获知函数更改集满足热补丁条件之后,生成热补丁内核模块,在Linux操作系统运行状态下进行漏洞修复,提高了漏洞修复的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例提供的Linux平台的修复方法的流程示意图。
图2是本发明另一实施例提供的Linux平台的修复方法的流程示意图。
图3是本发明又一实施例提供的Linux平台的修复方法的流程示意图。
图4是本发明再一实施例提供的Linux平台的修复方法的流程示意图。
图5是本发明一实施例提供的Linux平台的修复装置的结构示意图。
图6是本发明另一实施例提供的Linux平台的修复装置的结构示意图。
图7是本发明又一实施例提供的Linux平台的修复装置的结构示意图。
图8是本发明再一实施例提供的Linux平台的修复装置的结构示意图。
图9是本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
为了便于理解本申请提供的技术方案,下面先对本申请技术方案的相关内容进行简单说明。热补丁是系统对应的一个个内核文件,通过临时加载内核文件的把程序函数的调用调整,返回正常值修复系统的漏洞,重启后此内核文件不再生效,属于临时解决方案。本发明实施例提供一种Linux平台的修复方法,通过内核热补丁对正在运行的Linux操作系统的内核进行实时修补,从而允许在内核仍在运行时应用内核补丁,避免立即重启系统,延长了Linux操作系统正常运行时间并提高了Linux操作系统运行的稳定性。
图1是本发明一实施例提供的Linux平台的修复方法的流程示意图,如图1所示,本发明实施例提供的Linux平台的修复方法,包括:
S101、根据Linux平台的内核原代码,获得前置对象文件;
具体地,服务器在通过内核热补丁对Linux操作系统进行修复时,可以编译Linux平台的内核原代码并创建对应的编译后的文件,从而获得前置对象文件。其中,本发明实施例提供的Linux平台的修复方法的执行主体包括但不限于服务器。
S102、根据Linux平台的内核原代码以及内核热补丁代码,获得后置对象文件;
具体地,所述服务器可以获得热补丁代码,然后编译Linux平台的内核原代码打上内核热补丁代码之后的代码并创建对应的编译后的文件,从而获得后置对象文件。可理解的是步骤S101和步骤S102没有先后顺序关系,先执行哪一个步骤都可以。
S103、根据所述前置文件和所述后置文件,获得函数更改集;
具体地,所述服务器在获得所述前置文件和所述后置文件之后,可以比较所述前置文件和所述后置文件,由于内核代码是以函数为单位的,在比较所述前置文件和所述后置文件之后,可以发现所述后置文件相对于所述前置文件的差异函数,获得的所有差异函数作为函数更改集。其中,所述差异函数的情况包括但不限于两个同名的函数包括的代码不同,所述后置文件中存在的函数在所述前置文件中不存在等。
S104、若判断获知所述函数更改集满足热补丁条件,则生成热补丁内核模块。
具体地,所述服务器在获得所述函数更改集之后,会判断所述函数更改集是否满足热补丁条件,如果所述函数更改集满足所述热补丁条件,说明采用内核热补丁对Linux操作系统进行修复时涉及的Linux操作系统的内核中的现有功能和数据结构比较简单,那么可以生成热补丁内核模块,从而实现通过内核热补丁对所述Linux操作系统的修复。在生成所述热补丁内核模块时,可以使用所述函数更改集调用Kernel live patching技术,Kernel live patching技术为开源技术包,具有把函数集制作成可安装补丁包的功能,通过Kernel live patching技术对所述函数更改集的处理,可以把所述函数更改集编译成一个内核模块,即生成了所述热补丁内核模块。在生成所述热补丁内核模块之后,可以运行所述内核热补丁所针对的漏洞对应的程序,验证所述热补丁内核模块是否有效,如果漏洞消失说明所述热补丁内核模块有效。其中,所述热补丁条件是预设的,根据实际需要进行设置,本发明实施例不做限定。所述热补丁内核模块在文件格式上是一个包括内核热补丁的内核模块。Linux操作系统的内核模块,类似于Windows中以exe为后缀的可执行文件。所述热补丁内核模块在执行的时候,可以通过modprobe等命令,把所述热补丁内核模块加载到内存里,自动将内核存在漏洞的旧函数替换成修复后的新函数,而不会导致操作系统的中断。
本发明实施例提供的Linux平台的修复方法,能够根据Linux平台的内核原代码,获得前置对象文件,并根据Linux平台的内核原代码以及内核热补丁代码,获得后置对象文件,然后根据前置文件和后置文件,获得函数更改集,在判断获知函数更改集满足热补丁条件之后,生成热补丁内核模块,在Linux操作系统运行状态下进行漏洞修复,提高了漏洞修复的效率,并提高了Linux操作系统运行的稳定性和安全性。此外,由于不需要重新启动Linux操作系统,就可以完成漏洞的修复,不会引起系统的延迟,不影响Linux操作系统正在运行的业务。
图2是本发明另一实施例提供的Linux平台的修复方法的流程示意图,如图2所示,在上述各实施例的基础上,进一步地,所述若判断获知所述函数更改集满足热补丁条件包括:
S201、统计所述函数更改集中涉及的函数数量;
具体地,所述服务器在获得所述函数更改集之后,可以统计所述函数更改集中包括的函数的数量,获得所述函数更改集中涉及的函数数量。
S202、若判断获知所述函数数量小于数量阈值,则确定所述函数更改集满足所述热补丁条件。
具体地,所述服务器在获得所述函数更改集中涉及的函数数量之后,将所述函数数量与数量阈值进行比较。如果所述函数数量小于所述数量阈值,那么可以确定所述函数更改集满足所述热补丁条件。否则,确定所述函数更改集不满足所述热补丁条件。其中,所述数量阈值根据实际经验进行设置,本发明实施例不做限定。
图3是本发明又一实施例提供的Linux平台的修复方法的流程示意图,如图3所示,在上述各实施例的基础上,进一步地,所述若判断获知所述函数更改集满足热补丁条件包括:
S301、根据所述函数更改集的每个函数在内存中的开始地址和结束地址,获得所述函数更改集的每个函数的范围大小;
具体地,所述服务器在获得所述函数更改集之后,对于所述函数更改集中的每个函数,所述服务器可以获得每个函数在内存中的开始地址和结束地址,然后根据每个函数在内存中的开始地址和结束地址,可以获得所述函数更改集的每个函数的范围大小,每个函数的范围大小可以用于分析所述函数更改集的每个函数在内核运行时所影响的内存范围。
例如,所述函数更改集包括的一个函数A,所述服务器获得函数A运行时在内存中的开始地址为f0000000,结束地址为f0111100,那么函数A的范围大小为f0111100-f0000000=0x111100。
S302、根据所述函数更改集的每个函数的范围大小,获得所述函数更改集的数据总范围;
具体地,所述服务器在获得所述函数更改集的每个函数的范围大小之后,可以将所述函数更改集的各个函数的范围大小相加,从而获得所述函数更改集的数据总范围。
S303、若判断获知所述函数更改集的数据总范围小于范围阈值,则确定所述函数更改集满足所述热补丁条件。
具体地,所述服务器在获得所述函数更改集的数据总范围之后,将所述数据总范围与范围阈值进行比较,如果所述数据总范围小于所述范围阈值,那么确定所述函数更改集满足所述热补丁条件。否则,确定所述函数更改集不满足所述热补丁条件。其中,所述范围阈值根据实际经验进行设置,本发明实施例不做限定。
图4是本发明再一实施例提供的Linux平台的修复方法的流程示意图,如图4所示,在上述各实施例的基础上,进一步地,本发明实施例提供的Linux平台的修复方法还包括:
S401、接收函数调用请求;
具体地,所述服务器在应用所述热补丁内核模块之后,可以接收函数调用请求,所述函数调用请求可以包括旧函数,所述旧函数是有漏洞的函数,需要通过所述内核热补丁代码进行修复。
S402、若判断获知所述函数调用请求包括旧函数,则调用所述旧函数对应的新函数;其中,所述新函数是在打上所述内核热补丁代码之后获得的函数;
具体地,所述服务器在接收到所述函数调用请求之后,会判断所述函数调用请求是否包括旧函数,如果包括旧函数,那么会调用所述旧函数对应的新函数,即在加载内核文件的时候,会更新指针,把旧函数的返回调用针指向新函数。其中,所述新函数是在打上所述内核热补丁代码之后获得的函数,所述新函数与所述旧函数对应。
S403、通过所述新函数对所述函数调用请求进行处理。
具体地,所述服务器在调用所述旧函数对应的新函数之后,会通过上述新函数对所述函数调用请求进行处理,获得返回值,然后将所述返回值发送给所述函数调用请求的发送方。
图5是本发明一实施例提供的Linux平台的修复装置的结构示意图,如图5所示,在上述各实施例的基础上,进一步地,本发明实施例提供的Linux平台的修复装置包括第一获得单元501、第二获得单元502、第三获得单元503和生成单元504,其中:
第一获得单元501用于根据Linux平台的内核原代码,获得前置对象文件;第二获得单元502用于根据Linux平台的内核原代码以及内核热补丁代码,获得后置对象文件;第三获得单元503用于根据所述前置文件和所述后置文件,获得函数更改集;生成单元504用于在判断获知所述函数更改集满足热补丁条件之后,则生成热补丁内核模块。
具体地,在通过内核热补丁对Linux操作系统进行修复时,第一获得单元501可以编译Linux平台的内核原代码并创建对应的编译后的文件,从而获得前置对象文件。
第二获得单元502可以获得热补丁代码,然后编译Linux平台的内核原代码打上内核热补丁代码之后的代码并创建对应的编译后的文件,从而获得后置对象文件。
在获得所述前置文件和所述后置文件之后,第三获得单元503可以比较所述前置文件和所述后置文件,由于内核代码是以函数为单位的,在比较所述前置文件和所述后置文件之后,可以发现所述后置文件相对于所述前置文件的差异函数,获得的所有差异函数作为函数更改集。其中,所述差异函数的情况包括但不限于两个同名的函数包括的代码不同,所述后置文件中存在的函数在所述前置文件中不存在等。
在获得所述函数更改集之后,生成单元504会判断所述函数更改集是否满足热补丁条件,如果所述函数更改集满足所述热补丁条件,说明采用内核热补丁对Linux操作系统进行修复时涉及的Linux操作系统的内核中的现有功能和数据结构比较简单,那么可以生成热补丁内核模块,从而实现通过内核热补丁对所述Linux操作系统的修复。在生成所述热补丁内核模块时,可以使用所述函数更改集调用Kernel live patching技术,Kernel livepatching技术为开源技术包,具有把函数集制作成可安装补丁包的功能,通过Kernel livepatching技术对所述函数更改集的处理,可以把所述函数更改集编译成一个内核模块,即生成了所述热补丁内核模块。在生成所述热补丁内核模块之后,可以运行所述内核热补丁所针对的漏洞对应的程序,验证所述热补丁内核模块是否有效,如果漏洞消失说明所述热补丁内核模块有效。其中,所述热补丁条件是预设的,根据实际需要进行设置,本发明实施例不做限定。所述热补丁内核模块在文件格式上是一个包括内核热补丁的内核模块。Linux操作系统的内核模块,类似于Windows中以exe为后缀的可执行文件。所述热补丁内核模块在执行的时候,可以通过modprobe等命令,把所述热补丁内核模块加载到内存里,自动将内核存在漏洞的旧函数替换成修复后的新函数,而不会导致操作系统的中断。
本发明实施例提供的Linux平台的修复装置,能够根据Linux平台的内核原代码,获得前置对象文件,并根据Linux平台的内核原代码以及内核热补丁代码,获得后置对象文件,然后根据前置文件和后置文件,获得函数更改集,在判断获知函数更改集满足热补丁条件之后,生成热补丁内核模块,在Linux操作系统运行状态下进行漏洞修复,提高了漏洞修复的效率,并提高了Linux操作系统运行的稳定性和安全性。此外,由于不需要重新启动Linux操作系统,就可以完成漏洞的修复,不会引起系统的延迟,不影响Linux操作系统正在运行的业务。
图6是本发明另一实施例提供的Linux平台的修复装置的结构示意图,如图6所示,在上述各实施例的基础上,进一步地生成单元504包括统计子单元5041和第一判断子单元5042,其中:
统计子单元5041用于统计所述函数更改集中涉及的函数数量;第一判断子单元5042用于在判断获知所述函数数量小于数量阈值之后,确定所述函数更改集满足所述热补丁条件。
具体地,在获得所述函数更改集之后,统计子单元5041可以统计所述函数更改集中包括的函数的数量,获得所述函数更改集中涉及的函数数量。
在获得所述函数更改集中涉及的函数数量之后,第一判断子单元5042将所述函数数量与数量阈值进行比较。如果所述函数数量小于所述数量阈值,那么可以确定所述函数更改集满足所述热补丁条件。否则,确定所述函数更改集不满足所述热补丁条件。其中,所述数量阈值根据实际经验进行设置,本发明实施例不做限定。
图7是本发明又一实施例提供的Linux平台的修复装置的结构示意图,如图7所示,在上述各实施例的基础上,进一步地,生成单元504包括第一获得子单元5043、第二获得子单元5044和第二判断子单元5045,其中:
第一获得子单元5043用于根据所述函数更改集的每个函数在内存中的开始地址和结束地址,获得所述函数更改集的每个函数的范围大小;第二获得子单元5044用于根据所述函数更改集的每个函数的范围大小,获得所述函数更改集的数据总范围;第二判断子单元5045用于在判断获知所述函数更改集的数据总范围小于范围阈值之后,确定所述函数更改集满足所述热补丁条件。
具体地,在获得所述函数更改集之后,对于所述函数更改集中的每个函数,第一获得子单元5043可以获得每个函数在内存中的开始地址和结束地址,然后根据每个函数在内存中的开始地址和结束地址,可以获得所述函数更改集的每个函数的范围大小,每个函数的范围大小可以用于分析所述函数更改集的每个函数在内核运行时所影响的内存范围。
在获得所述函数更改集的每个函数的范围大小之后,第二获得子单元5044可以将所述函数更改集的各个函数的范围大小相加,从而获得所述函数更改集的数据总范围。
在获得所述函数更改集的数据总范围之后,第二判断子单元5045将所述数据总范围与范围阈值进行比较,如果所述数据总范围小于所述范围阈值,那么确定所述函数更改集满足所述热补丁条件。否则,确定所述函数更改集不满足所述热补丁条件。其中,所述范围阈值根据实际经验进行设置,本发明实施例不做限定。
图8是本发明再一实施例提供的Linux平台的修复装置的结构示意图,如图8所示,在上述各实施例的基础上,进一步,地本发明实施例提供的Linux平台的修复装置还包括接收单元505、调用单元506和处理单元507,其中:
接收单元505用于接收函数调用请求;调用单元506用于在判断获知所述函数调用请求包括旧函数之后,调用所述旧函数对应的新函数;其中,所述新函数是所述旧函数对应的热补丁函数;处理单元507用于通过所述新函数对所述函数调用请求进行处理。
具体地,在应用所述热补丁内核模块之后,接收单元505可以接收函数调用请求,所述函数调用请求可以包括旧函数,所述旧函数是有漏洞的函数,需要通过所述内核热补丁代码进行修复。
在接收到所述函数调用请求之后,调用单元506会判断所述函数调用请求是否包括旧函数,如果包括旧函数,那么会调用所述旧函数对应的新函数,即在加载内核文件的时候,会更新指针,把旧函数的返回调用针指向新函数。其中,所述新函数是在打上所述内核热补丁代码之后获得的函数,所述新函数与所述旧函数对应。
在调用所述旧函数对应的新函数之后,处理单元507会通过上述新函数对所述函数调用请求进行处理,获得返回值,然后将所述返回值发送给所述函数调用请求的发送方。
本发明实施例提供的Linux平台的修复装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图9是本发明一实施例提供的电子设备的实体结构示意图,如图9所示,该电子设备可以包括:处理器(processor)901、通信接口(Communications Interface)902、存储器(memory)903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信。处理器901可以调用存储器903中的逻辑指令,以执行如下方法:根据Linux平台的内核原代码,获得前置对象文件;根据Linux平台的内核原代码以及内核热补丁代码,获得后置对象文件;根据所述前置文件和所述后置文件,获得函数更改集;若判断获知所述函数更改集满足热补丁条件,则生成热补丁内核模块。
此外,上述的存储器903中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:根据Linux平台的内核原代码,获得前置对象文件;根据Linux平台的内核原代码以及内核热补丁代码,获得后置对象文件;根据所述前置文件和所述后置文件,获得函数更改集;若判断获知所述函数更改集满足热补丁条件,则生成热补丁内核模块。
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:根据Linux平台的内核原代码,获得前置对象文件;根据Linux平台的内核原代码以及内核热补丁代码,获得后置对象文件;根据所述前置文件和所述后置文件,获得函数更改集;若判断获知所述函数更改集满足热补丁条件,则生成热补丁内核模块。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种Linux平台的修复方法,其特征在于,包括:
根据Linux平台的内核原代码,获得前置对象文件;
根据Linux平台的内核原代码以及内核热补丁代码,获得后置对象文件;
根据所述前置文件和所述后置文件,获得函数更改集;
若判断获知所述函数更改集满足热补丁条件,则生成热补丁内核模块。
2.根据权利要求1所述的方法,其特征在于,所述若判断获知所述函数更改集满足热补丁条件包括:
统计所述函数更改集中涉及的函数数量;
若判断获知所述函数数量小于数量阈值,则确定所述函数更改集满足所述热补丁条件。
3.根据权利要求1所述的方法,其特征在于,所述若判断获知所述函数更改集满足热补丁条件包括:
根据所述函数更改集的每个函数在内存中的开始地址和结束地址,获得所述函数更改集的每个函数的范围大小;
根据所述函数更改集的每个函数的范围大小,获得所述函数更改集的数据总范围;
若判断获知所述函数更改集的数据总范围小于范围阈值,则确定所述函数更改集满足所述热补丁条件。
4.根据权利要求1至3任一项所述的方法,其特征在于,还包括:
接收函数调用请求;
若判断获知所述函数调用请求包括旧函数,则调用所述旧函数对应的新函数;其中,所述新函数是所述旧函数在打上所述内核热补丁代码之后获得的函数;
通过所述新函数对所述函数调用请求进行处理。
5.一种Linux平台的修复装置,其特征在于,包括:
第一获得单元,用于根据Linux平台的内核原代码,获得前置对象文件;
第二获得单元,用于根据Linux平台的内核原代码以及内核热补丁代码,获得后置对象文件;
第三获得单元,用于根据所述前置文件和所述后置文件,获得函数更改集;
生成单元,用于在判断获知所述函数更改集满足热补丁条件之后,则生成热补丁内核模块。
6.根据权利要求5所述的装置,其特征在于,所述生成单元包括:
统计子单元,用于统计所述函数更改集中涉及的函数数量;
第一判断子单元,用于在判断获知所述函数数量小于数量阈值之后,确定所述函数更改集满足所述热补丁条件。
7.根据权利要求5所述的装置,其特征在于,所述生成单元包括:
第一获得子单元,用于根据所述函数更改集的每个函数在内存中的开始地址和结束地址,获得所述函数更改集的每个函数的范围大小;
第二获得子单元,用于根据所述函数更改集的每个函数的范围大小,获得所述函数更改集的数据总范围;
第二判断子单元,用于在判断获知所述函数更改集的数据总范围小于范围阈值之后,确定所述函数更改集满足所述热补丁条件。
8.根据权利要求5至7任一项所述的装置,其特征在于,还包括:
接收单元,用于接收函数调用请求;
调用单元,用于在判断获知所述函数调用请求包括旧函数之后,调用所述旧函数对应的新函数;其中,所述新函数是在打上所述内核热补丁代码之后获得的函数;
处理单元,用于通过所述新函数对所述函数调用请求进行处理。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述方法的步骤。
CN202010129948.2A 2020-02-28 2020-02-28 一种Linux平台的修复方法及装置 Pending CN111324481A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010129948.2A CN111324481A (zh) 2020-02-28 2020-02-28 一种Linux平台的修复方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010129948.2A CN111324481A (zh) 2020-02-28 2020-02-28 一种Linux平台的修复方法及装置

Publications (1)

Publication Number Publication Date
CN111324481A true CN111324481A (zh) 2020-06-23

Family

ID=71173119

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010129948.2A Pending CN111324481A (zh) 2020-02-28 2020-02-28 一种Linux平台的修复方法及装置

Country Status (1)

Country Link
CN (1) CN111324481A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112016095A (zh) * 2020-08-20 2020-12-01 上海帆一尚行科技有限公司 一种验证漏洞的方法、装置和电子设备
CN115146262A (zh) * 2022-09-01 2022-10-04 杭州美创科技有限公司 基于eBPF技术的Linux系统内核漏洞补丁缓解方法及其系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040107416A1 (en) * 2002-12-02 2004-06-03 Microsoft Corporation Patching of in-use functions on a running computer system
US20140157232A1 (en) * 2012-11-30 2014-06-05 Huawei Technologies Co., Ltd. Method and Apparatus for Detecting Code Change
CN109409096A (zh) * 2018-11-15 2019-03-01 百度在线网络技术(北京)有限公司 内核漏洞修复方法、装置、服务器及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040107416A1 (en) * 2002-12-02 2004-06-03 Microsoft Corporation Patching of in-use functions on a running computer system
US20140157232A1 (en) * 2012-11-30 2014-06-05 Huawei Technologies Co., Ltd. Method and Apparatus for Detecting Code Change
US20160196116A1 (en) * 2012-11-30 2016-07-07 Huawei Technologies Co., Ltd. Method and Apparatus for Detecting Code Change
CN109409096A (zh) * 2018-11-15 2019-03-01 百度在线网络技术(北京)有限公司 内核漏洞修复方法、装置、服务器及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112016095A (zh) * 2020-08-20 2020-12-01 上海帆一尚行科技有限公司 一种验证漏洞的方法、装置和电子设备
CN112016095B (zh) * 2020-08-20 2024-01-12 上海帆一尚行科技有限公司 一种验证漏洞的方法、装置和电子设备
CN115146262A (zh) * 2022-09-01 2022-10-04 杭州美创科技有限公司 基于eBPF技术的Linux系统内核漏洞补丁缓解方法及其系统
CN115146262B (zh) * 2022-09-01 2023-03-28 杭州美创科技股份有限公司 基于eBPF技术的Linux系统内核漏洞补丁缓解方法及其系统

Similar Documents

Publication Publication Date Title
CN107329741B (zh) 一种基于指纹识别的软件分布式升级方法与装置
CN105573780B (zh) 一种基于容器的移动终端操作系统升级方法和装置
CN110134418A (zh) 基于空间下载技术的整车升级方法及装置、存储介质和终端
EP2864873B1 (en) Auto-update while running a client software application with update handshake between versions and runtime validation of the successor version
CN109857423B (zh) 程序版本更新方法、装置、服务器及可读存储介质
CN111324481A (zh) 一种Linux平台的修复方法及装置
CN106020905B (zh) 一种微控制器固件开发与更新的方法及系统
CN106293849B (zh) 一种应用更新方法和终端
CN110955448A (zh) 智能合约分离方法、合约处理方法、装置、设备及介质
WO2018024198A1 (zh) 机顶盒的应用程序升级方法、系统及机顶盒
CN109885612B (zh) 区块链智能合约的同步生效方法及装置
CN105786636B (zh) 一种系统修复方法及装置
CN111433739A (zh) 程序的升级方法和嵌入式设备
CN110837383B (zh) 应用免安装升级方法及装置
CN108958785B (zh) 一种应用程序升级方法及装置
CN106293790B (zh) 基于Firefox操作系统的应用程序升级方法和装置
CN108920962B (zh) 固件下载验签方法、固件发布方法、移动终端及服务器
CN106021003A (zh) 智能终端的修复方法、智能终端以及服务器
CN111142922A (zh) 应用程序更新方法、装置、终端及服务器
CN104104701A (zh) 在线服务的配置更新的方法和系统
CN107479923A (zh) 应用程序升级方法、装置及显示终端
CN106162345A (zh) 一种智能电视系统的灰度升级方法及系统
CN114282205A (zh) 固件启动方法及装置、计算机可读存储介质
CN112000354A (zh) 版本信息更新方法、装置、设备及存储介质
CN108234414B (zh) 一种app应用的升级方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200623