恶意代码分析静态分析初级篇
字数 2189 2025-08-18 11:39:30
恶意代码静态分析初级教程
一、在线恶意文件识别站点
在线识别站点允许上传文件,调用多个反病毒引擎扫描并生成报告,帮助确定样本是否为恶意。
1. VirusTotal
- 网址: https://www.virustotal.com/gui/home/upload
- 特点: 业内公认的权威在线检测工具
- 功能: 上传疑似恶意文件,获取多引擎扫描结果
2. VirScan
- 网址: https://r.virscan.org
- 特点: 常用的在线扫描工具
- 功能: 提供样本扫描结果报告
3. 微步在线
- 网址: https://x.threatbook.cn/
- 特点: 提供沙箱动态分析
- 功能: 检测样本的动态行为,包括产生的进程、释放的文件等信息
二、哈希值计算
哈希是唯一标识恶意代码的常用方法。
常用哈希算法
- MD5: 恶意代码分析最常见的哈希函数
- SHA-1: 也是常用的哈希算法
工具
- hashdeep (早期版本名为md5deep)
- 功能: 批量计算文件哈希值,并与哈希值列表比对
- 平台: Kali Linux自带该工具
哈希值搜索
- 示例URL:
https://md5.virscan.org/language/zh-cn/7f7ccaa16fb15eb1c7399d422f8363e8.html - 方法: 将URL末尾替换为需要查找的哈希值即可查看相关文件报告
三、字符串查找
字符串是可打印的字符序列,可提供程序功能提示。
工具
- strings
- 功能: 查看文件中的可打印字符
- 用途: 发现程序访问的URL、特定操作等信息
- 平台: Kali Linux自带该工具
四、加壳与混淆技术
恶意代码作者常用加壳或混淆技术来隐藏执行过程。
加壳特点
- 加壳程序运行时先运行脱壳代码解压缩
- 加壳/混淆的代码通常包含LoadLibrary和GetProcAddress函数
常见加壳工具
- ASPack
- UPX
- PECompact
- Petite 2.2
- NsPack v3.7
- FSG 2.0
- Dbpe 2.20
- The Enigma Protector 1.02
- Armadillo
- ACProtect
完整列表参考: https://tools.pediy.com/win/packers.htm
侦壳工具
- PEiD
- ExePEInfo
- Detect It Easy
完整列表参考: https://tools.pediy.com/win/unpacker.htm
五、链接库与函数
可执行程序的重要信息之一是导入表。
链接类型
-
静态链接
- 特点: 库中所有代码被复制到可执行程序中
- 结果: 可执行程序体积增大
- 平台: Linux中较常见,Windows中不常用
-
运行时链接
- 特点: 需要时才链接到库
- 用途: 恶意代码(特别是加壳/混淆时)常用
-
动态链接
- 特点: 最常见,程序装载时搜索所需代码库
- 机制: 宿主操作系统完成链接
分析工具
- Dependency Walker
- 功能: 列出可执行文件的动态链接函数
- 显示内容:
- 程序导入的DLL列表(如KERNEL32.DLL, ADVAPI32.DLL等)
- DLL文件导入的函数
- 函数查询:
- 通过MSDN库查找函数功能
- 示例: SetWindowsHookExA函数文档
- https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowshookexa
六、PE文件结构分析
PE(可移植可执行)文件头包含文件元数据,各节段包含不同信息。
PE文件主要节段
-
.text节
- 内容: CPU指令
- 特点: 唯一可执行的节,包含可执行代码
-
.rdata节
- 内容: 全局可访问的只读数据
- 包含: 导入导出的函数信息
-
.data节
- 内容: 全局可访问的数据
- 注意: 不包含本地数据
-
.rsrc节
- 内容: 非可执行资源
- 示例: 图片、图标、字符串等
分析工具
-
PEView
- 功能: 查看PE文件头
- 重要信息:
- IMAGE_FILE_HEADER: 文件基本信息
- IMAGE_OPTIONAL_HEADER:
- Subsystem: 指出是控制台(IMAGE_SUBSYSTEM_WINDOWS_CUI)还是图形界面程序(GUI)
-
Resource Hacker
- 功能: 查看.rsrc资源节内容
- 用途:
- 查看程序包含的所有资源
- 修改程序内容(如替换字符串)
七、工具与样本下载
文中涉及的工具和实验样本可在GitHub获取:
https://github.com/tide-emergency/yingji/tree/master/%E6%81%B6%E6%84%8F%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%90%E4%B8%8E%E5%AE%9E%E6%88%98%E7%AC%94%E8%AE%B0/tools
八、安全团队信息
Tide安全团队
- 成立时间: 2019年1月
- 研究方向:
- 网络攻防
- Web安全
- 移动终端安全
- 安全开发
- IoT/物联网/工控安全
- 官网: http://www.TideSec.com
本教程内容基于《恶意代码分析实战》一书和实际分析经验整理而成,适合初级恶意代码分析人员学习参考。