Tan's Blog.

虚拟化平台&程序切片

字数统计: 1.4k阅读时长: 5 min
2019/06/19 Share

虚拟化辅助分析平台

VirtualBox

VirtualBox的特性:
支持64位客户端操作系统,即使主机使用32位CPU
支持SATA硬盘NCQ技术
虚拟硬盘快照
无缝视窗模式(须安装客户端驱动)
能够在主机端与客户端共享剪贴簿(须安装客户端驱动)
在主机端与客户端间建立分享文件夹(须安装客户端驱动)
内建远端桌面服务器,实现单机多用户 - 支持VMware VMDK磁盘档及Virtual PC VHD磁盘档格式
3D虚拟化技术支持OpenGL(2.1版后支持)、Direct3D(3.0版后支持)、WDDM(4.1版后支持)
最多虚拟32颗CPU(3.0版后支持)
支持VT-x与AMD-V硬件虚拟化技术
iSCSI支持
USB与USB2.0支持

QEMU

Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬件打交道,Qemu 将这些指令转译给真正的硬件。
正因为 Qemu 是纯软件实现的,所有的指令都要经 Qemu 过一手,性能非常低,所以,在生产环境中,大多数的做法都是配合 KVM 来完成虚拟化工作,因为 KVM 是硬件辅助的虚拟化技术,主要负责 比较繁琐的 CPU 和内存虚拟化,而 Qemu 则负责 I/O 虚拟化,两者合作各自发挥自身的优势,相得益彰。

从本质上看,虚拟出的每个虚拟机对应 host 上的一个 Qemu 进程,而虚拟机的执行线程(如 CPU 线程、I/O 线程等)对应 Qemu 进程的一个线程。

参数

-L dir 指向BIOS和VGA BIOS所在目录
-hda/-hdb/-hdd/-hdc “文件名” 使用“文件名”作为硬盘0/1/2/3镜像。
-cdrom “文件名” 使用“文件名”作为光盘镜像(文件应该是ISO类型)。
Windows 下的使用者,可以透过下列指令使用实体光盘:
-cdrom //./x: -> x 代表光盘名称/位置
例如:-cdrom //./e: -> 使用 E:\ 为光盘
-fda/-fdb “文件名” 使用“文件名”作为磁盘0/1镜像。
-boot [a|d|c] 使用磁盘,光盘,或者硬盘启动。
-m容量指定内存的大小,单位是MB。
-soundhw c1,… 使用声卡设备。
-soundhw ? 列出所有可使用的声卡
-soundhw all 使用全部声卡
-usb 允许使用usb设备。
-usbdevice 名字 添加一个usb设备“名字”。
-net nic 创建一块新的网卡。

Xen

在Xen环境中,主要有两个组成部分。一个是虚拟机监控器(VMM),也叫hypervisor。Hypervisor层在硬件与虚拟机之间,是必须最先载入到硬件的第一层。Hypervisor载入后,就可以部署虚拟机了。在Xen中,虚拟机叫做“domain”。在这些虚拟机中,其中一个扮演着很重要的角色,就是domain0,具有很高的特权。通常,在任何虚拟机之前安装的操作系统才有这种特权。
Domain0要负责一些专门的工作。由于hypervisor中不包含任何与硬件对话的驱动,也没有与管理员对话的接口,这些驱动就由domain0来提供了。通过domain0,管理员可以利用一些Xen工具来创建其它虚拟机(Xen术语叫domainU)。这些domainU也叫无特权domain。这是因为在基于i386的CPU架构中,它们绝不会享有最高优先级,只有domain0才可以。
在domain0中,还会载入一个xend进程。这个进程会管理所有其它虚拟机,并提供这些虚拟机控制台的访问。在创建虚拟机时,管理员使用配置程序与domain0直接对话。

总结

静态分析的优点是无须执行软件程序,分析速度快,代码覆盖率高,平台兼容性好;缺点是缺少函数、指令的具体参数值,无法获得准确的执行逻辑关系,受代码加壳影响大,恶意代码监测误报率较高。
动态分析的优点是能够准确观测程序的行为,能够获取真实的执行逻辑,能够获取执行过程中函数和指令参数的具体值;缺点是代码覆盖率较低,会受到反调试技术的干扰。
虚拟化辅助分析工具的优点是能够固化分析环境,避免反调试的干扰,获取的数据信息齐全;缺点是性能较差,受反虚拟化技术干扰,受超时机制影响较大。

程序切片

程序切片旨在从程序中提取满足一定约束条件的代码片段,是一种重要的程序分解技术。

程序的基本控制结构

顺序结构主要指程序指令按照指令地址的先后顺序依次执行
条件结构包含约束判断和条件主体两部分,只有约束判断满足一定条件的情况下条件主体中的指令才能执行。
循环结构由循环条件和循环体构成,循环体内的指令按照循环条件的约束反复执行多次。

数据流分析

由于变量所存储的数据再多条语句中是动态变化的,所以以一条特定语句为基准点进行分析,引用变量的行为称为变量活性分析,定义变量的行为称为可到达定义分析。

CATALOG
  1. 1. 虚拟化辅助分析平台
    1. 1.1. VirtualBox
    2. 1.2. QEMU
      1. 1.2.1. 参数
    3. 1.3. Xen
    4. 1.4. 总结
  2. 2. 程序切片
    1. 2.1. 程序的基本控制结构
    2. 2.2. 数据流分析