首页/安全/取证与溯源速查/PE 头部与导入表解读

PE 头部与导入表解读

PE 头给出编译时间、区段与导入函数:导入表里的网络、进程、加密 API 组合能勾勒样本能力面。

取证与溯源速查安全更新于 2026-10-13

PE 头部与导入表解读是什么

PE 头给出编译时间、区段信息与导入函数。导入表里同时出现网络通信、进程操作、加解密这几类 API 时,往往能勾勒样本的能力方向:是下载器、窃密程序还是勒索组件。它是不运行样本就能判断功能的常用入口。

基本信息

用途不运行样本的情况下判断功能方向
关注点区段熵值、编译时间、导入的库与函数
工具pefile、PEStudio、objdump、strings
前提加壳样本需先脱壳再读导入表

典型使用场景

  • 快速判断样本的大致类型与能力
  • 评估是否需要优先送沙箱深入分析
  • 提取可用于检测的特征:字符串与导入组合
  • 与情报库的哈希比对结合使用
  • 对比同族样本,判断变种关系
  • 对比同族样本的区段数量与大小差异,识别加壳与二次打包
  • 提取字符串中的地址与域名,作为外联排查的输入
  • 把导入组合与沙箱行为结论交叉核对,避免单点推断

查看导入表与区段

查看导入表与区段
import pefile                                       # 需 pip install pefile
pe = pefile.PE('sample.bin')
for e in pe.DIRECTORY_ENTRY_IMPORT[:8]:
    print(e.dll.decode(), [i.name.decode() for i in e.imports[:6] if i.name])
for s in pe.sections:
    print(s.Name, hex(s.Characteristics), round(s.get_entropy(), 2))
# 关注网络访问、进程创建、内存操作、加解密这几类函数的组合

导入组合与含义

导入类别常见函数提示能力
网络通信InternetOpen、WinHttpSendRequest下载或回联能力
进程控制CreateProcess、ShellExecute拉起其他程序
内存操作VirtualAlloc、WriteProcessMemory注入或内存执行
加密相关CryptEncrypt、CryptGenKey加密载荷或勒索行为
注册表与服务RegSetValue、CreateService持久化倾向
编译时间字段可以被随意伪造,只能当线索用,判断时要与文件系统时间、样本来源结合。
高熵区段通常提示加壳或内嵌加密数据,不必强行解释其中内容;先脱壳再看导入表,结论才有意义。
区段名称异常(大小写混排、随机字符串)或区段数量很少,常见于被加壳与保护工具处理过的样本。
导入表为空或极小、文件体积却很大,说明特征被压缩或加密,直接读导入表的结论没有参考价值。

易错点

  • 拿加壳样本的极小导入表当结论,功能判断完全跑偏
  • 把编译时间当可靠证据,忽略它可被伪造
  • 只看导入表不看字符串与区段,特征提取不完整
  • 用高熵区段推断具体加密算法,属于过度解读

数据来源与参考

  • pefile 项目文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌