书中的例子
fakenet模拟网络的工具
1 使用反病毒引擎扫描
- VirusTotal
- VirScan
2 哈希值
winMD5.exe
计算文件的md5值,在线搜索3 查找字符串
Strings.exe 下载页面
下载后解压,将exe放在C:\windows\system32下即可 Strings可查看PE文件中字符串,有助于推断出恶意代码的用途4 加壳和混淆
加壳后的恶意程序打印的字符串很少
注意:加壳的恶意代码至少会包含LoadLibary 和 GetProcAddress两个API函数 ,它们用来加载和使用其它函数功能4.1 文件加壳
4.2 PEiD检测加壳
UPX加壳工具 官网
脱壳 upx.exe -d pefile5 PE文件格式
PE portable File Format(可移植文件) dll exe
6 链接库和函数
PE文件的导入表 其它文件的函数 链接在主函数中
6.1 链接分类
- 静态链接: 将库中的代码复制到可执行代码中
- 运行时链接:在程序运行中,需要时链接相应的库 通常会使用LoadLibrary和GetProcAddress两个函数,可访问系统中任意库中的任意函数 恶意代码常用
- 动态连接: 在程序被装载入内存时,链接相应的库,windows下最常用 PE头中的导入表中存储有引用的库和函数信息
6.2 动态链接库
Dependency Walker
6.3 导入函数
PE头中包含文件使用的特定函数相关信息
6.4 导出函数
用来提供给其它程序使用的函数信息
7 静态分析技术实践
8 PE文件头
#-*- coding:utf-8 -*-import pefile,sys#输出文件的PE头部信息print(pefile.PE(sys.argv[1]))
PE文件格式可参考这个
8.2 使用resourcehacker工具查看资源节
8.3 其它的PE工具
PEBrowse Pro
PE Explorer