这一部分涉及无模块加载、反射式加载、模块隐藏等双用途内容。这里只按 PE 加载机制、防护分析和检测复盘来整理,不写成可直接用于隐蔽加载的实现流程。

1、内容范围

小节 内容 复盘点
08.7 - 10.0 无模块加载 文件缓存、内存映像、导入修复、重定位修复、自加载流程
10.1 - 12.1 模块隐藏 反射式注入思路、私有映像、跨进程数据、远程入口点

2、文件状态与内存映像

PE 文件不能简单按文件字节直接执行,加载器会按节表把文件状态转换成内存状态。

状态 特点
文件缓存 按 FileAlignment 排列
内存映像 按 SectionAlignment 排列
节区映射 每个节从文件偏移映射到 RVA

3、手动加载需要处理什么

合法加载器会完成很多工作。复盘手动加载思路时,要理解这些工作点:

工作 说明
映像拉伸 把文件节映射到内存布局
导入修复 加载依赖 DLL,填充 IAT
重定位修复 基址变化时修正绝对地址
入口调用 满足前置条件后进入入口点
权限设置 根据节属性设置内存保护

4、无模块加载的检测视角

异常加载不一定会出现在正常模块列表中,因此防护侧不能只看模块枚举。

观察点 说明
私有可执行内存 不属于正常映像节的可执行区域
PE 头痕迹 内存中出现 MZ/PE 结构
IAT 修复痕迹 动态解析 API 或手动填表
重定位痕迹 大量地址修正
入口执行 线程入口或回调地址异常

5、模块隐藏相关概念

模块隐藏通常围绕“内存中有代码,但常规模块列表不明显”展开。学习时只记录原理和检测点。

概念 复盘点
私有映像 内存区域不一定对应正常模块文件
共享/写拷贝 系统 DLL 页保护和共享机制
远程数据 跨进程读写需要权限和边界
ShellCode 只做结构和检测痕迹复盘

6、安全边界

这类内容非常容易越界。博客里只保留:

  1. Windows 加载器做了哪些工作。
  2. PE 结构哪些字段参与加载。
  3. 防护侧可以观察哪些内存和事件痕迹。
  4. 授权实验中如何记录日志和清理环境。

不记录隐蔽加载、远程执行或绕过检测的可复用步骤。

7、学习检查清单

检查项 状态
能说明文件状态和内存映像的区别 待复盘
能列出手动加载需要处理的 PE 结构 待复盘
能说明导入修复和重定位修复的作用 待复盘
能从防护角度识别私有可执行内存 待复盘
能把无模块加载内容限定在授权分析范围内 待复盘