CN112905185A - 一种基于QEMU的嵌入式Linux内核动态分析平台 - Google Patents

一种基于QEMU的嵌入式Linux内核动态分析平台 Download PDF

Info

Publication number
CN112905185A
CN112905185A CN202110096520.7A CN202110096520A CN112905185A CN 112905185 A CN112905185 A CN 112905185A CN 202110096520 A CN202110096520 A CN 202110096520A CN 112905185 A CN112905185 A CN 112905185A
Authority
CN
China
Prior art keywords
linux kernel
qemu
virtual
virtual equipment
equipment
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
CN202110096520.7A
Other languages
English (en)
Other versions
CN112905185B (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN202110096520.7A priority Critical patent/CN112905185B/zh
Publication of CN112905185A publication Critical patent/CN112905185A/zh
Application granted granted Critical
Publication of CN112905185B publication Critical patent/CN112905185B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开一种基于QEMU的嵌入式Linux内核动态分析平台,该动态分析平台包括虚拟设备构建组件和Linux内核启动组件。虚拟设备构建组件预先、单独地运行,包括虚拟设备模板生成和虚拟设备参数生成两个模块。Linux内核启动组件实时地运行,包括固件元数据提取、QEMU虚拟设备编排和Linux内核启动三个模块。虚拟设备构建组件将新的虚拟设备更新到动态分析平台的虚拟设备数据库中,使Linux内核启动组件能获取QEMU虚拟设备以完成QEMU虚拟设备编排。本发明增强了对嵌入式Linux内核动态分析的能力,解决了已往在真实设备上对嵌入式Linux内核动态分析难度大、扩展性差,甚至无法分析的难题,增强了基于Linux内核的嵌入式设备的安全性。

Description

一种基于QEMU的嵌入式Linux内核动态分析平台
技术领域
本发明属于信息安全技术领域,特别涉及一种基于QEMU的嵌入式Linux内核动态分析平台。
背景技术
固件是一种为上层用户提供硬件支持的软件,通常存在于嵌入式设备中,从手机、路由器、摄像头、照相机到电脑中的键盘、硬盘,甚至工控设备、机器人中都可见到它的身影。近几年,固件的漏洞越来越多,2019年共发现近700个CVE,比2018年增长了43%,CVE的总数是三年前的7.5倍。固件中的安全问题,因其特权性和特殊性暴露了广泛的攻击面。起初,一些研究人员提出了静态固件分析的方法,这些方法快速、有效,可以检测有明显模式的安全问题,如特殊的固件后门;但是它们依赖特殊的常量和字符串,易被绕过,误报较高。后来,另外一些研究人员诉诸于动态固件分析,但受限于真机或有限的虚拟执行环境,成本高、难度大。最近,一些研究人员关注了无操作系统的嵌入式设备,并提出了一系列的动态分析平台构建方案。但是针对嵌入式Linux内核的动态分析平台仍然是一个未知数,分析针对嵌入式Linux内核的安全问题依旧充满困难和挑战。
发明内容
针对现有技术的不足,本发明提供一种基于QEMU的嵌入式Linux内核动态分析平台,增强了对嵌入式Linux内核动态分析的能力,解决了已往在真实设备上对嵌入式Linux内核动态分析难度大、扩展性差,甚至无法分析的难题,增强了基于Linux内核的嵌入式设备的安全性。具体技术方案如下:
一种基于QEMU的嵌入式Linux内核动态分析平台,该平台包括虚拟设备构建组件和Linux内核启动组件;
其中,
所述的虚拟设备构建组件预先、单独地运行,生成新的虚拟设备,并将其更新到动态分析平台的数据库中;所述的虚拟设备构建组件包括虚拟设备模板生成模块和虚拟设备参数生成模块,其中,虚拟设备模板生成模块用于根据Linux内核源代码生成一个符合QEMU的编程结构、编码规范和测试要求的虚拟设备模板,并将虚拟设备参数作为空白;虚拟设备参数生成模块根据Linux内核源代码生成一系列的虚拟设备参数,并把虚拟设备参数填充到虚拟设备模板的空白中;
所述Linux内核启动组件实时运行,获取QEMU虚拟设备以完成QEMU虚拟设备编排;其包括固件元数据模块、QEMU虚拟设备编排模块和Linux内核启动模块,其中,固件元数据模块用于提取嵌入式Linux内核和设备树文件;QEMU虚拟设备编排模块根据所述设备树文件中的设备列表,从动态分析平台的数据库中获取虚拟设备,并编排成一个完整的QEMU虚拟机;Linux内核启动模块利用所述的QEMU虚拟机把嵌入式Linux内核运行至用户态,并弹出用户可交互的shell程序。
进一步地,所述虚拟设备模板生成模块根据Linux内核源代码中的中断子系统、时间子系统和平台设备子系统分别生成中断控制器状态机、定时器状态机和平台设备状态机,每个状态机均遵循Linux子系统对相关设备的抽象原则,由状态节点、状态转移和状态转移条件三部分组成;所述虚拟设备模板生成模块分别将三个状态机转化成三个QEMU的虚拟设备模板,每一个虚拟设备模板都将虚拟设备参数即状态转移条件作为空白。
进一步地,所述虚拟设备参数生成模块首先将Linux内核中断控制器驱动和定时器驱动源代码编译成LLVM IR,利用符号执行引擎KLEE分析编译出的LLVM IR,生成虚拟设备参数;再利用模板渲染技术将所述虚拟设备参数填充到虚拟设备模板的空白中,并保存于动态分析平台的数据库中。
进一步地,所述利用符号执行引擎KLEE分析编译出的LLVM IR,生成虚拟设备参数的具体过程如下:
(1)准备符号执行上下文;
(2)重放上下文;
(3)跨函数变量检测;
(4)设置执行目标;
(5)符号执行;
(6)如果还有尚未处理的状态转移条件,则转至步骤(4),否则转至步骤(7)
(7)状态转移条件生成;
(8)如果还有尚未处理的上下文,则转至步骤(2),否则转至步骤(9);
(9)结束,状态转移条件即为虚拟设备参数。
进一步地,所述QEMU虚拟设备编排模块利用dtc工具解析从固件中提取的设备树文件,获取该Linux内核所依赖的设备列表,并根据设备列表在动态分析平台的数据库中查询并编排该虚拟设备,生成一个完整的、可编译、可运行的QEMU虚拟机。
进一步地,所述Linux内核启动模块根据QEMU的使用方法构造一个用于启动嵌入式Linux内核的命令,并运行该命令,利用QEMU虚拟机把嵌入式Linux内核运行至用户态,并弹出用户可交互的shell程序。
本发明的有益效果如下:
本发明增强了对嵌入式Linux内核动态分析的能力,解决了已往在真实设备上对嵌入式Linux内核动态分析难度大、扩展性差,甚至无法分析的难题,增强了基于Linux内核的嵌入式设备的安全性。
附图说明
图1是本发明的基于QEMU的嵌入式Linux内核动态分析平台的示意图;
图2是本发明的利用符号执行引擎KLEE生成虚拟设备参数的流程示意图。
具体实施方式
下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明的基于QEMU的嵌入式Linux内核动态分析平台,包括虚拟设备构建组件和Linux内核启动组件。虚拟设备构建组件算法复杂,计算量大,运行内存开销大,而Linux内核启动组件是以虚拟设备构建组件为基础的,必然会产生较大的开销。将二者分开,通过预先、独立地运行虚拟设备构建组件并保存其结果,Linux内核启动组件可以实时地运行,效率得到了提高。虚拟设备构建组件遵循了“模板填充”的代码综合方法,包括虚拟设备模板生成和虚拟设备参数生成两个模块,该组件将模板和参数分开,提高了灵活性。Linux内核启动组件包括固件元数据提取、QEMU虚拟设备编排和Linux内核启动三个模块,符合模块化的设计。虚拟设备构建组件将新的虚拟设备更新到动态分析平台的数据库中,使Linux内核启动组件能获取QEMU虚拟设备以完成QEMU虚拟设备编排。
具体如下:
虚拟设备模板生成模块根据Linux内核源代码生成一个虚拟设备模板,该模板符合QEMU的编程结构、编码规范和测试要求。QEMU是一个相对成熟的虚拟化平台,为了方便交流和向QEMU社区提交自己的代码,任何基于QEMU开发的虚拟设备都应符合QEMU的编程结构、编程规范和测试要求。首先,该模块为特定的Linux子系统,具体为中断子系统、时间子系统和平台设备子系统,生成不同的状态机,也就是中断控制器状态机、定时器状态机和一般的平台设备状态机。这些Linux子系统已经存在于Linux内核中,所有的内核开发者都将遵循这些子系统开发自己的驱动。这些状态机反应了Linux子系统对相关设备的抽象原则,由状态节点、状态转移和状态转移条件三部分组成。这些状态机由领域专家设计和实现,领域专家根据Linux内核各个子系统的工作原理,定义状态、状态转移,并留出状态转移条件作为空白。领域专家根据自己的学习和开发经验,其设计的状态机能准确地反应Linux子系统,完成度高,虽然需要花费较多时间,但是这些状态机只需要生成一次,便可多次使用。每一个状态机都用一个有向图来表示,图的节点代表状态,图的边作为状态转移,边上的转移条件是空白的。进一步,这些状态机将根据QEMU的编程结构、编码规范和测试要求被自动化转化成三个QEMU的虚拟设备模板,每一个模板都将虚拟设备参数即状态转移条件作为空白。QEMU的编程结构、编程规范和测试要求可以由几个C源代码文件和C头文件表示。每一个文件都由C语言和与{{KEY}}填充对象及其相关的流程控制子句{%if KEY%}和{%forkey in KEY%}构成。每一个状态机图将被自动化转化为由C语言和与填充对象以及相关的流程控制子句构成的C源代码文件和头文件作为QEMU的虚拟设备模板,其中填充对象即该状态机的状态转移条件。
虚拟设备参数生成模块根据Linux内核源代码生成一系列的虚拟设备参数,该参数可以被填充到虚拟设备模板中,填充后得到的虚拟设备将被存储到动态分析平台的数据库中。Linux内核源代码中除了子系统之外,还有许多对应各个子系统的驱动,这些驱动以回调函数的形式存在。Linux内核子系统无法得知这些回调函数的具体实现,但是规定了这些回调函数的功能,Linux内核子系统将这些回调函数作为空白,即状态转移条件。分析这些回调函数即可获取虚拟设备参数,将其填充到虚拟设备模板中,即可获取完整的虚拟设备。该模块涉及的Linux内核中断控制器驱动和定时器驱动源代码即回调函数将被Clang编译成LLVM IR。进一步,该模块将利用符号执行引擎KLEE分析编译出的LLVM IR,生成虚拟设备参数。LLVM IR是一种广泛使用的中间语言,它易于分析,扩展性强。KLEE基于LLVM IR实现了自己符号执行引擎,在软件测试和程序分析中有着广泛地应用。KLEE能遍历一个程序的所有路径,在此基础上,开发者可以设计并实现自己的测试和分析程序。该模块利用KLEE遍历每一个回调函数,获取其MMIO读写序列作为虚拟设备参数。最后,该模块利用模板渲染技术将把虚拟设备参数填充到虚拟设备模板的空白中,并保存于动态分析平台的数据库中,该数据库可以用非关系型数据库实现。
如图2所示,利用符号执行引擎KLEE分析编译出的LLVM IR,生成虚拟设备参数时,执行如下步骤:
(1)准备符号执行上下文。
在回调函数符号执行过程中,有一些全局变量尚未初始化,这些全局变量往往跟一个MMIO的值有关。这个MMIO的值不同,那么这个全局变量的值就不同。分析这个MMIO的取值,可以得到全局变量所有可能的值。每一个全局变量可能的值,都是回调函数函数执行的一个上下文。
(2)重放上下文。
每一次回调函数符号执行,都将选则一个不同的上下文。重放上下文将遍历所有的上下文,进行一个全面的分析。
(3)跨函数变量检测。
在一个特定的上下文符号执行中,有一些全局变量往往被多个回调函数使用。回调函数的分析顺序会影响对这个全局变量的建模。本步骤将这些全局变量标记出来。
(4)设置执行目标。
在一个特定的上下文符号执行中,每一个回调函数都对应一个执行目标,即这个回调函数该如何被分析,比如这个回调函数将在哪里结束分析。
(5)符号执行。
(6)如果还有尚未处理的状态转移条件,则转至步骤(4),否则转至步骤(7)。
(7)状态转移条件生成。
本步骤中,KLEE将调用虚拟设备参数生成模块中的分析代码对回调函数进行分析。考虑跨函数变量的同时,生成回调函数的MMIO读写序列。
(8)如果还有尚未处理的上下文,则转至步骤(2),否则转至步骤(9)。
(9)结束,状态转移条件即为虚拟设备参数。
固件元数据模块解压多种嵌入式固件,提取嵌入式Linux内核、设备树文件。Binwalk是一种通用的固件解压工具,设计良好,功能强大。但是固件的格式千差万别,Binwalk并不能完全支持固件的解压。为了提取固件元数据,该模块深度定制开源的固件解压工具Binwalk,向Binwalk中添加了多种文件格式的特征,用来解压多种不同格式的嵌入式固件,提取嵌入式Linux内核、设备树文件。
QEMU虚拟设备编排模块将根据设备树文件中的设备列表从动态分析平台的数据库中获取虚拟设备,并编排成一个完整的QEMU虚拟机。设备树记录了一个嵌入式系统所需的处理器和各种外围设备的名字和一些属性。该模块将利用dtc工具解析从固件中提取的设备树文件,获取该Linux内核所依赖的设备名字列表。该模块将根据设备列表在动态分析平台的数据库中查询该虚拟设备。该模块编排查询出的虚拟设备,生成一个完整的、可编译、可运行的QEMU虚拟机。每一个虚拟设备都是一个独立存在的单元,若要将它们编排成一个完整的、可编译的、可运行的QEMU虚拟机,还需要一个通用的虚拟设备注册模板,其参数是各个虚拟设备的注册函数。该模块将各个虚拟设备的注册函数填充到通用的虚拟设备注册模板中,完成虚拟设备的编排。
Linux内核启动模块利用QEMU虚拟机把嵌入式Linux内核运行至用户态,并弹出用户可交互的shell程序。该模块根据QEMU的使用方法构造一个用于启动嵌入式Linux内核的命令,并使用一个自定义的根文件系统,该根文件系统可由Buildroot等构建系统生成。该模块运行该命令,利用QEMU虚拟机把嵌入式Linux内核运行至用户态,等待弹出用户可交互的shell程序,该过程1分钟后超时结束。该模块利用嵌入式Linux内核启动日志自动化地判断是否成功。
本平台的虚拟设备构建组件和Linux内核启动组件分别由C++和Python混合编写。其中与KLEE相关的部分由C++编写,其余部分由Python编写。本平台运行在一个有两个Intel Xeon Silver 4114的处理器和128G内存的服务器上,该服务器运行着Ubuntu16.04.6LTS操作系统。为了测试本平台的效果,实验步骤如下。
(1)领域专家根据Linux 3.18.20,4.14.167和5.3,构建Linux子系统状态机,本平台根据该状态机生成虚拟设备模板;
(2)利用本平台分析OpenWrt ramips/rt305x 15.05,ath79/generic 19.07.1,kirkwood/generic 15.05,bcm53xx/generic 15.05,oxnas/generic 15.05五个代表性子目标,分析相应的虚拟设备参数,生成相应的虚拟设备;
(3)利用本平台启动上述五个代表性子目标对应的固件。
实验表明,本发明成功地为OpenWrt中的五个代表性子目标生成了11个虚拟设备;成功地支持了22个嵌入式Linux内核版本和355个不同型号的设备;成功地启动了超过95%的(5469个)嵌入式Linux内核(之前没有一个可以用QEMU运行);成功地复现了5个CVE,并为其中4个成功地编写了漏洞利用代码。
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。

Claims (6)

1.一种基于QEMU的嵌入式Linux内核动态分析平台,其特征在于,该平台包括虚拟设备构建组件和Linux内核启动组件;
其中,
所述的虚拟设备构建组件预先、单独地运行,生成新的虚拟设备,并将其更新到动态分析平台的数据库中;所述的虚拟设备构建组件包括虚拟设备模板生成模块和虚拟设备参数生成模块,其中,虚拟设备模板生成模块用于根据Linux内核源代码生成一个符合QEMU的编程结构、编码规范和测试要求的虚拟设备模板,并将虚拟设备参数作为空白;虚拟设备参数生成模块根据Linux内核源代码生成一系列的虚拟设备参数,并把虚拟设备参数填充到虚拟设备模板的空白中。
所述Linux内核启动组件实时运行,获取QEMU虚拟设备以完成QEMU虚拟设备编排;其包括固件元数据模块、QEMU虚拟设备编排模块和Linux内核启动模块,其中,固件元数据模块用于提取嵌入式Linux内核和设备树文件;QEMU虚拟设备编排模块根据所述设备树文件中的设备列表,从动态分析平台的数据库中获取虚拟设备,并编排成一个完整的QEMU虚拟机;Linux内核启动模块利用所述的QEMU虚拟机把嵌入式Linux内核运行至用户态,并弹出用户可交互的shell程序。
2.根据权利要求1所述的基于QEMU的嵌入式Linux内核动态分析平台,其特征在于,所述虚拟设备模板生成模块根据Linux内核源代码中的中断子系统、时间子系统和平台设备子系统分别生成中断控制器状态机、定时器状态机和平台设备状态机,每个状态机均遵循Linux子系统对相关设备的抽象原则,由状态节点、状态转移和状态转移条件三部分组成;所述虚拟设备模板生成模块分别将三个状态机转化成三个QEMU的虚拟设备模板,每一个设备模板都将虚拟设备参数即状态转移条件作为空白。
3.根据权利要求1所述的基于QEMU的嵌入式Linux内核动态分析平台,其特征在于,所述虚拟设备参数生成模块首先将Linux内核中断控制器驱动和定时器驱动源代码编译成LLVM IR,利用符号执行引擎KLEE分析编译出的LLVM IR,生成虚拟设备参数;再利用模板渲染技术将所述虚拟设备参数填充到虚拟设备模板的空白中,并保存于动态分析平台的数据库中。
4.根据权利要求3所述的基于QEMU的嵌入式Linux内核动态分析平台,其特征在于,所述利用符号执行引擎KLEE分析编译出的LLVM IR,生成虚拟设备参数的具体过程如下:
(1)准备符号执行上下文;
(2)重放上下文;
(3)跨函数变量检测;
(4)设置执行目标;
(5)符号执行;
(6)如果还有尚未处理的状态转移条件,则转至步骤(4),否则转至步骤(7)
(7)状态转移条件生成;
(8)如果还有尚未处理的上下文,则转至步骤(2),否则转至步骤(9);
(9)结束,状态转移条件即为虚拟设备参数。
5.根据权利要求1所述的基于QEMU的嵌入式Linux内核动态分析平台,其特征在于,所述QEMU虚拟设备编排模块利用dtc工具解析从固件中提取的设备树文件,获取该Linux内核所依赖的设备列表,并根据设备列表在动态分析平台的数据库中查询并编排该虚拟设备,生成一个完整的、可编译、可运行的QEMU虚拟机。
6.根据权利要求1所述的基于QEMU的嵌入式Linux内核动态分析平台,其特征在于,所述Linux内核启动模块根据QEMU的使用方法构造一个用于启动嵌入式Linux内核的命令,并运行该命令,利用QEMU虚拟机把嵌入式Linux内核运行至用户态,并弹出用户可交互的shell程序。
CN202110096520.7A 2021-01-25 2021-01-25 一种基于QEMU的嵌入式Linux内核动态分析平台 Active CN112905185B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110096520.7A CN112905185B (zh) 2021-01-25 2021-01-25 一种基于QEMU的嵌入式Linux内核动态分析平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110096520.7A CN112905185B (zh) 2021-01-25 2021-01-25 一种基于QEMU的嵌入式Linux内核动态分析平台

Publications (2)

Publication Number Publication Date
CN112905185A true CN112905185A (zh) 2021-06-04
CN112905185B CN112905185B (zh) 2023-10-31

Family

ID=76118896

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110096520.7A Active CN112905185B (zh) 2021-01-25 2021-01-25 一种基于QEMU的嵌入式Linux内核动态分析平台

Country Status (1)

Country Link
CN (1) CN112905185B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402453A (zh) * 2012-01-04 2012-04-04 北京航空航天大学 一种面向mips平台的系统虚拟机
CN102929691A (zh) * 2012-11-09 2013-02-13 北京航空航天大学 一种面向arm多核处理器服务器平台的系统虚拟机
CN103533061A (zh) * 2013-10-18 2014-01-22 广东工业大学 一种操作系统云实验平台构建方法
CN103699389A (zh) * 2013-12-30 2014-04-02 北京大学 一种基于编译选项的Linux内核模块关系提取方法
CN109101284A (zh) * 2018-07-18 2018-12-28 浪潮(北京)电子信息产业有限公司 一种虚拟机启动方法、装置、设备及存储介质
JP2019114223A (ja) * 2017-12-21 2019-07-11 ポップコーンサー カンパニー リミテッドPOPCORNSAR Co., Ltd. 仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法及びコンピューティングシステム
CN110045963A (zh) * 2019-04-24 2019-07-23 苏州浪潮智能科技有限公司 一种Linux内核编译和验证的方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402453A (zh) * 2012-01-04 2012-04-04 北京航空航天大学 一种面向mips平台的系统虚拟机
CN102929691A (zh) * 2012-11-09 2013-02-13 北京航空航天大学 一种面向arm多核处理器服务器平台的系统虚拟机
CN103533061A (zh) * 2013-10-18 2014-01-22 广东工业大学 一种操作系统云实验平台构建方法
CN103699389A (zh) * 2013-12-30 2014-04-02 北京大学 一种基于编译选项的Linux内核模块关系提取方法
JP2019114223A (ja) * 2017-12-21 2019-07-11 ポップコーンサー カンパニー リミテッドPOPCORNSAR Co., Ltd. 仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法及びコンピューティングシステム
CN109101284A (zh) * 2018-07-18 2018-12-28 浪潮(北京)电子信息产业有限公司 一种虚拟机启动方法、装置、设备及存储介质
CN110045963A (zh) * 2019-04-24 2019-07-23 苏州浪潮智能科技有限公司 一种Linux内核编译和验证的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
彭晓平;张雪坚;黄波;: "基于KVM的虚拟化技术研究", 中国新通信, no. 20 *

Also Published As

Publication number Publication date
CN112905185B (zh) 2023-10-31

Similar Documents

Publication Publication Date Title
CN110399300B (zh) 一种基于动态类型感知的Python软件模糊测试方法
US11016785B2 (en) Method and system for mirror image package preparation and application operation
JPWO2018235252A1 (ja) 分析装置、ログの分析方法及び分析プログラム
CN103473104B (zh) 一种基于关键词上下文频率矩阵的应用重打包辨别方法
US20170161177A1 (en) Techniques to identify idiomatic code in a code base
JP2017519300A (ja) ソフトウェアアナリティクスのためのシステム及び方法
CN112748914A (zh) 一种应用程序开发方法、装置、电子设备和存储介质
RU91213U1 (ru) Система автоматического составления описания и кластеризации различных, в том числе и вредоносных, объектов
US10248409B1 (en) Limiting the effects of source code patches on corresponding native-code patches
CN103607413A (zh) 一种网站后门程序检测的方法及装置
KR102073068B1 (ko) 어플리케이션 클러스터링 방법 및 그 장치
CN110245467A (zh) 基于Dex2C与LLVM的Android应用程序保护方法
JPH09509271A (ja) コンピュータ間通信の方法とプロセスおよびそのためのプログラム作成のための一般化された方法
CN115017516A (zh) 一种基于符号执行的模糊测试方法
CN115062309A (zh) 一种新型电力系统下基于设备固件仿真的漏洞挖掘方法及存储介质
CN112905188A (zh) 一种基于生成式对抗gan网络的代码翻译方法及系统
CN110032425B (zh) 一种动态链接库文件虚拟化方法、系统及存储介质
CN112905185B (zh) 一种基于QEMU的嵌入式Linux内核动态分析平台
CN112667352A (zh) 一种多cpu指令交叉编译统一构建方法、设备及介质
CN110221900B (zh) 一种Dockerfile基础镜像版本信息自动补全方法和装置
CN115688108B (zh) 一种webshell静态检测方法及系统
TW201314482A (zh) 分析目標物件之依賴關係的方法
CN110489348B (zh) 一种基于迁移学习的软件功能缺陷挖掘方法
KR102132450B1 (ko) 기계 학습을 이용한 자바스크립트 해석 엔진 테스트 방법 및 장치
He et al. Tamperproofing a software watermark by encoding constants

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