一个加密病毒的分析
字数 1142 2025-08-24 07:48:09
加密病毒分析与逆向工程教学文档
一、实验环境与样本信息
- 实验环境: Windows 7 x64 操作系统
- 样本来源: 微步在线获取
- 分析工具:
- 火绒 (行为监控)
- x64dbg (动态调试)
- IDA Pro (静态分析)
二、病毒行为初步观察
- 运行效果:
- 运行前: 测试创建了txt文件
- 运行后: 所有文件被加密
- 病毒作者留下了联系信息
三、静态分析基础
-
查壳与编译信息:
- 未发现加壳保护
- 程序使用C++13编写
-
字符串分析:
- 发现加密算法相关字符串
- 在两个函数中引用,推测为加密函数
-
区块分析:
- 只有一个区块,表明可能做了特殊处理
-
导入表分析:
- 调用了敏感函数:
- 文件遍历相关函数
- 注册表操作相关函数
四、关键函数分析
-
主函数结构:
- 主函数仅调用了一个关键函数
- 该函数被推测定为解密函数(下文简称解密函数)
-
解密函数(408B19):
- 通过动态调试分析复杂逻辑
- 调用GetModuleFileName获取文件路径
- 解密结果为".Snake4444"(加密文件后缀)
- 发现"HOW..."字符串,推测为解密信息文件
-
硬件信息获取函数(4088F4):
- 获取硬件信息供后续加密使用
-
环境变量获取函数:
- 获取LOCALAPPDATA或APPDATA环境变量
- 两次尝试失败则退出
- 成功获取后添加反斜杠
- 获取文件名并将自身拷贝到local目录
-
注册表操作:
- 进行注册表相关操作
五、文件操作分析
-
文件创建与写入:
- 创建并写入文件,推测为公钥文件
-
加密函数(4099A3):
- 生成RSA密钥对
- 遍历磁盘操作
- 根据遍历结果创建线程进行加密
-
清理脚本函数(409449):
- 创建BAT文件进行清理
- 动态调试发现创建tmp85c2.tmp.bat
- 内容为调用CMD命令删除病毒文件
六、分析方法总结
-
静态分析局限性:
- 部分函数仅通过静态分析难以理解
- 需要结合动态调试
-
动态调试优势:
- 可观察实际执行流程
- 可获取运行时数据
- 可验证静态分析假设
七、完整分析流程建议
-
初步观察:
- 运行样本观察行为
- 记录文件系统、注册表等变化
-
基础静态分析:
- 查壳、编译信息
- 字符串分析
- 导入表分析
-
关键函数定位:
- 识别主函数调用关系
- 标记可疑函数(加密、解密、文件操作等)
-
动态调试验证:
- 设置断点跟踪关键函数
- 观察参数传递和返回值
- 记录内存变化
-
行为综合分析:
- 结合静态和动态分析结果
- 绘制病毒执行流程图
- 识别加密算法和密钥管理方式
八、防护建议
-
预防措施:
- 避免运行未知来源程序
- 定期备份重要文件
- 保持系统更新
-
检测方法:
- 监控可疑文件操作(大量文件修改)
- 检测异常注册表修改
- 注意异常进程创建
-
应急响应:
- 隔离感染系统
- 分析病毒样本获取解密信息
- 从备份恢复文件