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

实验一:静态分析基础技术一

一、实验目的

  1. 掌握恶意代码静态分析的基本流程与安全操作规范,能够在隔离环境中对未知样本进行初步处理。
  2. 学习并熟练使用PEiD、Strings等工具识别样本的加壳状态及内部关键字符串信息。
  3. 理解PE文件结构,掌握通过Dependency Walker查看导入表与导出表的方法。
  4. 能够综合运用上述工具,在不运行代码的前提下,推断恶意代码的基本行为与潜在功能。

二、实验内容

  • 病毒扫描与哈希计算:将Lab01-01.exe、Lab01-01.dll及Lab01-02.exe上传至VirusTotal网站,获取文件的MD5/SHA1哈希值及各杀毒引擎的检测结果,验证样本的恶意性。
  • 加壳识别与检测:利用PEiD或ExeinfoPE工具对三个样本文件进行扫描,分析其入口点及编译器信息,判断文件是否被压缩或加壳,并识别具体的壳名称。
  • 字符串信息提取:使用Strings工具提取样本中的所有ASCII与Unicode字符串,重点搜索URL、IP地址、文件路径及错误提示信息,分析其可能指向的网络资源或系统操作。
  • 导入导出表分析:通过Dependency Walker加载样本,查看其依赖的系统DLL文件及调用的API函数(如网络、文件操作函数),对于DLL文件还需分析其导出函数列表。

三、实验步骤 步骤1:样本收集与病毒检测。 首先在虚拟机中建立专用分析文件夹,放入Lab 1-1和Lab 1-2的三个文件。计算本地哈希值后,分别上传至VirusTotal。记录Lab01-01.exe的SHA1值,观察检测率。若大部分杀软报警,则确认为恶意代码。记录检测报告中提及的“Trojan”或“Downloader”等特征标签,作为后续分析的参考基准。

步骤2:识别文件是否加壳。 打开PEiD工具,点击“...”按钮分别载入Lab01-01.exeLab01-01.dllLab01-02.exe。观察界面的“Enty point”与“File info”栏目。若Lab01-01.dll显示“UPX 0.89.6 - 1.02 / 1.05 - 2.xx -> Markus & Laszlo”,则说明该文件被UPX壳加压;若Lab01-02.exe显示“Microsoft Visual C++ 6.0”等正常编译信息,则说明未加壳。记录下这些信息,加壳的样本通常无法直接进行字符串或反汇编分析,需优先脱壳。

步骤3:提取与分析字符串。 打开命令行提示符(CMD),切换至Sysinternals Suite目录。执行命令 strings.exe -a -n 4 C:\Samples\Lab01-02.exe。参数-a表示强制扫描所有类型字符,-n 4表示仅显示长度大于等于4的字符串。将输出结果重定向保存为txt文件。使用Notepad++打开该文件,搜索“http”、“ftp”、“.exe”、“Create”等关键词。如果在Lab01-02中发现类似http://www.malicious.com/update.exe的字符串,极可能表明该样本具有下载器的功能。

步骤4:分析依赖关系与API函数。 启动Dependency Walker,打开Lab01-02.exe。在左侧树状图中查看其依赖的DLL文件(如kernel32.dll, user32.dll, ws2_32.dll)。重点关注ws2_32.dll中的WSAStartupsocket函数,这验证了网络通信功能。接着打开Lab01-01.dll,点击“Export”标签页,查看其导出的函数名称。如果发现导出函数名为非规范的字符串(如“InstallRT”或“Start”),这通常意味着该DLL是专门设计供其他程序恶意加载的插件。

步骤5:综合验证与数据记录。 对比上述步骤获取的数据,验证逻辑一致性。例如,若Strings中发现了URL,且Dependency Walker中发现了网络相关的Winsock API,则可相互印证样本具有联网行为。整理所有截图与数据,形成静态分析结论。

四、实验分析 实验结果: 通过本次实验,我们确认Lab01-01.dll被UPX壳压缩,这会阻碍静态反汇编的进行,但其导出表显示了非标准的函数名。Lab01-02.exe未加壳,字符串提取成功发现了包含“http://”前缀的URL地址以及相关的文件路径字符串。Dependency Walker的分析结果显示,Lab01-02.exe导入了ws2_32.dll中的网络连接函数,与字符串分析结果高度吻合。VirusTotal的检测报告也证实了这些文件具有高置信度的恶意特征。

个人收获: 本次实验让我掌握了恶意代码静态分析的“三件套”:病毒库查询、加壳识别和字符串/API分析。我深刻理解了静态分析无需运行代码即可揭示样本意图的优势,同时也认识到加壳技术是静态分析的主要障碍。通过分析导入表和字符串,我学会了像侦探一样从碎片信息中拼凑出恶意代码的攻击链路,例如从URL和网络API推断出下载行为,这种逻辑推理能力的提升是本次实验最大的收获。

本文作者:Linxiong

本文链接:

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