CN106815031A - 内核模块加载方法和装置 - Google Patents

内核模块加载方法和装置 Download PDF

Info

Publication number
CN106815031A
CN106815031A CN201710096226.XA CN201710096226A CN106815031A CN 106815031 A CN106815031 A CN 106815031A CN 201710096226 A CN201710096226 A CN 201710096226A CN 106815031 A CN106815031 A CN 106815031A
Authority
CN
China
Prior art keywords
loaded
kernel module
kernel
identification information
module
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.)
Granted
Application number
CN201710096226.XA
Other languages
English (en)
Other versions
CN106815031B (zh
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201710096226.XA priority Critical patent/CN106815031B/zh
Publication of CN106815031A publication Critical patent/CN106815031A/zh
Priority to JP2019514240A priority patent/JP6913746B2/ja
Priority to PCT/CN2017/100473 priority patent/WO2018153052A1/zh
Priority to KR1020197007612A priority patent/KR102244281B1/ko
Priority to EP17898297.1A priority patent/EP3499364B1/en
Priority to US16/353,772 priority patent/US11237844B2/en
Application granted granted Critical
Publication of CN106815031B publication Critical patent/CN106815031B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/4401Bootstrapping
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了内核模块加载方法和装置。该方法的一具体实施方式包括:检测用于指示将待加载内核模块加载到目标内核中的指令;响应于检测到指令,确定待加载内核模块中是否存在标识信息,其中,标识信息用于表征将待加载内核模块加载到目标内核中;响应于确定待加载内核模块中存在标识信息,将待加载内核模块加载到目标内核中。该实施方式提高了待加载内核模块的适用性。

Description

内核模块加载方法和装置
技术领域
本申请涉及计算机技术领域,具体涉及操作系统内核技术领域,尤其涉及内核模块加载方法和装置。
背景技术
目前,为了使内核模块可以在内核程序中运行,通常需要生成包含内核的源代码的内核模块。因此,现有的内核模块加载方法通常是,根据内核的源代码以及加载内核模块时需要校验的参数,比如:内核版本、内核符号和CRC(Cyclic Redundancy Check,循环冗余校验码)等参数,对内核模块进行重新编译或者修改,以通过内核的校验机制,进而加载到内核中。
由于内核模块只能加载于其编译时所依赖的源代码对应的内核上。这样,当同种操作系统的内核版本众多时,一般需要对内核模块进行多次重新编译或修改,以适用不同版本的内核。
发明内容
本申请的目的在于提出一种改进的内核模块加载方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种内核模块加载方法,该方法包括:检测用于指示将待加载内核模块加载到目标内核中的指令;响应于检测到指令,确定待加载内核模块中是否存在标识信息,其中,标识信息用于表征将待加载内核模块加载到目标内核中;响应于确定待加载内核模块中存在标识信息,将待加载内核模块加载到目标内核中。
在一些实施例中,响应于确定待加载内核模块中存在标识信息,将待加载内核模块加载到目标内核中,包括:响应于确定待加载内核模块中存在标识信息,对标识信息进行安全验证;若标识信息通过安全验证,则将待加载内核模块加载到目标内核中。
在一些实施例中,该方法还包括在内核模块中生成标识信息的步骤,该步骤包括:获取内核模块,并确定内核模块是否满足预设条件;响应于确定内核模块满足预设条件,通过预设方法在内核模块中生成标识信息。
在一些实施例中,预设条件包括内核模块与待加载内核模块的内核相兼容。
在一些实施例中,该方法还包括:响应于确定待加载内核模块中不存在标识信息,对待加载内核模块进行加载校验;若待加载内核模块通过加载校验,则将待加载内核模块加载到目标内核中。
第二方面,本申请提供了一种内核模块加载装置,该装置包括:检测单元,配置用于检测用于指示将待加载内核模块加载到目标内核中的指令;标识信息确定单元,配置用于响应于检测到指令,确定待加载内核模块中是否存在标识信息,其中,标识信息用于表征将待加载内核模块加载到目标内核中;第一加载单元,配置用于响应于确定待加载内核模块中存在标识信息,将待加载内核模块加载到目标内核中。
在一些实施例中,第一加载单元进一步配置用于:响应于确定待加载内核模块中存在标识信息,对标识信息进行安全验证;若标识信息通过安全验证,则将待加载内核模块加载到目标内核中。
在一些实施例中,该装置还包括:获取单元,配置用于获取内核模块,并确定内核模块是否满足预设条件;生成单元,配置用于响应于确定内核模块满足预设条件,通过预设方法在内核模块中生成标识信息。
在一些实施例中,预设条件包括内核模块与待加载内核模块的内核相兼容。
在一些实施例中,该装置还包括:校验单元,配置用于响应于确定待加载内核模块中不存在标识信息,对待加载内核模块进行加载校验;第二加载单元,配置用于若待加载内核模块通过加载校验,则将待加载内核模块加载到目标内核中。
第三方面,本申请提供了一种服务器,该服务器包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现第一方面的内核模块加载方法。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第一方面的内核模块加载方法。
本申请提供的内核模块加载方法和装置,通过检测到用于指示将待加载内核模块加载到目标内核中的指令后,获取待加载内核模块的信息,以确定待加载内核模块中是否存在标识信息。若该待加载内核模块中存在标识信息,则将其不经过目标内核的加载校验,便可以加载到目标内核中。这样,当同种操作系统的不同版本的内核需要运行待加载内核模块时,若待加载内核模块中存在标识信息,即可以将其加载到不同版本的内核中。有利于提高待加载内核模块的适用范围。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的内核模块加载方法的一个实施例的流程图;
图3是根据本申请的内核模块加载方法的一个应用场景的示意图;
图4是根据本申请的内核模块加载方法的又一个实施例的流程图;
图5是根据本申请的内核模块加载方法中的生成标识信息步骤的一个实施例的流程图;
图6是根据本申请的内核模块加载装置的一个实施例的结构示意图;
图7是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的内核模块加载方法或内核模块加载装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104、106,服务器105和数据库服务器107。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络106用以在服务器105和数据库服务器107之间提供通信链路的介质。网络104、106可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、搜索类应用、即时通信工具等。
终端设备101、102、103可以是各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器和台式计算机等等。
数据库服务器107可以是存储有待加载内核模块集合的服务器。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103发送的用于指示将待加载内核模块加载到目标内核中的指令进行处理的后台内核模块加载服务器。后台内核模块加载服务器可以在检测到该指令后,从数据库服务器107获取待加载内核模块,并对对待加载内核模块和目标内核等数据进行分析等处理,并将处理结果(是否加载成功的提示信息)反馈给终端设备。
需要说明的是,本申请实施例所提供的内核模块加载方法一般由服务器105执行,相应地,内核模块加载装置一般设置于服务器105中。
应该理解,图1中的终端设备、网络、服务器和数据库服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络、服务器和数据库服务器。需要说明的是,在服务器105中存储有待加载内核模块的情况下,系统架构100中可以不设置数据库服务器107。
继续参考图2,示出了根据本申请的内核模块加载方法的一个实施例的流程200。该方法包括以下步骤:
步骤201,检测用于指示将待加载内核模块加载到目标内核中的指令。
在本实施例中,内核模块加载方法运行于其上的电子设备(例如图1所示的服务器105)可以通过有线连接方式或者无线连接方式从用户所使用的终端检测并接收用于指示将待加载内核模块加载到目标内核中的指令。其中,指令可以是用户通过触控终端上的某个按键(虚拟按键或实体按键)所发起的。也可以是用户通过终端向上述电子设备发送某一信息而发起的。
在本实施例中,目标内核可以是各种操作系统中的不同版本的内核。例如Windows图形化工作界面操作系统中的NT5.1、NT5.2、NT6.0和NT6.1等版本的内核。待加载内核模块可以包括具有独立功能,但不能独立运行的程序。例如在Windows操作系统中增加新的硬件设备时,待加载内核模块可以是该硬件设备的设备驱动程序。待加载内核模块还可以包括Linux内核中的LKM(Loadable Kernel Module,动态可加载内核模块)。
步骤202,响应于检测到指令,确定待加载内核模块中是否存在标识信息。
在本实施例中,基于步骤201中检测到的指令,上述电子设备可以首先获取上述指令所指示的待加载内核模块;之后再读取待加载内核模块的信息,以确定该信息中是否存在标识信息。其中,标识信息用于表征将待加载内核模块加载到目标内核中。
在本实施例中,上述指令中可以包含待加载内核模块的名称和/或版本号。根据待加载内核模块的名称和/或版本号,上述电子设备可以从图1所示的数据库服务器107中获取匹配的待加载内核模块。上述电子设备也可以先在本地查找是否存储有匹配的待加载内核模块。若本地查找失败时,再从数据库服务器107中获取匹配的待加载内核模块。需要说明的是,待加载内核模块的具体存储位置在本申请中并不限制。
在本实施例中,上述电子设备可以根据待加载内核模块中是否存在与程序内容无关的信息,来确定其中是否存在标识信息。如果待加载内核模块中存在与程序内容无关的信息,则可以将该信息确定为标识信息。例如:在ELF文件的文件头(ELF Header)前面有“¥”。
在本实施例的一些可选的实现方式中,上述电子设备还可以将预先存储的标识信息集合中的每一个标识信息,在待加载内核模块中进行匹配。若待加载内核模块中存在与标识信息集合中的标识信息匹配的信息,则可以确定待加载内核模块中存在标识信息。
在本实施例的一些可选的实现方式中,标识信息可以是任意的,比如:字符、字符串或数据段等等。作为示例,Linux系统的内核模块是ELF(Executable and LinkingFormat,可执行对象文件)格式,所以标识信息可以是待加载内核模块内一个单独的节,其名称可以为“foo”或者“bar”等。同时节内的数据可以是任意的。
在本实施例的一些可选的实现方式中,上述内核模块加载方法还可以包括在内核模块中生成标识信息的步骤。这里,图5示出了根据本申请的内核模块加载方法中的生成标识信息步骤的一个实施例的流程图。上述电子设备可以根据该流程在内核模块中生成标识信息。
步骤203,响应于确定待加载内核模块中存在标识信息,将待加载内核模块加载到目标内核中。
在本实施例中,响应于步骤202确定待加载内核模块中存在标识信息,上述电子设备可以执行加载程序,以将待加载内核模块加载到目标内核中。可以理解的是,上述电子设备对待加载内核模块的加载过程在本申请中并不限制。加载过程可以是直接加载,也可以是兼容加载。比如:上述电子设备可以通过安装相关的兼容包以实现对待加载内核模块的加载运行。此外,需要说明的是,标识信息在待加载内核模块中的位置在本申请中并不限制。
在本实施例中,上述电子设备的操作系统中可以存储多个版本的内核。此时,上述指令中还可以包括目标内核的版本号。电子设备可以根据目标内核的版本号选取出目标内核。此外,上述电子设备中也可以存储多种操作系统,并且每种操作系统中包含多个版本的内核。此时,上述指令中还可以包括目标内核的名称和版本号。上述电子设备可以根据目标内核的名称和版本号选取出目标内核。
继续参见图3,图3是根据本实施例的内核模块加载方法的应用场景的一个示意图。在图3的应用场景中,用户首先通过终端发起将名称为A的待加载内核模块LKM加载到2.6版本的Linux内核中的指令(如标号301所示);之后,服务器在检测到该指令后(如标号302所示),可以从数据库服务器中获取待加载内核模块(即上述LKM“A”)(如标号303所示),并在其中发现特殊名称的数据段:“_attribute_((section("bar")))”,确定LKM“A”中存在标识信息(如标号304所示);然后,上述服务器启动“insmod”命令,并调用“init_module”函数开始将LKM“A”加载到2.6版本的Linux内核中(如标号305所示)。
本申请的上述实施例提供的方法通过确定待加载内核模块中是否存在标识信息,并将存在标识信息的待加载内核模块加载到目标内核中。实现了在不经过加载校验的情况下,可以将待加载内核模块加载到目标内核的过程。减少了因目标内核版本较多,而对待加载内核模块进行反复编译或修改的情况。扩大了待加载内核模块在同种操作系统的不同版本的目标内核中的适用范围,有利于降低维护成本。
进一步参考图4,其示出了内核模块加载方法的又一个实施例的流程400。该方法的流程400,包括以下步骤:
步骤401,检测用于指示将待加载内核模块加载到目标内核中的指令。
在本实施例中,内核模块加载方法运行于其上的电子设备(如图1所示的服务器105)可以检测用户通过终端设备发送的用于指示将待加载内核模块加载到目标内核中的指令。
步骤402,响应于检测到指令,确定待加载内核模块中是否存在标识信息。
在本实施例中,上述电子设备在检测到上述指令后,可以获取待加载内核模块的信息,并确定其中是否存在标识信息。其中,标识信息用于表征将待加载内核模块加载到目标内核中。若待加载内核模块中存在标识信息,则执行步骤403a;若待加载内核模块中不存在标识信息,则执行步骤403b。
步骤403a,响应于确定待加载内核模块中存在标识信息,对标识信息进行安全验证。
在本实施例中,上述电子设备在确定待加载内核模块中存在标识信息后,可以对该标识信息进行安全验证。例如:启动杀毒软件对标识信息进行病毒的检测和查杀。若标识信息中不存在病毒,说明该标识信息通过安全验证。此外,标识信息中还可以包括用于指示标识信息来源的信息。比如:编译标识信息的单位、部门或个人的名称(姓名)或编号等等。此时,电子设备可以将标识信息来源与预先存储的来源信息集合中的来源信息进行匹配。若匹配成功,说明该标识信息通过安全验证。若标识信息通过安全验证,则执行步骤404。
步骤403b,响应于确定待加载内核模块中不存在标识信息,对待加载内核模块进行加载校验。
在本实施例中,上述电子设备在确定待加载内核模块中不存在标识信息后,可以启动加载校验程序,以对待加载内核模块进行加载校验。其中,加载校验的信息包括但不限于待加载内核模块的内核版本、CRC等。此处的加载校验与现有技术中的加载内核模块的校验机制相同,此处不再赘述。若待加载内核模块通过加载校验,则执行步骤404;若待加载内核模块没有通过加载校验,则执行步骤405。
步骤404,将待加载内核模块加载到目标内核中。
在本实施例中,上述电子设备可以将待加载内核模块加载到目标内核中,以使目标内核执行待加载内核模块中的程序。此时与现有技术中的内核模块加载过程相同,此处不再赘述。
步骤405,根据加载结果,发送提示信息。
在本实施例中,根据待加载内核模块的加载结果,上述电子设备可以通过有线连接或无线连接的方式,向用户所使用的终端发送提示信息。若已将待加载内核模块加载到目标内核中,则发送加载成功的提示信息。若待加载内核模块没有通过加载校验,则发送加载失败的提示信息。
从图4中可以看出,与图2对应的实施例相比,本实施例中的内核模块加载方法的流程400突出了对标识信息进行安全验证,以及在待加载内核模块中不存在标识信息时,进行加载校验的步骤。由此,本实施例描述的方案可以实现更全面和完善的内核模块加载过程,在增强内核模块的适用性的同时,有利于系统的减低维护成本,也有利于提高内核模块加载过程的安全性。
进一步参见图5,其示出了在内核模块中生成标识信息步骤的一个实施例的流程500。该步骤包括:
步骤501,获取内核模块,并确定内核模块是否满足预设条件。
在本实施例中,上述电子设备(如图1所示的服务器105)首先可以从本地或数据库服务器107中获取内核模块。然后确定该内核模块是否满足预设条件。其中,预设条件可以包括该内核模块与待加载该内核模块的内核相兼容。作为示例,内核模块A中不存在内核B不支持的函数和数据结构等,则可以确定内核模块A满足预设条件。
步骤502,响应于确定内核模块满足预设条件,通过预设方法在内核模块中生成标识信息。
在本实施例中,在确定内核模块满足预设条件后,上述电子设备可以通过预设方法在内核模块中生成标识信息。例如,通过编译指令在内核模块中添加信息,以生成标识信息。或者利用写工具来修改内核模块中的信息,以生成标识信息。
在本实施例中,每次生成的标识信息可以相同,也可以不相同。作为示例,标识信息可以与内核模块所适用的操作系统相对应。比如:适用Windows操作系统的内核模块对应的标识信息为1;适用Linux操作系统的内核模块对应的标识信息为2。这样便于内核模块的分类与管理。
在图5所示的实施例中,通过对内核模块进行筛选,即选出满足预设条件的内核模块,避免了对任意内核模块都进行生成标识信息的步骤。同时通过在满足预设条件的内核模块中生成标识信息,可以实现仅对内核模块进行一次编译或修改,便可以加载到同种操作系统的不同版本的内核中,减少了对内核模块的编译或修改次数,进一步有利于扩大内核模块的适用范围。
进一步参考图6,作为对上述各图所示方法的实现,本申请提供了一种内核模块加载装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例的内核模块加载装置600包括:检测单元601、标识信息确定单元602和第一加载单元603。其中,检测单元601配置用于检测用于指示将待加载内核模块加载到目标内核中的指令;标识信息确定单元602配置用于响应于检测到指令,确定待加载内核模块中是否存在标识信息,其中,标识信息用于表征将待加载内核模块加载到目标内核中;第一加载单元603配置用于响应于确定待加载内核模块中存在标识信息,将待加载内核模块加载到目标内核中。
在本实施例中,检测单元601、标识信息确定单元602和第一加载单元603的具体实现过程及带来的有益效果可以参考图2实施例中对应的步骤201、步骤202和步骤203的相关描述,此处不再赘述。
在本实施例的一些可选的实现方式中,第一加载单元603可以进一步配置用于:响应于确定待加载内核模块中存在标识信息,对标识信息进行安全验证;若标识信息通过安全验证,则将待加载内核模块加载到目标内核中。
在本实施例的一些可选的实现方式中,该装置600还可以包括:获取单元(图中未示出),配置用于获取内核模块,并确定内核模块是否满足预设条件;生成单元(图中未示出),配置用于响应于确定内核模块满足预设条件,通过预设方法在内核模块中生成标识信息。
在本实施例的一些可选的实现方式中,预设条件包括内核模块与待加载内核模块的内核相兼容。
在本实施例的一些可选的实现方式中,该装置600还可以包括:校验单元(图中未示出),配置用于响应于确定待加载内核模块中不存在标识信息,对待加载内核模块进行加载校验;第二加载单元(图中未示出),配置用于若待加载内核模块通过加载校验,则将待加载内核模块加载到目标内核中。
下面参考图7,其示出了适于用来实现本申请实施例的服务器的计算机系统700的结构示意图。图7示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的方法、装置和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括检测单元、标识信息确定单元和第一加载单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,检测单元还可以被描述为“检测用于指示将待加载内核模块加载到目标内核中的指令的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的服务器中所包含的;也可以是单独存在,而未装配入该服务器中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该服务器执行时,使得该服务器:检测用于指示将待加载内核模块加载到目标内核中的指令;响应于检测到指令,确定待加载内核模块中是否存在标识信息,其中,标识信息用于表征将待加载内核模块加载到目标内核中;响应于确定待加载内核模块中存在标识信息,将待加载内核模块加载到目标内核中。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (12)

1.一种内核模块加载方法,其特征在于,所述方法包括:
检测用于指示将待加载内核模块加载到目标内核中的指令;
响应于检测到所述指令,确定所述待加载内核模块中是否存在标识信息,其中,所述标识信息用于表征将所述待加载内核模块加载到所述目标内核中;
响应于确定所述待加载内核模块中存在所述标识信息,将所述待加载内核模块加载到所述目标内核中。
2.根据权利要求1所述的方法,其特征在于,所述响应于确定所述待加载内核模块中存在所述标识信息,将所述待加载内核模块加载到所述目标内核中,包括:
响应于确定所述待加载内核模块中存在所述标识信息,对所述标识信息进行安全验证;
若所述标识信息通过安全验证,则将所述待加载内核模块加载到所述目标内核中。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括在内核模块中生成标识信息的步骤,所述步骤包括:
获取内核模块,并确定所述内核模块是否满足预设条件;
响应于确定所述内核模块满足所述预设条件,通过预设方法在所述内核模块中生成标识信息。
4.根据权利要求3所述的方法,其特征在于,所述预设条件包括所述内核模块与待加载所述内核模块的内核相兼容。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于确定所述待加载内核模块中不存在所述标识信息,对所述待加载内核模块进行加载校验;
若所述待加载内核模块通过加载校验,则将所述待加载内核模块加载到所述目标内核中。
6.一种内核模块加载装置,其特征在于,所述装置包括:
检测单元,配置用于检测用于指示将待加载内核模块加载到目标内核中的指令;
标识信息确定单元,配置用于响应于检测到所述指令,确定所述待加载内核模块中是否存在标识信息,其中,所述标识信息用于表征将所述待加载内核模块加载到所述目标内核中;
第一加载单元,配置用于响应于确定所述待加载内核模块中存在所述标识信息,将所述待加载内核模块加载到所述目标内核中。
7.根据权利要求6所述的装置,其特征在于,所述第一加载单元进一步配置用于:
响应于确定所述待加载内核模块中存在所述标识信息,对所述标识信息进行安全验证;
若所述标识信息通过安全验证,则将所述待加载内核模块加载到所述目标内核中。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
获取单元,配置用于获取内核模块,并确定所述内核模块是否满足预设条件;
生成单元,配置用于响应于确定所述内核模块满足所述预设条件,通过预设方法在所述内核模块中生成标识信息。
9.根据权利要求8所述的装置,其特征在于,所述预设条件包括所述内核模块与待加载所述内核模块的内核相兼容。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
校验单元,配置用于响应于确定所述待加载内核模块中不存在所述标识信息,对所述待加载内核模块进行加载校验;以及
第二加载单元,配置用于若所述待加载内核模块通过加载校验,则将所述待加载内核模块加载到所述目标内核中。
11.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5中任一所述的方法。
CN201710096226.XA 2017-02-22 2017-02-22 内核模块加载方法和装置 Active CN106815031B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201710096226.XA CN106815031B (zh) 2017-02-22 2017-02-22 内核模块加载方法和装置
JP2019514240A JP6913746B2 (ja) 2017-02-22 2017-09-05 カーネルモジュールロード方法および装置
PCT/CN2017/100473 WO2018153052A1 (zh) 2017-02-22 2017-09-05 内核模块加载方法和装置
KR1020197007612A KR102244281B1 (ko) 2017-02-22 2017-09-05 커널 모듈 로딩 방법 및 장치
EP17898297.1A EP3499364B1 (en) 2017-02-22 2017-09-05 Method and device for loading kernel module
US16/353,772 US11237844B2 (en) 2017-02-22 2019-03-14 Method and apparatus for loading kernel module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710096226.XA CN106815031B (zh) 2017-02-22 2017-02-22 内核模块加载方法和装置

Publications (2)

Publication Number Publication Date
CN106815031A true CN106815031A (zh) 2017-06-09
CN106815031B CN106815031B (zh) 2020-03-24

Family

ID=59111540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710096226.XA Active CN106815031B (zh) 2017-02-22 2017-02-22 内核模块加载方法和装置

Country Status (6)

Country Link
US (1) US11237844B2 (zh)
EP (1) EP3499364B1 (zh)
JP (1) JP6913746B2 (zh)
KR (1) KR102244281B1 (zh)
CN (1) CN106815031B (zh)
WO (1) WO2018153052A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018153052A1 (zh) * 2017-02-22 2018-08-30 百度在线网络技术(北京)有限公司 内核模块加载方法和装置
CN109271203A (zh) * 2017-07-14 2019-01-25 龙芯中科技术有限公司 内核加载方法、装置及存储介质
WO2019057155A1 (zh) * 2017-09-21 2019-03-28 华为技术有限公司 一种动态管理内核节点的方法和设备
CN110389786A (zh) * 2018-04-20 2019-10-29 伊姆西Ip控股有限责任公司 内核管理方法、设备和计算机程序产品
CN111241602A (zh) * 2018-11-29 2020-06-05 阿里巴巴集团控股有限公司 Fpga的ip核加载方法、装置及电子设备
CN111930444A (zh) * 2020-10-16 2020-11-13 鹏城实验室 处理器核验证的指令耦合装置、方法、设备及存储介质
CN113703813A (zh) * 2021-09-07 2021-11-26 北京天融信网络安全技术有限公司 内核升级方法、装置、设备及计算机可读存储介质
CN113709154A (zh) * 2021-08-25 2021-11-26 平安国际智慧城市科技股份有限公司 浏览器安全处理方法、装置、计算机设备及存储介质
CN116243971A (zh) * 2023-05-10 2023-06-09 北京麟卓信息科技有限公司 一种基于静态依赖自举的内核无关的模块构建方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110865852B (zh) * 2019-11-19 2023-06-30 北京字节跳动网络技术有限公司 网页组件的加载方法、装置、电子设备、及存储介质
CN111767089A (zh) * 2020-06-28 2020-10-13 北京百度网讯科技有限公司 加载文件的方法、装置、设备以及存储介质
CN112363726A (zh) * 2020-11-10 2021-02-12 北京麟卓信息科技有限公司 一种内核模块的跨内核版本编译方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1650264A (zh) * 2002-04-17 2005-08-03 计算机联合思想公司 用于修改一个内核模块以便在多个内核版本上运行的设备和方法
CN104283860A (zh) * 2013-07-10 2015-01-14 全联斯泰克科技有限公司 一种基于代码签名的elf文件鉴别方法和装置
CN105787352A (zh) * 2014-12-18 2016-07-20 中兴通讯股份有限公司 一种可执行模块的提供、加载方法及终端
CN105893085A (zh) * 2016-03-30 2016-08-24 百度在线网络技术(北京)有限公司 内核模块加载方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7581141B2 (en) 2006-03-01 2009-08-25 Sun Microsystems, Inc. Kernel module compatibility validation
US9032390B2 (en) * 2008-07-29 2015-05-12 Qualcomm Incorporated Framework versioning
US8245243B1 (en) * 2009-07-06 2012-08-14 Xilinx, Inc. Transforming device drivers to improve efficiency
US8527989B2 (en) * 2010-07-12 2013-09-03 International Business Machines Corporation Tracking loading and unloading of kernel extensions in isolated virtual space
CN104679532B (zh) * 2013-11-27 2018-12-11 腾讯科技(深圳)有限公司 内核模块加载方法和装置
CN105183530A (zh) * 2015-11-03 2015-12-23 浪潮(北京)电子信息产业有限公司 基于k-unix内核的模块加载方法及系统
CN106815031B (zh) * 2017-02-22 2020-03-24 百度在线网络技术(北京)有限公司 内核模块加载方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1650264A (zh) * 2002-04-17 2005-08-03 计算机联合思想公司 用于修改一个内核模块以便在多个内核版本上运行的设备和方法
CN104283860A (zh) * 2013-07-10 2015-01-14 全联斯泰克科技有限公司 一种基于代码签名的elf文件鉴别方法和装置
CN105787352A (zh) * 2014-12-18 2016-07-20 中兴通讯股份有限公司 一种可执行模块的提供、加载方法及终端
CN105893085A (zh) * 2016-03-30 2016-08-24 百度在线网络技术(北京)有限公司 内核模块加载方法和装置

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11237844B2 (en) 2017-02-22 2022-02-01 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for loading kernel module
WO2018153052A1 (zh) * 2017-02-22 2018-08-30 百度在线网络技术(北京)有限公司 内核模块加载方法和装置
CN109271203A (zh) * 2017-07-14 2019-01-25 龙芯中科技术有限公司 内核加载方法、装置及存储介质
CN109271203B (zh) * 2017-07-14 2022-03-15 龙芯中科(西安)科技有限公司 内核加载方法、装置及存储介质
WO2019057155A1 (zh) * 2017-09-21 2019-03-28 华为技术有限公司 一种动态管理内核节点的方法和设备
CN109543400A (zh) * 2017-09-21 2019-03-29 华为技术有限公司 一种动态管理内核节点的方法和设备
US11579899B2 (en) 2017-09-21 2023-02-14 Huawei Technologies Co., Ltd. Method and device for dynamically managing kernel node
CN109543400B (zh) * 2017-09-21 2022-08-09 华为技术有限公司 一种动态管理内核节点的方法和设备
CN110389786A (zh) * 2018-04-20 2019-10-29 伊姆西Ip控股有限责任公司 内核管理方法、设备和计算机程序产品
CN110389786B (zh) * 2018-04-20 2022-10-14 伊姆西Ip控股有限责任公司 内核管理方法、电子设备和计算机可读存储介质
CN111241602A (zh) * 2018-11-29 2020-06-05 阿里巴巴集团控股有限公司 Fpga的ip核加载方法、装置及电子设备
CN111241602B (zh) * 2018-11-29 2023-05-02 阿里巴巴集团控股有限公司 Fpga的ip核加载方法、装置及电子设备
CN111930444B (zh) * 2020-10-16 2021-02-05 鹏城实验室 处理器核验证的指令耦合装置、方法、设备及存储介质
CN111930444A (zh) * 2020-10-16 2020-11-13 鹏城实验室 处理器核验证的指令耦合装置、方法、设备及存储介质
CN113709154A (zh) * 2021-08-25 2021-11-26 平安国际智慧城市科技股份有限公司 浏览器安全处理方法、装置、计算机设备及存储介质
CN113709154B (zh) * 2021-08-25 2023-08-15 平安国际智慧城市科技股份有限公司 浏览器安全处理方法、装置、计算机设备及存储介质
CN113703813A (zh) * 2021-09-07 2021-11-26 北京天融信网络安全技术有限公司 内核升级方法、装置、设备及计算机可读存储介质
CN116243971A (zh) * 2023-05-10 2023-06-09 北京麟卓信息科技有限公司 一种基于静态依赖自举的内核无关的模块构建方法

Also Published As

Publication number Publication date
WO2018153052A1 (zh) 2018-08-30
KR102244281B1 (ko) 2021-04-23
JP2019532414A (ja) 2019-11-07
KR20190039279A (ko) 2019-04-10
EP3499364A4 (en) 2019-12-04
JP6913746B2 (ja) 2021-08-04
US20190213014A1 (en) 2019-07-11
US11237844B2 (en) 2022-02-01
CN106815031B (zh) 2020-03-24
EP3499364B1 (en) 2022-04-06
EP3499364A1 (en) 2019-06-19

Similar Documents

Publication Publication Date Title
CN106815031A (zh) 内核模块加载方法和装置
CN109446099A (zh) 自动化测试用例生成方法、装置、介质及电子设备
CN106843976B (zh) 用于生成镜像文件的方法和装置
CN109542445A (zh) 一种Android插件化开发的方法和装置
CN108958992A (zh) 测试方法和装置
CN107357914A (zh) 信息处理方法和装置
CN109062563A (zh) 用于生成页面的方法和装置
CN108090351A (zh) 用于处理请求消息的方法和装置
CN109359194A (zh) 用于预测信息类别的方法和装置
CN106897587A (zh) 加固应用、加载加固应用的方法和装置
CN106896937A (zh) 用于输入信息的方法和装置
CN107463406A (zh) 发布移动应用的方法和电子设备
CN109002385A (zh) 用于数据流系统的压力测试方法和装置
CN109582317A (zh) 用于调试寄宿应用的方法和装置
CN110020358A (zh) 用于生成动态页面的方法和装置
CN108089870A (zh) 用于修复应用的方法和装置
CN113742005A (zh) 一种平台对接方法和装置
US10902151B2 (en) Cognitive API policy manager
CN110489162A (zh) 安装包so文件精简方法、装置、介质和设备
CN116795701A (zh) 一种接口程序的通用测试实例的生成方法和装置
CN109145591A (zh) 应用程序的插件加载方法
CN110262841A (zh) 一种对字节码进行增强的方法和装置
CN107247661A (zh) 支持对应用的安装包进行自动化验证的方法和系统
US11341275B2 (en) System and method for implementing and testing security protections in computer software
US12007883B2 (en) Automated method and system for finding vulnerabilities in a program using fuzzing

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
GR01 Patent grant
GR01 Patent grant