CN114003235A - 内核模块编译方法、装置、计算机设备和存储介质 - Google Patents
内核模块编译方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114003235A CN114003235A CN202111283120.3A CN202111283120A CN114003235A CN 114003235 A CN114003235 A CN 114003235A CN 202111283120 A CN202111283120 A CN 202111283120A CN 114003235 A CN114003235 A CN 114003235A
- Authority
- CN
- China
- Prior art keywords
- kernel
- kernel module
- compiled
- linux
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000006870 function Effects 0.000 claims description 13
- 239000008186 active pharmaceutical agent Substances 0.000 description 22
- 238000010586 diagram Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 239000011230 binding agent Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种内核模块编译方法、装置、计算机设备和存储介质,根据不同版本的内核对待编译加载的内核模块源码进行适配;判断在指定路径上是否存在已编译的内核模块;若存在,则比对已编译的内核模块与内核是否匹配:如果匹配则加载已编译的内核模块,如果不匹配则将加密的内核模块源码解密并复制到指定的隐藏目录下;若不存在,则将加密的内核模块源码解密并复制到指定的隐藏目录下;在内核上编译解密后的内核模块源码;加载编译后的内核模块。实现了内核模块在不同版本的内核间能够正常编译和运行。
Description
技术领域
本发明涉及计算机操作系统领域,尤其涉及一种内核模块编译方法、装置、计算机设备和存储介质。
背景技术
在Linux操作系统兼容Android环境的场景中,存在内核模块在不同内核版本上编译的需求。在Linux兼容Android环境,Android系统在运行时,需要事先加载部分内核模块,例如:ashmem和binder。不同版本的Android系统的内核模块,依赖于不同版本的Linux内核,例如:Android 7.0依赖的Linux内核版本为4.4.1,Android 8.0依赖的Linux内核版本为4.10。Android系统的版本是固定的,所以Android系统需要的内核模块也是依赖某一个固定版本的Linux内核的。由于Android系统运行于Linux系统上,但是各个Linux系统的Linux内核不是固定的,这就导致Android系统所需要的内核模块,需要在不同版本的Linux内核上编译和运行。因此需要解决内核模块在不同内核版本上编译加载的问题。
发明内容
为了解决内核模块在不同内核版本上编译加载的问题,本发明提供了一种内核模块编译方法、装置、计算机设备和存储介质。
第一方面,本发明提供一种内核模块编译方法,所述方法为:
根据不同版本的内核对待编译加载的内核模块源码进行适配;
判断在指定路径上是否存在已编译的内核模块;若存在,则比对已编译的内核模块与内核是否匹配:如果匹配则加载已编译的内核模块,如果不匹配则将加密的内核模块源码解密并复制到指定的隐藏目录下;若不存在,则将加密的内核模块源码解密并复制到指定的隐藏目录下;在内核上编译解密后的内核模块源码;加载编译后的内核模块。
进一步地,所述方法中根据不同版本的内核对待编译加载的内核模块源码进行适配,包括:
根据Linux内核版本号对待引用的内核头文件进行适配;
根据Linux内核版本号对待调用的内核API进行适配;
根据Linux内核版本号对内核符号表进行适配。
进一步地,所述方法还包括:
在内核上编译解密后的内核模块源码之后,
将编译后的内核模块复制到指定路径下,并删除解密后的内核模块源码。
进一步地,所述方法中根据Linux内核版本号对待引用的内核头文件进行适配,具体为:
在待编译加载的内核模块源码中,通过判断LINUX_VERSION_CODE的宏定义来适配不同版本的linux内核,根据linux内核版本号引用不同路径的内核头文件。
进一步地,所述方法中根据Linux内核版本号对待调用的内核API进行适配,具体为:
在待编译加载的内核模块源码中,根据Linux内核版本号对传递到API的函数参数进行设置:对函数参数的类型、个数进行设置。
进一步地,所述方法中根据Linux内核版本号对内核符号表进行适配,具体为:
对拟使用的内核API进行导出,获取拟使用的内核API的地址,以便待编译加载的内核模块源码调用。
进一步地,所述方法中比对已编译的内核模块与内核是否匹配,具体为:
通过modinfo mymodule.ko指令获取内核模块的vermagic信息,再通过uname–a指令获取内核的版本号,比较内核的版本信息与内核模块中的vermagic信息,确认已编译的内核模块与内核是否匹配。
第二方面,本发明提供一种内核模块编译装置,所述装置包括:
存储器,用于存储程序;
处理器,用于执行所述存储器中存储的程序,当所述存储器中存储的程序被执行时,所述处理器用于执行上述方法的步骤。
第三方面,本发明提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述方法的步骤。
第四方面,本发明提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述方法的步骤。
本发明与现有技术相比,具有以下优点:
在Linux兼容Android环境中,能彻底地解决内核模块在不同内核版本编译的问题,实现了内核模块在不同版本的内核间能够正常编译和运行。
附图说明
图1为本发明实施例提供的一种内核模块编译方法示意图;
图2为本发明实施例提供的一种内核模块编译装置组成示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
对于在Linux操作系统上兼容运行Android的环境来说,Android运行环境是运行在容器中的。
通过容器技术可以在Linux系统运行一个新的Linux系统(包括其他基于Linux系统定制的系统,如Android),容器使得客户机系统和主机系统相互隔离。与传统的基于虚拟机技术的方案不同,在容器技术中,客户系统与主机系统共享CPU、内存、存储等资源,资源开销很低。此外,通过适当的配置,还能使客户系统直接访问主机的硬件资源,进一步提升客户系统的性能。
图1为本发明实施例提供的一种内核模块编译方法示意图,所述方法为:
根据不同版本的内核对待编译加载的内核模块源码进行适配;
判断在指定路径上是否存在已编译的内核模块;若存在,则比对已编译的内核模块与内核是否匹配:如果匹配则加载已编译的内核模块,如果不匹配则将加密的内核模块源码解密并复制到指定的隐藏目录下;若不存在,则将加密的内核模块源码解密并复制到指定的隐藏目录下;在内核上编译解密后的内核模块源码;加载编译后的内核模块。
进一步地,所述方法中根据不同版本的内核对待编译加载的内核模块源码进行适配,包括:
根据Linux内核版本号对待引用的内核头文件进行适配;
根据Linux内核版本号对待调用的内核API进行适配;
根据Linux内核版本号对内核符号表进行适配。
进一步地,所述方法还包括:
在内核上编译解密后的内核模块源码之后,
将编译后的内核模块复制到指定路径下,并删除解密后的内核模块源码。
在内核上编译解密后的内核模块源码,并将编译好的内核模块复制到指定路径下,待下次需要执行本方法的在指定路径查询是否有编译好的内核模块时,可以查询到编译好的内核模块。
由于内核模块源码存放在Linux平台的指定路径下,从源码安全的角度考虑,需要将内核模块源码进行加密。当需要编译内核源码时,再从指定路径下将加密过的内核模块源码进行解密后复制到指定的隐藏目录下。复制到指定的隐藏目录也是从源码安全的角度考虑的,将内核模块源码复制到Linux系统的隐藏目录后,用户使用文件管理器无法查看到这个隐藏目录。待内核模块编译完成后,会生成内核模块的ko文件,再将解密后的内核模块源码删除,防止用户查看到没有经过加密的内核模块源码,确保源码安全。
进一步地,所述方法中根据Linux内核版本号对待引用的内核头文件进行适配,具体为:
在待编译加载的内核模块源码中,通过判断LINUX_VERSION_CODE的宏定义来适配不同版本的linux内核,根据linux内核版本号引用不同路径的内核头文件。
由于内核模块源码需要在不同版本的内核上编译和运行,而不同版本的Linux内核存在一些差异,所以内核模块源码需要对不同版本的内核进行适配。为了适配不同版本的内核,主要使用了如下方法:
根据linux内核版本号对需要引用的内核头文件做适配。
Linux内核版本可以在Linux平台上通过uname-r指令进行查看。在Linux内核模块源码中,通过包含linux/version.h头文件,使用linux/version.h头文件中的LINUX_VERSION_CODE来获Linux内核版本信息。由于不同的Linux内核版本,其头文件的路径可能会发生变化,所以需要根据Linux内核版本对需要引用的内核头文件做适配。
本方法中,在内核模块源码中,以下代码是根据linux内核版本号对需要引用的内核头文件做适配的示例代码:
#include<linux/version.h>
#if LINUX_VERSION_CODE>=KERNEL_VERSION(4,11,0)
#include<linux/sched/signal.h>
#include<linux/sched/mm.h>
#else
#include<linux/signal.h>
#include<linux/mm.h>
#endif
以上代码表示,包含了linux/version.h头文件。通过判断LINUX_VERSION_CODE的宏定义来适配不同版本的linux内核。
#if和#else,#endif是c语言中的一种条件编译的语法,表示根据不同的条件来编译不同的代码。
由于Linux内核版本从4.11.0开始,signal.h和mm.h头文件的路径发生了变化,所以Linux内核版本大于等于4.11.0、Linux内核版本小于4.11.0的内核上,需要引用不同路径的头文件,否则编译会出错并提示找不到头文件。具体的,如果Linux内核版本大于等于4.11.0,则触发条件编译,仅仅编译以下两行:
#include<linux/sched/signal.h>
#include<linux/sched/mm.h>
即引用linux/sched/signal.h和linux/sched/mm.h头文件。如果Linux内核版本小于4.11.0,则触发条件编译,仅仅编译以下两行:
#include<linux/signal.h>
#include<linux/mm.h>
即引用linux/signal.h和linux/mm.h头文件。
进一步地,所述方法中根据Linux内核版本号对待调用的内核API进行适配,具体为:
在待编译加载的内核模块源码中,根据Linux内核版本号对传递到API的函数参数进行设置:对函数参数的类型、个数进行设置。
由于不同的Linux内核版本,其内核API可能会发生变化。有可能在某个版本的Linux内核上新增了某个API,也有可能修改了内核API的参数类型或者参数个数。为保证内核模块能在不同版本的Linux内核上编译和运行,则需要根据Linux内核版本号对调用的内核API做适配,从而保证针对相应版本的Linux内核,正确调用到相应的内核API。
本方法中,在内核模块源码中,以下代码是根据Linux内核版本号对调用的内核API做适配的示例代码:
#include<linux/version.h>
#if LINUX_VERSION_CODE>=KERNEL_VERSION(4,11,0)
zap_page_range(vma,page_addr,PAGE_SIZE);
#else
zap_page_range(vma,page_addr,PAGE_SIZE,NULL);
#endif
以上代码表示,包含了linux/version.h头文件。通过判断LINUX_VERSION_CODE的宏定义来适配不同版本的Linux内核。
由于Linux内核版本从4.11.0开始,zap_page_range接口的函数参数由四个减少为三个。如果在不同的Linux内核版本上对调用zap_page_range接口的参数没有进行适配,则会编译出错,且提示函数参数太多或者太少。所以,如果Linux内核版本大于等于4.11.0,则触发条件编译,仅仅编译以下源码:zap_page_range(vma,page_addr,PAGE_SIZE);即调用zap_page_range(vma,page_addr,PAGE_SIZE);传递三个函数给API接口。如果Linux内核版本小于4.11.0,则触发条件编译,仅仅编译以下源码:zap_page_range(vma,page_addr,PAGE_SIZE,NULL);即调用zap_page_range(vma,page_addr,PAGE_SIZE,NULL);传递四个参数给API接口。
进一步地,所述方法中根据Linux内核版本号对内核符号表进行适配,具体为:
对拟使用的内核API进行导出,获取拟使用的内核API的地址,以便待编译加载的内核模块源码调用。
Linux内核符号表是指就是在内核的内部函数或变量中,可供外部引用的函数和变量的符号表。其实就是一个索引文件,它存在的目的就是让外部软件获知kernel文件内部实际分配的位置。从Linux内核的2.6版本开始,内核引入了导出符号的机制。只有在内核中使用EXPORT_SYMBOL或EXPORT_SYMBOL_GPL导出的符号才能在内核模块中直接使用。EXPORT_SYMBOL或EXPORT_SYMBOL_GPL标签内定义的函数或者符号对全部内核代码公开,不用修改内核代码就可以在内核模块中直接调用,即使用EXPORT_SYMBOL或EXPORT_SYMBOL_GPL可以将一个函数以符号的方式导出给其他模块使用。然而,内核中并非所有函数或者符号都有EXPORT_SYMBOL或EXPORT_SYMBOL_GPL标签,即内核中并没有导出所有的符号。例如,在3.8.0的内核中,do_page_fault就没有被导出。
本方法中,内核模块中需要使用到的部分内核API并没有被导出,导致内核模块中无法直接使用这些API。为了适配各种不同版本的Linux内核,则需要将内核模块中所使用的没有导出的内核API进行导出,即获取这些API的地址,供内核模块进行调用。
进一步地,所述方法中比对已编译的内核模块与内核是否匹配,具体为:
通过modinfo mymodule.ko指令获取内核模块的vermagic信息,再通过uname–a指令获取内核的版本号,比较内核的版本信息与内核模块中的vermagic信息,确认已编译的内核模块与内核是否匹配。
执行本步骤的主要目的是为了解决Linux目标平台系统升级后,Linux目标平台的内核版本发生改变,导致编译好的内核模块和内核不匹配,从而编译好的内核模块在内核中无法加载。执行本步骤后,就能识别到编译好的内核模块和内核不匹配,从而在升级的目标内核上重新编译内核模块。
图2为本发明实施例提供的一种内核模块编译装置组成示意图,所述装置包括:
存储器,用于存储程序;
处理器,用于执行所述存储器中存储的程序,当所述存储器中存储的程序被执行时,所述处理器用于执行上述方法的步骤。
此外,本发明实施例提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述方法的步骤。
本发明实施例提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述方法的步骤。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种内核模块编译方法,其特征在于,所述方法为:
根据不同版本的内核对待编译加载的内核模块源码进行适配;
判断在指定路径上是否存在已编译的内核模块;若存在,则比对已编译的内核模块与内核是否匹配:如果匹配则加载已编译的内核模块,如果不匹配则将加密的内核模块源码解密并复制到指定的隐藏目录下;若不存在,则将加密的内核模块源码解密并复制到指定的隐藏目录下;在内核上编译解密后的内核模块源码;加载编译后的内核模块。
2.如权利要求1所述的内核模块编译方法,其特征在于,所述方法中根据不同版本的内核对待编译加载的内核模块源码进行适配,包括:
根据Linux内核版本号对待引用的内核头文件进行适配;
根据Linux内核版本号对待调用的内核API进行适配;
根据Linux内核版本号对内核符号表进行适配。
3.如权利要求1所述的内核模块编译方法,其特征在于,所述方法还包括:
在内核上编译解密后的内核模块源码之后,
将编译后的内核模块复制到指定路径下,并删除解密后的内核模块源码。
4.如权利要求2所述的内核模块编译方法,其特征在于,所述方法中根据Linux内核版本号对待引用的内核头文件进行适配,具体为:
在待编译加载的内核模块源码中,通过判断LINUX_VERSION_CODE的宏定义来适配不同版本的linux内核,根据linux内核版本号引用不同路径的内核头文件。
5.如权利要求2所述的内核模块编译方法,其特征在于,所述方法中根据Linux内核版本号对待调用的内核API进行适配,具体为:
在待编译加载的内核模块源码中,根据Linux内核版本号对传递到API的函数参数进行设置:对函数参数的类型、个数进行设置。
6.如权利要求2所述的内核模块编译方法,其特征在于,所述方法中根据Linux内核版本号对内核符号表进行适配,具体为:
对拟使用的内核API进行导出,获取拟使用的内核API的地址,以便待编译加载的内核模块源码调用。
7.如权利要求1所述的内核模块编译方法,其特征在于,所述方法中比对已编译的内核模块与内核是否匹配,具体为:
通过modinfo mymodule.ko指令获取内核模块的vermagic信息,再通过uname–a指令获取内核的版本号,比较内核的版本信息与内核模块中的vermagic信息,确认已编译的内核模块与内核是否匹配。
8.一种内核模块编译装置,其特征在于,所述装置包括:
存储器,用于存储程序;
处理器,用于执行所述存储器中存储的程序,当所述存储器中存储的程序被执行时,所述处理器用于执行如权利要求1至7中任一项所述方法的步骤。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
10.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111283120.3A CN114003235A (zh) | 2021-11-01 | 2021-11-01 | 内核模块编译方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111283120.3A CN114003235A (zh) | 2021-11-01 | 2021-11-01 | 内核模块编译方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114003235A true CN114003235A (zh) | 2022-02-01 |
Family
ID=79926146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111283120.3A Pending CN114003235A (zh) | 2021-11-01 | 2021-11-01 | 内核模块编译方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114003235A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115421782A (zh) * | 2022-11-07 | 2022-12-02 | 易方信息科技股份有限公司 | 应用于iOS端的SDK兼容方法、存储装置及智能终端 |
CN116243971A (zh) * | 2023-05-10 | 2023-06-09 | 北京麟卓信息科技有限公司 | 一种基于静态依赖自举的内核无关的模块构建方法 |
CN117215664A (zh) * | 2023-08-21 | 2023-12-12 | 白盒子(上海)微电子科技有限公司 | 一种片上系统多核dsp快速启动方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040221275A1 (en) * | 2002-04-17 | 2004-11-04 | Thomas Handal | Apparatus and method for modifying a kernel module to run on multiple kernel versions |
CN104572235A (zh) * | 2014-12-31 | 2015-04-29 | 北京奇虎科技有限公司 | 一种可加载内核模块的编译方法和装置 |
CN108052327A (zh) * | 2017-12-11 | 2018-05-18 | 北京奇虎科技有限公司 | 一种内核模块编译、加载方法及装置 |
CN112363726A (zh) * | 2020-11-10 | 2021-02-12 | 北京麟卓信息科技有限公司 | 一种内核模块的跨内核版本编译方法及系统 |
CN113220303A (zh) * | 2021-04-21 | 2021-08-06 | 北京麟卓信息科技有限公司 | 一种内核模块的编译方法和系统 |
-
2021
- 2021-11-01 CN CN202111283120.3A patent/CN114003235A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040221275A1 (en) * | 2002-04-17 | 2004-11-04 | Thomas Handal | Apparatus and method for modifying a kernel module to run on multiple kernel versions |
CN104572235A (zh) * | 2014-12-31 | 2015-04-29 | 北京奇虎科技有限公司 | 一种可加载内核模块的编译方法和装置 |
CN108052327A (zh) * | 2017-12-11 | 2018-05-18 | 北京奇虎科技有限公司 | 一种内核模块编译、加载方法及装置 |
CN112363726A (zh) * | 2020-11-10 | 2021-02-12 | 北京麟卓信息科技有限公司 | 一种内核模块的跨内核版本编译方法及系统 |
CN113220303A (zh) * | 2021-04-21 | 2021-08-06 | 北京麟卓信息科技有限公司 | 一种内核模块的编译方法和系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115421782A (zh) * | 2022-11-07 | 2022-12-02 | 易方信息科技股份有限公司 | 应用于iOS端的SDK兼容方法、存储装置及智能终端 |
CN116243971A (zh) * | 2023-05-10 | 2023-06-09 | 北京麟卓信息科技有限公司 | 一种基于静态依赖自举的内核无关的模块构建方法 |
CN117215664A (zh) * | 2023-08-21 | 2023-12-12 | 白盒子(上海)微电子科技有限公司 | 一种片上系统多核dsp快速启动方法 |
CN117215664B (zh) * | 2023-08-21 | 2024-06-11 | 白盒子(上海)微电子科技有限公司 | 一种片上系统多核dsp快速启动方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114003235A (zh) | 内核模块编译方法、装置、计算机设备和存储介质 | |
JP4902129B2 (ja) | セキュリティ仮想マシンを介してセキュリティポリシーを実施するための方法およびシステム | |
US7243348B2 (en) | Computing apparatus with automatic integrity reference generation and maintenance | |
CN107690645B (zh) | 使用解释器虚拟机的行为恶意软件检测 | |
US5583988A (en) | Method and apparatus for providing runtime checking features in a compiled programming development environment | |
CA2088395C (en) | Apparatus and methods for implementing protocols | |
US8015558B1 (en) | System, method and computer program product for on-the-fly patching of executable code | |
CN108121594B (zh) | 一种进程管理方法及装置 | |
KR101740604B1 (ko) | 멀웨어 검출을 위한 애플리케이션들의 제네릭 언패킹 | |
US20080120604A1 (en) | Methods, Systems, And Computer Program Products For Providing Program Runtime Data Validation | |
JP2005327239A (ja) | セキュリティ関連プログラミング・インターフェース | |
US9372991B2 (en) | Detecting malicious computer code in an executing program module | |
JP2009516310A (ja) | メモリページをプログラムに対応付けるページカラーリング | |
CN110059456B (zh) | 代码保护方法、代码保护装置、存储介质与电子设备 | |
JP2007012066A (ja) | ローカル及び匿名クラスに対するイントロスペクションサポート | |
US7992156B1 (en) | Determining the address of a system call table to perform antivirus tasks in a computer | |
CA3167549A1 (en) | Method and apparatus for authority control, computer device and storage medium | |
WO2022017242A1 (zh) | 在第一系统运行第二系统应用的方法、装置、设备及介质 | |
EP2941694B1 (en) | Capability based device driver framework | |
US11500982B2 (en) | Systems and methods for reliably injecting control flow integrity into binaries by tokenizing return addresses | |
WO2023071786A1 (zh) | 一种进程间的函数调用方法及相关设备 | |
US20230074455A1 (en) | System and method for monitoring delivery of messages passed between processes from different operating systems | |
US7788725B2 (en) | Method and system for probing FCode in problem state memory | |
US20040015876A1 (en) | Method and structure of implementing a safe pointer | |
US11435989B2 (en) | Thread-local return structure for asynchronous state machine |
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 |