当前课程知识点:计算机病毒分析(慕课) > 第四章、动态基础分析技术 > 4.3 Process Explorer和Regshot > 4.3 Process Explorer和Regshot
4.3知识点:Process Explorer和Regshot
1.Process Explorer介绍
进程浏览器是微软的免费产品,是一款强大的任务管理器,是进行动态分析时的必备工具。你可以用进程浏览器来列出所有活跃的进程,被进程载入的DLL、各种进程属性和体系统信息。你也能用它杀死一个进程、退出用户登录、启动与激活进程。
2. Process Explorer的显示
进程浏览器监视系统上执行的进程,以树状结构进行显示。如图所示,你能看到service.exe是winlogon.exe的子进程,如左侧的花括号所示。
进程浏览器显示了五栏:Process(进程名)、PID(进程号)、CPU(CPU使用率)、Description(进程描述)、Company Name(软件公司名)。
视图每一秒更新一次。默认情况下:
高亮显示区分不同的进程
粉色:服务进程
蓝色:普通进程
绿色:新创建的进程,临时的高亮显示
红色:已经被终止执行的进程,临时的高亮显示
Process Explorer显示进程的DLL
Process Explorer显示进程的句柄
当你双击一个进程名的时候,如图展示的属性窗口就会打开。线程标签(Threads)显示所有活跃的线程,TCP/IP标签活跃的连接和进程监听的端口,镜像标签(图中打开的)显示磁盘上可执行程序的路径。
3. 使用验证选项和进程替换
使用验证选项和进程替换技术
进程浏览器一个特别有用的功能就是镜像标签里的验证(Verify)按钮。单击此按钮,可以验证磁盘上的镜像文件是否具有微软的签名认证。
进程替换技术为恶意代码提供了和其他进程一样的特权,恶意代码看起来就像一个合法执行的进程一样,但是它在内存中的镜像会和磁盘上的不一样。
验证按钮验证的是磁盘上的镜像文件,而不是内存中的,因此它可能会失败,如果一个攻击者使用进程替换技术process replacement,包括在系统上执行进程并用恶意代码重写内存空间,这时候这个功能就不再有用武之地
4. 比较字符串
一种识别进程替换的方法就是进程属性窗口的字符串(Strings)标签,通过比较包含在磁盘上可执行文件的字符串与内存中同一个可执行文件的字符串,来看两者是否相同,如果字符串列表有很大不同,那么可能发生了进程替换。如图就显示出了字符串差异。例如,字符串FAVORITES.DAT多次出现在内存中镜像,但在磁盘上的镜像无法找到。
进程浏览器的字符串标签显示svchost.exe磁盘镜像字符串与内存镜像字符串的差异
5. DLL比较
Process Explorer可以查看进程运行中,内存空间装载了哪些DLL
Dependency Walker可以通过分析文件的PE结构,列出文件所需要装载的DLL
通过对比内存和硬盘上DLL列表的不同,可以发现DLL注入、进程替换
6. 分析恶意文档
一种快速确定一个文档是否恶意的方法,就是打开进程浏览器,然后打开文档。若文档启动了任意进程,你能进程浏览器中看到,并能通过属性窗口中的镜像(Image)标签来定位恶意代码在磁盘上的位置。
7. 使用Regshot来比较注册表快照
Regshot是一个开源的注册表比较工具,它可以让你比较两个注册表的快照,发现差异。
-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 解密
-第十四单元练习
-期末考试