这本书的封面整的像武侠小说里面的忍者一样。就内容来说,如果想了解或者研究rootkit,这本书还是很值得参考的。对于我这种不搞rootkit的人来说,也有很多参考的价值。这本书很不适合初学者看,因为里面讲了很多偏底层的东西,还有系统内核的东西。所以如果对系统内核了解不多,或者编程不多的话,看起来就很吃力。我当然也只能吸取其中的一小部分知识了。
这本书网上有电子版的可以下,不过我喜欢看纸质版的。虽然我不搞rootkit,但阅读完此书还是蛮有收获。rootkit实际上就是一个后门,只不过它是一种技术含量很高的后门,所以编写好的rootkit,就需要和系统内核挂钩,才能更好的隐藏自己,并能实现强大的功能。
由于rootkit偏底层,所以书中也讲解了许多和硬件结合的知识。比如一个有趣的鲜为人知的知识点(P220页):键盘控制器有一条直达CPU的线路,它直接连到CPU上的RESET引脚。该引脚的命令能够重启机器,并且是立即执行,没有关机序列动作,也不存在恢复的机会。所以如果rootkit处于内核中,并且能够直接向CPU发出reset或HALT命令,那么这一操作将非常有趣。
本书中涉及到内核的一些东西,主要讲解了硬件相关问题、钩子使用、驱动的利用,还有一个信息的隐藏。当然这些讲解并不是通常编程书籍上的内容,而是一些很底层和系统内核、rootkit相关的东西,所以还有蛮有价值的。
所以我觉得搞rootkit的话,此书值得一看。不搞的话,此书可以参考,但要选择性的看,因为那样的话很多东西会参不透的。
基本信息
【原 书 名】 Rootkits: Subverting the Windows Kernel
【作 者】(美)霍格兰德(Hoglund, G.);(美)巴特勒(Butler, J.) [同作者作品]
【译 者】 韩智文[同译者作品]
【出 版 社】 清华大学出版社 【书 号】 9787302146520
【上架时间】 2007-4-29
【出版日期】 2007 年4月 【开 本】 16开 【页 码】 1 【版 次】1-1
内容简介
本书是目前第一本关于rootkit的详尽指南,包括rootkit的概念、它们是怎样工作的、如何构建和检测它们。世界顶级软件安全专家、rootkit.com创始人Greg Hoglund和James Butler向大家详细介绍攻击者是如何进入系统并长期驻留而不会被检测到的,以及黑客是如何摧毁Windows XP和Windows 2000内核系统的,其概念可以应用于现代任何主流操作系统。通过本书,读者可以全面掌握rootkit,提升自己的计算机安全防范能力。
作者简介
Greg Hoglund,软件安全领域的先驱者。软件安全验证服务的领先提供商HBGary公司的CEO。在编写了最早的网络漏洞扫描器之一(在半数以上的财富500强公司中安装)后,创建了第一个基于Windows NT的rootkit并撰写了文档,同时建立了www.rootkit.corn网站。经常在Black Hat、RSA以及其他安全会议上作演讲。与他人合著了最佳畅销书《软件剖析——代码攻防之道》
(清华人学出版社引进并出版,ISBN:7-302-10445-X)。
目录
第1章 销声匿迹
1.1 攻击者的动机
1.1.1 潜行的角色
1.1.2 不需潜行的情况
1.2 rootkit的定义
1.3 rootkit存在的原因
1.3.1 远程命令和控制
1.3.2 软件窃听
1.3.3 rootkit的合法使用
1.4 rootkit的存在历史
1.5 rootkit的工作方式
1.5.1 打补丁
1.5.2 复活节彩蛋
1.5.3 间谍件修改
1.5.4 源代码修改
1.5.5 软件修改的合法性
1.6 rootkit与其他技术的区别
1.6.1 rootkit不是软件利用工具
1.6.2 rootkit不是病毒
1.7 rootkit与软件利用工具
1.8 攻击型rootkit技术
1.8.1 HIPS
1.8.2 NIDS
1.8.3 绕过IDS/IPS
1.8.4 绕过取证分析工具
1.9 小结
第2章 破坏内核
2.1 重要的内核组件
2.2 rootkit的结构设计
2.3 在内核中引入代码
2.4 构建Windows设备驱动程序
2.4.1 设备驱动程序开发工具包
2.4.2 构建环境
2.4.3 文件
2.5 加载和卸载驱动程序
2.6 对调试语句进行日志记录
2.7 融合rootkit:用户和内核模式的融合
2.7.1 I/O请求报文
2.7.2 创建文件句柄
2.7.3 添加符号链接
2.8 加载rootkIt
2.8.1 草率方式
2.8.2 正确方式
2.9 从资源中解压缩.sys文件
2.10 系统重启后的考验
2.11 小结
第3章 硬件相关问题
3.1 环0级
3.2 CPu表和系统表
3.3 内存页
3.3.1 内存访问检查
3.3.2 分页和地址转换
3.3.3 页表杏询
3.3.4 页目录项
3.3.5 页表项
3.3.6 重要表的只读访问
3.3.7 多个进程使用多个页目录
3.3.8 进程和线程
3.4 内存描述符表
3.4.1 令局描述符表
3.4.2 本地描述符表
3.4.3 代码段
3.4.4 调用门
3.5 中断描述符表
3.6 系统服务调度表
3.7 控制寄存器
3.7.1 控制寄存器
3.7.2 其他控制寄存器
3.7.3 EFlags寄存器
3.8 多处理器系统
3.9 小结
第4章 古老的钩子艺术
第5章 运行时补丁
第6章 分层驱动程序
第7章 直接内核对象操作
第8章 操纵硬件
第9章 隐秘通道
第10章 rootkit检测