一.虚拟机概述
1.仿真技术
(1)硬件仿真
定义:通过软件仿真操作系统所需要的硬件环境,包括 CPU、内存、总线等
使用案例:VMware
应用场景: 搭建反病毒分析平台,如 ThreatExpert等搭建云安全集群;
(2)指令集仿真
定义:通过软件仿真特定(真实或虚拟)指令集的执行行为,例如通过仿真全部 x86 指令的行为来仿真 x86 CPU;
使用案例:Java VM,VMProtect
应用场景: 代码逻辑序列化,如ClamAV 支持把查毒代码编译成 LLVM 中间代码(IR),并在查毒时虚拟执行中间代码来执行查毒逻辑;
(3)操作系统仿真
使用案例:WINE(其他系统支持Windows程序运行),x86emu
应用场景:实现相同平台、不同操作系统间的“跨界”执行,如 WINE 等 配合指令集仿真,实现虚拟沙盒,如火绒虚拟沙盒等拟执行技术及分类
二.虚拟执行技术分类
1.模拟类虚拟执行技术
定义:通过软件方法模拟 CPU 运行环境(如:寄存器等)和各种机制(如:内存寻址、异常处理、保护机制等)来实现实现虚拟执行;
执行速度(相较于真实代码执行)
指令模拟≈1%
动态翻译≈30%
2.虚拟化类虚拟执行技术
执行速度(相较于真实代码执行)
软件虚拟化≈95%
硬件虚拟化
≈99%