windows样本分析之基础静态分析
字数 1327 2025-08-03 16:49:52
Windows样本分析之基础静态分析
目标
- 样本鉴定黑白(判断是否为恶意软件)
- 样本初步行为的判断
- 相关信息收集
原理
鉴黑白
特征码检测
- 检测已知病毒:杀毒软件将分析过的病毒中的特征部分提取成相应特征码
- 文件特征
- 字符特征
- 指令特征等
启发检测
- 检测未知病毒:通过检测病毒运行过程中的API调用行为链
初步行为判断
- 特征API:不同种类的病毒样本根据其特性总会调用一些特定的API函数
相关信息收集
- 编译时间:判断样本的出现时间
- 文件类型:命令行、GUI或其他类型
- 网络行为:是否有网络连接特征
- 关联文件:是否有其他相关文件
- 壳情况:是否加壳或混淆
算法流程
根据常用逆向工具实现上述原理的检测:
鉴黑白
-
文件特征检测
- 使用VirusTotal检测(通过SHA-1搜索)
- 查看是否有厂商已进行黑白判断
-
字符特征检测
- 使用strings/pestdio工具打印字符串
- 根据特征字符串(如IP地址、敏感词句、API符号等)进行Google搜索
-
加壳/混淆判断
- 使用PEID/DIE工具查看文件是否加壳
- strings判断:如果字符串数量稀少、存在少量API符号(如LoadLibrary),需特别注意
-
链接检测
- 运行时链接检测:恶意样本通常采用LoadLibrary进行运行时链接
样本初步行为判断
- 使用pestdio查看导入表的API调用和字符串信息
- 分析API调用链判断可能的行为
相关信息收集
- 使用PEStudio查看文件头的时间戳
- 使用PEStudio查看文件头的文件类型
- 查看导入表里的API和String表中的网络特征
- 查看String表中的文件字符串
- 使用DIE/PEID查壳情况或分析string表和api的特征
实践过程(以Lab01-01.exe为例)
鉴黑白
- VT(virusTotal)扫描
- 42/70的检出率,确认是病毒
- 高检出率可减少后续分析工作量
样本初步行为判断
-
导入表分析
- FindFirstFileA和FindNextFileA:可能进行文件遍历
- CopyFile:文件复制操作
- 排除勒索可能性(VT扫描结果无Ransom字段)
-
字符串表分析
- 发现"C:*"和".exe"字段:可能在C盘遍历exe文件
- 发现非系统DLL文件"Lab01-01.dll"
- 发现警示语(破坏机器的提示)
- 发现混淆DLL名称"kernel132.dll"(将字母l替换为数字1)
初步结论:
- 有文件遍历和复制操作
- 存在可疑DLL文件并尝试隐藏(通过名称混淆)
- 可能将DLL文件复制到特定位置并通过其他方式调用
相关信息收集
-
编译时间
- 2010年,较老的样本
-
文件类型
- 32位可执行文件
-
导入表和String表
- 未发现网络特征
- 字符串表中发现破坏性警告,但未发现相关API
- 可能通过资源占用(如磁盘空间)进行破坏
-
壳信息
- 查壳工具未发现加壳特征
- 导入表函数和字符串数量正常
- 未发现LoadLibrary等脱壳API,排除加壳行为
小结
- 通过静态分析确认样本为恶意软件
- 初步判断样本行为包括文件遍历、复制和隐藏DLL
- 收集了编译时间、文件类型等基本信息
- 需要进一步分析关联的DLL文件以全面了解样本行为
参考
[1] 恶意样本分析实战