编辑
2026-05-30
恶意代码分析实验报告
00

实验三:恶意代码的感染特征和网络特征

一、实验目的

  1. 掌握使用Strings工具提取恶意代码中的网络基础设施信息(IP、域名、端口),识别其回连机制。
  2. 学习通过静态分析识别恶意代码的感染迹象,如文件复制路径、伪装文件名及注册表键值。
  3. 理解PE文件导入表中网络API(如WinINet或Winsock)的使用,推断其具体的通信协议与功能。
  4. 掌握分析恶意代码互斥体字符串的方法,理解其防止多实例运行及自我保护的原理。

二、实验内容

  • 网络配置提取:利用Strings工具扫描Lab03-01.exe样本,重点提取硬编码的C2服务器IP地址、通信端口及URL路径,分析其回连机制。
  • 感染路径与持久化分析:在字符串列表中搜索系统目录路径及“Run”注册表键值,定位恶意代码的拷贝位置及自启动方式。
  • 导入函数表分析:使用Dependency Walker查看样本调用的网络库函数(如InternetOpen、socket),结合字符串信息验证网络功能。
  • 行为特征综合关联:将提取的文件路径、网络IP与API调用信息进行逻辑关联,构建样本的基础行为画像。

三、实验步骤 步骤1:提取并分析字符串信息。Lab03-01.exe拖入Strings工具或使用命令行strings.exe -a Lab03-01.exe。将输出结果保存至文本文件。使用Ctrl+F搜索关键字“http”、“127.”(代表本地回环测试IP)以及“.exe”。重点关注类似C:\Windows\System32\winvmx.exe的文件路径字符串。同时搜索“Global\”或“Mutex”关键词,查找互斥体名称(如Global\{8B7E3C21-A123-4b22-8E2F-123456789012})。记录所有与网络通信和文件操作相关的关键字符串。

步骤2:分析网络导入函数与通信机制。 打开Dependency Walker,加载Lab03-01.exe。在左侧导入依赖树中展开ws2_32.dll(Winsock库)或wininet.dll(高层HTTP库)。检查是否包含WSAStartupsocketconnectsendrecv等底层网络函数,或者InternetOpenInternetConnectUrl等高层函数。若发现InternetConnect函数,结合步骤1中提取的127.0.0.1和端口号(如80),验证该样本试图建立HTTP连接。

步骤3:定位持久化与感染机制。 在Strings工具的输出中继续搜索注册表路径Software\Microsoft\Windows\CurrentVersion\Run。若发现此类字符串紧邻样本名称或其拷贝名称,则确认了通过注册表实现自启动的意图。同时,查找CreateProcessCopyFile等相关的导入函数,验证其具备文件复制和进程创建的能力。如果发现winvmx.exe这一特定文件名,需标记其为恶意代码在系统中的伪装名称。

步骤4:行为推断与交叉验证。 综合上述数据:步骤1发现了目标IP127.0.0.1和目标文件路径C:\Windows\System32\winvmx.exe;步骤2确认了具备TCP/HTTP连接能力的API;步骤3找到了注册表自启动键值。由此推断:该样本是一个后门程序,运行后会将自己复制为系统目录下的winvmx.exe,通过修改注册表实现开机自启,并尝试连接本地或远程服务器等待指令。

四、实验分析 实验结果: 通过对Lab03-01.exe的静态分析,成功提取出其关键配置信息。样本中包含硬编码的IP地址127.0.0.1,表明其回连目标为本地主机,常用于实验环境。发现字符串C:\Windows\System32\winvmx.exe及注册表启动项路径,确认了其感染意图是将自身复制到系统目录并修改注册表以实现持久化。导入表分析显示其使用了InternetOpen等网络函数,验证了其作为网络后门的功能定位。

个人收获: 本次实验让我深入理解了恶意代码“配置提取”在静态分析中的核心地位。我学会了不再局限于查看代码逻辑,而是通过Strings等工具快速挖掘出样本的“指纹”(IP、域名、路径)。同时,我认识到恶意软件为了实现隐蔽和持久化,往往会将关键配置信息以明文或简单编码隐藏在资源段或数据段中。这种“非执行代码”层面的分析技术,是快速判定恶意代码威胁等级和攻击意图的高效手段。

本文作者:Linxiong

本文链接:

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