0%

按功能分类壳大致可以分为压缩壳和加密壳两类.压缩壳使用压缩算法用于减少PE的体积, 加密壳用于对抗逆向分析

1. 简介

  1. 分类
    • 压缩壳: 减少PE的体积
      • 压缩算法
    • 加密壳: 对抗逆向分析
      • 加密算法, 反调试等…
      • 授权壳(key、授权码)
  2. 实现
    • 加壳:
      • 将正常PE的节区压缩生成新的PE文件
      • 新PE文件中包含, 已压缩的节区数据和解压缩的代码
    • 启动:
      • 运行解压缩代码, 还原数据
      • 跳转到原始入口点.
  3. 特征
    • 大跳(夸节区的跳转)
    • 空节: 节区包含一个仅有内存的节区
  4. 查壳工具:
    • PEID
    • EXEINFO PE

2. 脱壳

  1. 步骤:
    1. 查壳
    2. 调试运行, 停在OEP
    3. dump
    4. 修复PE
  2. 识别OEP: 查看各种编辑器编译的入口代码
    • ESP定律
    • API
      • 编译器原入口函数的特征API
      • vc6: GetVersion
      • vs17: QueryPerformanceCounter
    • 单步跟踪(步过循环, 只向下跳转)

扩展

  1. 样本
    • 壳1
    • 不满足环境, 执行遮掩功能
    • 满足条件脱壳2
  2. 反调试:
    • VT 调试
    • 硬件调试
    • OD插件(HideOD)