编辑
2026-06-01
恶意代码分析实验报告
00

目录

实验四:DLL动态库研究
一、实验目的
二、实验内容
三、实验步骤
四、实验分析

实验四:DLL动态库研究

一、实验目的

  1. 掌握使用 rundll32.exe 工具加载并执行DLL动态库中指定导出函数的方法,理解DLL作为恶意代码加载器的运行机制。
  2. 学习运用静态分析工具(如StudyPE、Strings)分析DLL文件的导出表、导入表及关键字符串,从而推断其功能意图。
  3. 掌握利用 Regshot 工具进行注册表快照对比,精准定位恶意代码安装过程中对系统注册表的修改项。
  4. 熟练结合 Process Explorer 和 Process Monitor 对伪装成系统服务的恶意代码进行动态行为监控、进程定位与操作追踪。

二、实验内容

  1. 静态分析DLL文件结构:使用 StudyPE 工具查看 Lab03-02.dll 的导出表与导入表,识别 InstallServiceMain 等关键函数及 HTTP 相关 API;使用 Strings 工具提取可疑域名与文件名,初步判断代码具备网络通信与服务注册功能。
  2. 恶意代码安装与注册表监控:利用 rundll32 命令调用 DLL 的安装函数,通过 Regshot 工具对比执行前后的注册表快照,分析新增的系统服务项(如服务名称、显示名及路径)。
  3. 动态行为监控与网络流量分析:启动恶意服务后,使用 Process Explorer 定位 DLL 注入的进程;通过 Process Monitor 设置过滤器监控特定 PID 的文件与注册表活动;使用 Wireshark 抓包分析其网络连接特征与传输内容。

三、实验步骤

步骤1:静态信息收集与初步分析 首先使用 StudyPE 打开 Lab03-02.dll 文件,查看导出表(Export Table),发现包含 InstallServiceMainUninstallService 等导出函数,其中 installA 为可疑的安装入口。接着查看导入表(Import Table),发现包含大量 RegCreateKeyStartService 等注册表与服务操作 API,以及 InternetOpenAHttpSendRequestA 等网络通信 API。随后使用 Strings 工具搜索字符串,提取到关键信息:域名 practicalmalwareanalysis.com、文件 serve.html 以及系统进程 svchost.exe。由此推断该 DLL 会注册服务并通过网络传输数据。

步骤2:执行恶意代码安装与注册表比对 打开 Regshot 工具,点击“Shot”按钮建立当前系统状态的“快照A”。打开命令行提示符(CMD),切换到 DLL 文件所在目录,执行安装命令 rundll32.exe Lab03-02.dll,installA,该命令会调用 DLL 中的 installA 函数执行恶意安装逻辑。等待命令执行完毕后,回到 Regshot 界面,点击“Shot”建立“快照B”。点击“Compare”按钮对比两次快照的差异。分析对比结果,重点关注新增的注册表键值,发现系统新增了一个名为 IPRIP 的服务,其显示名为 Intranet Network Awareness (INA+),镜像路径指向 svchost.exe

步骤3:启动服务与进程定位 为了观察恶意代码的运行行为,需要手动启动安装的服务。在 CMD 中输入命令 net start IPRIP 启动该恶意服务。此时打开 Process Explorer,点击工具栏上的“Find”图标或使用快捷键 Ctrl+F,在搜索框中输入 Lab03-02.dll 并回车。搜索结果显示该 DLL 文件已被加载到 svchost.exe 进程中。记录下该 svchost.exe 进程的 PID(例如 1108),确认恶意代码已通过系统服务伪装运行。

步骤4:动态行为监控与过滤设置 由于系统中存在多个 svchost.exe 进程,直接监控会产生大量无关数据。打开 Process Monitor,设置过滤器规则:将 Process ID 设为刚才记录的 PID(如 1108),或者设置 Process Name is svchost.exe 并结合 Operation 过滤。重新执行 net start IPRIP 命令或在 ProcMon 中开启捕获,重点观察该进程发起的 RegOpenKeyConnect 等操作。同时打开 Wireshark 开始抓包,再次重启服务以触发网络行为。

步骤5:网络特征验证与分析 在 Wireshark 的流量记录中,使用过滤器 dnshttp 进行筛选。分析发现目标进程发起了对域名 practicalmalwareanalysis.com 的 DNS 查询请求。随后观察到 HTTP 流量,目标发起了 GET /serve.html HTTP/1.1 的请求。验证了静态分析中提取到的字符串特征,确认该恶意代码试图连接远程服务器获取指令或数据。结合 Process Monitor 中观察到的文件读写和网络连接,完成了对 DLL 动态行为的完整分析。

四、实验分析

实验结果 通过本次实验,成功利用 rundll32.exe 加载了 Lab03-02.dll 并通过 installA 函数完成了恶意安装。Regshot 比对结果显示恶意代码在系统中注册了名为 IPRIP 的系统服务,利用 svchost.exe 作为载体进程。Process Explorer 确认了 DLL 被注入到系统进程中运行。Process Monitor 监控和 Wireshark 抓包进一步证实了其网络行为,包括解析 DNS 域名 practicalmalwareanalysis.com 并访问 HTTP 路径 serve.html

个人收获 本次实验深入理解了 DLL 文件无法独立运行而必须依托宿主进程的特性,以及恶意代码如何利用 Windows 服务机制实现持久化。通过对比静态分析(字符串、导入表)与动态分析(注册表快照、网络抓包)的结果,我体会到了多维度分析在恶意代码溯源中的重要性。特别是学会了在多实例系统进程(如 svchost)中通过 PID 精准定位恶意模块的技巧,这对后续分析复杂的恶意软件具有重要的实践意义。

本文作者:Linxiong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!