第1章 绪论1.1 木马的基本概念1.2 木马的发展历程1.3 木马的类型1.4 本书组织结构第2章 木马的隐藏2.1 木马自身文件的隐藏2.1.1 基于文件枚举函数Hook的隐藏2.1.2 基于FSDHook的文件隐藏2.1.3 基于自定义文件系统的隐藏2.2 木马模块的隐藏2.2.1 “摘链”隐藏2.2.2 基于PELoader的隐藏2.3 网络端口的隐藏2.3.1 WindowsXP系统下的端口隐藏2.3.2 Vista之后的端口隐藏2.3.3 端口复用2.4 小结第3章 木马驱动加载与启动3.1 Windows存储与启动过程3.1.1 Windows系统硬盘与分区3.1.2 基于BIOS的系统启动过程3.1.3 基于UEFI的启动过程3.2 基于MBR的Bootkit3.2.1 MBR结构解析3.2.2 MBR的修改3.3 基于VBR的Bootkit3.3.1 VBR结构解析3.3.2 VBR的修改3.4 Bootkit控制系统启动与加载驱动3.4.1 挂钩中断3.4.2 监控系统启动3.4.3 加载驱动3.5 小结第4章 木马的免杀4.1 免杀原理4.2 针对静态查杀的免杀4.2.1 特征字符串变形4.2.2 木马组件加密和存储4.2.3 基于泛型的API动态调用4.3 针对动态查杀的免杀4.3.1 时间延迟方式4.3.2 资源耗尽方式4.3.3 上下文差异4.3.4 多次启动4.3.5 虚拟环境中的WindowsAPI差异4.3.6 已知特定目标机器信息4.4 其他免杀方法4.4.1 代码注入4.4.2 傀儡进程4.4.3 DLL劫持4.5 脚本化木马4.6 小结第5章 木马反分析技术5.1 反调试5.1.1 调试器的工作机制5.1.2 反调试5.2 反反汇编5.3 反虚拟机5.4 反沙盒5.4.1 沙盒原理5.4.2 沙盒检测5.5 反内存扫描5.6 小结第6章 Windows 64位系统下的木马技术6.1 Windows 64位系统6.2 Wow64子系统6.3 Wow64中执行64位代码6.3.1 32位进程中执行64位的指令6.3.2 32位进程中调用64位API6.4 小结第7章 木马通信与防火墙穿透7.1 基于TCP的木马控制通信7.1.1 粘包和分包处理7.1.2 链接保活7.2 基于UDP的木马控制通信7.3 基于HTTP/HTTPS的木马通信7.4 边界防火墙穿透7.5 Forefront TMG穿透解析7.5.1 ForefrontTMG实验网络拓扑7.5.2 穿透思路与实现7.6 小结第8章 木马实例解析8.1 模块化的木马系统架构8.2 生成器8.3 被控端8.3.1 木马释放组件8.3.2 常驻模块8.4 控制端8.4.1 控制端的架构8.4.2 控制端的通信8.5 小结第9章 木马技术的发展趋势9.1 通信更加隐蔽化9.1.1 基于Tor的通信9.1.2 基于公共服务的中转通信9.1.3 基于内核的网络通信9.2 实现呈现硬件化9.3 植入平台多样化9.4 小结参考文献