当前课程知识点:计算机病毒分析(慕课) > 第三章、虚拟机中分析计算机病毒 > 3.2 创建虚拟机 > 3.2 创建虚拟机
3.2知识点:创建恶意代码分析机
在使用一个虚拟机进行恶意代码分析之前,你首先需要创建一个虚拟机。VMware提供了流行的虚拟化产品系列,可用于在虚拟机中分析代码。当面临一些选项时,最好的做法是选择默认的硬件配置。在选择磁盘驱动大小时,需要根据自己的需求。
VMware软件会智能地使用磁盘空间,并且会根据你的存储需求,动态调整虚拟磁盘的大小。例如,若你创建了一个20GB的硬盘,但只在上面存储了4GB数据,VMware会相应地缩小虚拟硬盘文件的大小。开始时,一个20GB大小的虚拟驱动器就可以了。这一数额应该足以存放客户机操作系统和任何在恶意代码分析过程中可能用到的工具。’VMware将为你做出很多的选择,在大多数情况下,这些选择都能正常工作。
接下来,你将需要安装操作系统和应用程序。大多数恶意代码与恶意代码分析工具都在Windows上运行,所以你很可能需要安装一个虚拟的Windows操作系统。截至撰写本书时,Windows XP仍然(令人惊讶)是最流行的操作系统和大多数恶意代码的目标。因此我们将以Windows XP作为平台进行探索。
在你安装完操作系统之后,你可以安装任何所需的应用程序。当然你也可以以后随时安装所需的应用程序,但通常在刚开始时创建一个比较完备的环境,是个很好的主意。我们在附录B中给出了一个推荐使用的恶意代码分析应用程序列表。如OllyDbg,Process Monitor,RegShot。
再接下来,你需要安装VMware tools。从VMware菜单中,选择虚拟机(VM)→安装VMware tools(Install Vmware Tools)。VMware tools会让鼠标和键盘的响应变得更敏捷。还允许访问共享文件夹,进行拖放式文件传输。
2. 断开网络
当需要断开虚拟机的网络连接时,可以从虚拟机中移除网络适配器,或者选择虚拟机(VM)→移除设备(removable devices),将网络适配器从网络上断开。
在虚拟机启动的时候,通过勾选配置对话框中的Connect at power on 复选框来控制网络适配器是否自动连接。
2.1.让恶意代码连接到互联网
将VMware虚拟机连接到互联网最普遍的方式,是使用桥接模式网络适配器,他允许虚拟机与物理机器一样连接到相同的物理网卡上。
另一种将虚拟机连接到互联网的方法是使用VMware的网络地址转换(NET)模式。NET模式会共享宿主机与互联网之间的IP连接。宿主机像是一个路由器,负责对所有来自虚拟机的连接进行翻译,让他们看起来就是从宿主机的IP地址发出的一样。这种模式在宿主机连接网络而虚拟机难以获得配置连接到同一网络的场景下非常有用。
3.创建主机模式网络
主机模式(Host-only)网络,可以在宿主操作系统和客户操作系统之间创建一个隔离的私有局域网,在进行恶意代码分析时,这是通常采取的联网方式。主机模式的局域网并不会连接到互联网,这意味着恶意代码会被包含在你的虚拟机里,同时也允许某些网络连接。
下图展示了主机模式的网络配置情况。当启用主机模式网络时,VMware将在宿主计算机和虚拟机中都创建一个虚拟网络适配器,然后将他们进行连接,而与宿主的物理网络适配器没有任何关联。宿主计算机的物理网络适配器仍然连接到互联网或其他外部网络。
使用多个虚拟机
这种配置要求多个虚拟机通过一个私有局域网进行连接,但是断开这个局域网和互联网以及宿主主机的连接,这样恶意代码可以连接到网络,但这个网络不会连接到任何业务主机。
一个虚拟机可以用来运行恶意代码,第二个虚拟机用来提供一些必要的网络服务。两个虚拟机被连接到同一个VMNet虚拟交换机上,在这种情况下,宿主主机仍然连接到外部网络,但并没有连接恶意代码运行的虚拟机。
将多个虚拟机进行分组。将虚拟机加入分组后,可以统一地管理他们的电源和联网设置。要创建一个新的虚拟机分组,只需要选择File→New→Team菜单项。
-1.1 计算机病毒的定义和类型
-1.2 计算机病毒分析的目标
-1.3 计算机病毒分析技术概述
-第一单元习题
-2.1 杀毒软件
--2.1 杀毒软件
-2.2 哈希值:恶意代码指纹
-2.3 特征字符串
-2.4 加壳与混淆
-2.5 PE文件格式
-2.6 链接库与函数
-第二单元习题
-实验报告
-3.1 虚拟机的结构
-3.2 创建虚拟机
-3.3 使用虚拟机
-第三单元习题
-4.1 沙箱分析
--4.1 沙箱分析
-4.2 运行病毒和进程监视
-4.3 Process Explorer和Regshot
--4.3 Process Explorer和Regshot
-4.4 网络模拟
--4.4 网络模拟
-第四单元习题
-实验报告
-5.1 逆向工程
--5.1 逆向工程
-5.2 x86体系结构
-5.3 CPU寄存器
-5.4 汇编指令
--5.4 汇编指令
-5.5 栈操作
--5.5 栈操作
-第五单元习题
-6.1 加载可执行文件
-6.2 IDA Pro窗口
-6.3 IDA Pro 导航
-6.4 交叉引用
--6.4 交叉引用
-6.5 函数分析
--6.5 函数分析
-6.6 使用图形选项
-6.7 增强反汇编
-第六单元练习
-实验报告
-7.1 识别汇编中的C语言代码结构
-7.2 识别if分支结构
-7.3 识别循环
--7.3 识别循环
-7.4 识别函数调用
-7.5 识别switch结构
-7.6 识别数组、结构体、链表
-第七单元练习
-实验报告
-8.1 Windows API
-8.2 Windows 注册表
-8.3 网络API
-8.4 跟踪病毒运行
-8.5 互斥量
--8.5 互斥量
-8.6 异常处理、模式、Native API
-第八单元练习
-实验报告
-9.1 调试器介绍
-9.2使用调试器
-9.3使用断点暂停执行
-9.4 断点类型
--9.4 断点类型
-9.5异常
--9.5 异常
-9.6调试器修改可执行文件
-第九单元练习
-10.1 Ollydbg加载恶意代码
-10.2 Ollydbg的窗口
-10.3 内存映射
-10.4 查看线程、栈、代码
-10.5 断点
--10.5 断点
-10.6加载DLL、跟踪
-10.7异常处理、修补
-10.8分析shellcode、协助功能
-10.9插件、脚本调试
-第十单元练习
-实验报告
-11.1驱动与内核代码
-11.2使用WinDbg
-11.3微软符号表
-11.4内核调试
-11.5Rootkit
-第十一单元作业
-12.1下载器、启动器和后门
-12.2远程控制和僵尸网络
-12.3登录凭证窃密器
-12.4存活机制和windows注册表
-12.5特洛伊木马化二进制文件
-12.6DLL加载顺序劫持
-12.7权限提升与用户态Rootkit
-第十二章练习
-13.1启动器与进程注入
-13.2进程替换
-13.3Hook注入
-13.4Detours与APC注入
-第十三单元练习
-14.1加密算法的目的和简单的加密算法
-14.2简单的加密策略
-14.3常见的加密算法
-14.4自定义加密
-14.5解密
--14.5 解密
-第十四单元练习
-期末考试