目录
第1章 销声匿迹 1
1.1 攻击者的动机 1
1.1.1 潜行的角色 2
1.1.2 不需潜行的情况 3
1.2 rootkit的定义 3
1.3 rootkit存在的原因 4
1.3.1 远程命令和控制 4
1.3.2 软件窃听 5
1.3.3 rootkit的合法使用 5
1.4 rootkit的存在历史 6
1.5 rootkit的工作方式 7
1.5.1 打补丁 7
1.5.2 复活节彩蛋 7
1.5.3 间谍件修改 7
1.5.4 源代码修改 8
1.5.5 软件修改的合法性 8
1.6 rootkit与其他技术的区别 9
1.6.1 rootkit不是软件利用工具 9
1.6.2 rootkit不是病毒 10
1.7 rootkit与软件利用工具 11
1.8 攻击型rootkit技术 14
1.8.1 HIPS 14
1.8.2 NIDS 15
1.8.3 绕过IDS/IPS 15
1.8.4 绕过取证分析工具 16
1.9 小结 17
第2章 破坏内核 19
2.1 重要的内核组件 20
2.2 rootkit的结构设计 20
2.3 在内核中引入代码 23
2.4 构建Windows设备驱动程序 24
2.4.1 设备驱动程序开发工具包 24
2.4.2 构建环境 24
2.4.3 文件 25
2.5 加载和卸载驱动程序 28
2.6 对调试语句进行日志记录 28
2.7 融合rootkit:用户和内核模式的融合 29
2.7.1 I/O请求报文 30
2.7.2 创建文件句柄 33
2.7.3 添加符号链接 35
2.8 加载rootkit 36
2.8.1 草率方式 36
2.8.2 正确方式 38
2.9 从资源中解压缩.sys文件 40
2.10 系统重启后的考验 42
2.11 小结 43
第3章 硬件相关问题 45
3.1 环0级 46
3.2 CPU表和系统表 47
3.3 内存页 48
3.3.1 内存访问检查 49
3.3.2 分页和地址转换 50
3.3.3 页表查询 51
3.3.4 页目录项 52
3.3.5 页表项 53
3.3.6 重要表的只读访问 53
3.3.7 多个进程使用多个页目录 54
3.3.8 进程和线程 54
3.4 内存描述符表 55
3.4.1 全局描述符表 55
3.4.2 本地描述符表 56
3.4.3 代码段 56
3.4.4 调用门 56
3.5 中断描述符表 56
3.6 系统服务调度表 60
3.7 控制寄存器 60
3.7.1 控制寄存器0 60
3.7.2 其他控制寄存器 61
3.7.3 EFlags寄存器 61
3.8 多处理器系统 61
3.9 小结 63
第4章 古老的钩子艺术 65
4.1 用户空间钩子 65
4.1.1 导入地址表钩子 67
4.1.2 内联函数钩子 68
4.1.3 将DLL注入到用户空间进程中 70
4.2 内核钩子 74
4.2.1 钩住系统服务描述符表 75
4.2.2 修改SSDT内存保护机制 76
4.2.3 钩住SSDT 79
4.3 混合式钩子方法 99
4.3.1 进入进程的地址空间 99
4.3.2 钩子的内存空间 103
4.4 小结 105
第5章 运行时补丁 107
5.1 detour补丁 108
5.1.1 用MigBot重定控制流程路径 109
5.1.2 检查函数字节 110
5.1.3 记录被重写的指令 112
5.1.4 使用NonPagedPool内存 114
5.1.5 运行时地址修正 115
5.2 跳转模板 119
5.3 补丁方法的变型 126
5.4 小结 127
第6章 分层驱动程序 129
6.1 键盘嗅探器 130
6.2 剖析KLOG rootkit 134
6.3 文件过滤器驱动程序 146
6.4 小结 161
第7章 直接内核对象操作 163
7.1 DKOM的优缺点 163
7.2 确定操作系统的版本 165
7.2.1 用户模式的自确定 165
7.2.2 内核模式的自确定 167
7.2.3 在注册表中查询操作系统版本 167
7.3 用户空间与设备驱动程序的通信 169
7.4 DKOM隐藏技术 173
7.4.1 隐藏进程 173
7.4.2 隐藏设备驱动程序 179
7.4.3 同步问题 183
7.5 使用DKOM提升令牌权限和组 187
7.5.1 修改进程令牌 187
7.5.2 伪造Windows Event Viewer 201
7.6 小结 203
第8章 操纵硬件 205
8.1 为何使用硬件 206
8.2 修改固件 207
8.3 访问硬件 208
8.3.1 硬件地址 208
8.3.2 访问硬件与访问RAM的区别 209
8.3.3 定时问题 210
8.3.4 I/O总线 210
8.3.5 访问BIOS 212
8.3.6 访问PCI和PCMCIA设备 213
8.4 访问键盘控制器示例 213
8.4.1 8259键盘控制器 213
8.4.2 修改LED指示器 214
8.4.3 强制重启 220
8.4.4 击键监视器 220
8.5 微码更新 227
8.6 小结 228
第9章 隐秘通道 229
9.1 远程命令、控制和数据窃取 230
9.2 伪装TCP/IP协议 231
9.2.1 注意通信量模式 231
9.2.2 不以明文发送数据 232
9.2.3 充分利用时间因素 232
9.2.4 隐藏在DNS请求中 233
9.2.5 对ASCII编码有效负载进行隐写操作 233
9.2.6 使用其他TCP/IP通道 234
9.3 TCP/IP内核中支持rootkit的TDI接口 235
9.3.1 构建地址结构 235
9.3.2 创建本地地址对象 237
9.3.3 根据上下文创建TDI端点 240
9.3.4 将端点与本地地址进行关联 243
9.3.5 连接到远程服务器(发送TCP握手消息) 245
9.3.6 将数据发送到远程服务器 247
9.4 原始网络操作 250
9.4.1 在Windows XP上实现原始套接字 250
9.4.2 绑定到接口 251
9.4.3 使用原始套接字进行嗅探 252
9.4.4 使用原始套接字进行杂乱嗅探 253
9.4.5 使用原始套接字发送报文 254
9.4.6 伪造源信息 254
9.4.7 弹回报文 254
9.5 TCP/IP内核中支持rootkit的NDIS接口 255
9.5.1 注册协议 255
9.5.2 协议驱动程序回调函数 260
9.5.3 移动完整报文 266
9.6 主机仿真 273
9.6.1 创建MAC地址 273
9.6.2 处理ARP协议 273
9.6.3 IP网关 276
9.6.4 发送报文 276
9.7 小结 280
第10章 rootkit检测 281
10.1 检测rootkit的存在 281
10.1.1 守护门口 282
10.1.2 扫描“空间” 284
10.1.3 查找钩子 284
10.2 检测rootkit的行为 293
10.2.1 检测隐藏的文件和注册表键 294
10.2.2 检测隐藏的进程 294
10.3 小结 297
· · · · · · (
收起)
评分
☆☆☆☆☆
个人觉得写的很不错,有人说翻译的不是很好,可读到现在觉得翻译的还是可以的,只是有些地方知识跨度可能会影响理解,不过多读两遍觉得翻译的还是不错的。 ---个人见解
评分
☆☆☆☆☆
在卓越上买的,订单后看了一下英文版的,发现没必要买纸质书了,但是货已经发出来了…… 英文版的用的都是很简单的单词,很容易看懂,觉得买中文版有点亏了…… 清华大学出版社,能不能把纸张弄好一点啊!
评分
☆☆☆☆☆
书不厚,但是内容的分量很足,并且不是普通的读者就能立刻上手的。它不像Windows核心编程一书那样详实,但在关键之处毫不含糊。这从它给出的示例就能看出来。这本书的作者已经假设读者有了很强的程序设计背景,在内核驱动编程,Windows内存管理,PE文件格式等这些系统程序...
评分
☆☆☆☆☆
书是好书,选题很好,但是,翻译就真的有问题,只能说差强人意,以这个篇幅来介绍rookits,而且基本上都说清楚了,有人可能觉得rookits这么高深的课题讲得还远远不够,须知道,这种课题只能点到为止,对于某些专业人士来说,缺的只是那么一点儿提示,不是技术细节,这个领域重要的是想像力,...
评分
☆☆☆☆☆
书不厚,但是内容的分量很足,并且不是普通的读者就能立刻上手的。它不像Windows核心编程一书那样详实,但在关键之处毫不含糊。这从它给出的示例就能看出来。这本书的作者已经假设读者有了很强的程序设计背景,在内核驱动编程,Windows内存管理,PE文件格式等这些系统程序...