资源简介
本书从基本的Windows程序与汇编指令出发,深入浅出地讲解了Windows内核的编程、调试、阅读,
以及自行探索的方法。读者在使用C/C++开发Windows程序的基础上,将熟练掌握汇编和C语言的应用,
深入了解Windows底层,并掌握阅读Windows内核的基本方法,以及Windows内核的基本编程方法。
作者简介/出版社简介
谭文:从2002年到2008年,从事信息安全类软件的Windows内核驱动的开发工作。从2008年开始参与一个主要涉及不同架构之间二进制指令的实时翻译技术的项目的开发。业余时间在驱动开发音(www.driverdevelop.com)以楚狂人为笔名发表了许多技术文章。
丛书名: | 驱网核心技术丛书 |
ISBN: | 978-7-121-07339-7 |
供应商: | 电子工业出版社 |
出版日期: | 2008年10月1日 |
编著者: | 谭文 |
页数: | 269 |
开本: | 16开 |
原价: | ¥45.00 |
目录
{目录}
入手篇 熟悉汇编 |
第1章 汇编指令与C语言 |
1.1 上机建立第一个工程 |
1.1.1 用Visual Studio创建工程 |
1.1.2 用Visual Studio查看汇编代码 |
1.2 简要复习常用的汇编指令 |
1.2.1 堆栈相关指令 |
1.2.2 数据传送指令 |
1.2.3 跳转与比较指令 |
1.3 C函数的参数传递过程 |
第2章 C语言的流程和处理 |
2.1 C语言的循环反汇编 |
2.1.1 for循环 |
2.1.2 do循环 |
2.1.3 while循环 |
2.2 C语言判断与分支的反汇编 |
2.2.1 if-else判断分支 |
2.2.2 switch-case判断分支 |
2.3 C语言的数组与结构 |
2.4 C语言的共用体和枚举类型 |
第3章 练习反汇编C语言程序 |
3.1 算法的反汇编 |
3.1.1 算法反汇编代码分析 |
3.1.2 算法反汇编阅读技巧 |
3.2 发行版的反汇编 |
3.3 汇编反C语言练习 |
基础篇 内核编程 |
第4章 内核字符串与内存 |
4.1 字符串的处理 |
4.1.1 使用字符串结构 |
4.1.2 字符串的初始化 |
4.1.3 字符串的拷贝 |
4.1.4 字符串的连接 |
4.1.5 字符串的打印 |
4.2 内存与链表 |
4.2.1 内存的分配与释放 |
4.2.2 使用LIST_ENTRY |
4.2.3 使用长长整型数据 |
4.2.4 使用自选锁 |
第5章 文件与注册表操作 |
5.1 文件操作 |
5.1.1 使用OBJECT_ATTRIBUTES |
5.1.2 打开和关闭文件 |
5.1.3 文件读/写操作 |
5.2 注册表操作 |
5.2.1 注册表键的打开 |
5.2.2 注册表值的读 |
5.2.3 注册表值的写 |
第6章 时间与线程 |
6.1 时间与定时器 |
6.1.1 获得当前滴答数 |
6.1.2 获得当前系统时间 |
6.1.3 使用定时器 |
6.2 线程与事件 |
6.2.1 使用系统线程 |
6.2.2 在线程中睡眠 |
6.2.3 使用同步事件 |
第7章 驱动、设备与请求 |
7.1 驱动与设备 |
7.1.1 驱动入口与驱动对象 |
7.1.2 分发函数和卸载函数 |
7.1.3 设备与符号链接 |
7.1.4 设备的安全创建 |
7.1.5 设备与符号链接的用户相关性 |
7.2 请求处理 |
7.2.1 IRP与IO_STACK_LOCATION |
7.2.2 打开与关闭请求的处理 |
7.2.3 应用层信息传入 |
7.2.4 驱动层信息传出 |
探索篇 研究内核 |
第8章 进入Windows内核 |
8.1 开始Windows内核编程 |
8.1.1 内核编程的环境准备 |
8.1.2 用C语言写一个内核程序 |
8.2 学习用WinDbg进行调试 |
8.2.1 软件的准备 |
8.2.2 设置Windows XP调试执行 |
8.2.3 设置VMWare虚拟机调试 |
8.2.4 设置被调试机为Vista的情况 |
8.2.5 设置Windows内核符号表 |
8.2.6 调试例子diskperf |
8.3 认识内核代码函数调用方式 |
8.4 尝试反写C内核代码 |
8.5 如何在代码中寻找需要的信息 |
第9章 用C++编写的内核程序 |
9.1 用C++开发内核程序 |
9.1.1 建立一个C++的内核工程 |
9.1.2 使用C接口标准声明 |
9.1.3 使用类静态成员函数 |
9.1.4 实现new操作符 |
9.2 开始阅读一个反汇编的类 |
9.2.1 new操作符的实现 |
9.2.2 构造函数的实现 |
9.3 了解更多的C++特性 |
第10章 继续探索Windows内核 |
10.1 探索Windows已有内核调用 |
10.2 自己实现XP的新调用 |
10.2.1 对照调试结果和数据结构 |
10.2.2 写出C语言的对应代码 |
10.3 没有符号表的情况 |
10.4 64位操作系统下的情况 |
10.4.1 分析64位操作系统的调用 |
10.4.2 深入了解64位内核调用参数传递 |
深入篇 修改内核 |
第11章 机器码与反汇编引擎 |
11.1 了解Intel的机器码 |
11.1.1 可执行指令与数据 |
11.1.2 单条指令的组成 |
11.1.3 MOD-REG-R/M的组成 |
11.1.4 其他的组成部分 |
11.2 反汇编引擎XDE32基本数据结构 |
11.3 反汇编引擎XDE32具体实现 |
第12章 CPU权限级与分页机制 |
12.1 Ring0和Ring3权限级 |
12.2 保护模式下的分页内存保护 |
12.3 分页内存不可执行保护 |
12.3.1 不可执行保护原理 |
12.3.2 不可执行保护的漏洞 |
12.4 权限级别的切换 |
12.4.1 调用门及其漏洞 |
12.4.2 sysenter和sysexit指令 |
第13章 开发Windows内核Hook |
13.1 XP下Hook系统调用IoCallDriver |
13.2 Vista下IofCallDriver的跟踪 |
13.3 Vista下inline hook |
13.3.1 写入跳转指令并拷贝代码 |
13.3.2 实现中继函数 |
实战篇 实际开发 |
第14章 反病毒、木马实例开发 |
14.1 反病毒、木马的设想 |
14.2 开发内核驱动 |
14.2.1 在内核中检查可执行文件 |
14.2.2 在内核中生成设备接口 |
14.2.3 在内核中等待监控进程的响应 |
14.3 开发监控进程 |
14.4 本软件进一步展望 |
第15章 Rootkit与HIPS |
15.1 Rootkit为何很重要 |
15.2 Rootkit如何逃过检测 |
15.3 HIPS如何检测Rootkit |
第16章 手写指令保护代码 |
16.1 混淆字符串 |
16.2 隐藏内核函数 |
16.3 混淆流程与数据操作 |
16.3.1 混淆函数出口 |
16.3.2 插入有意义的花指令 |
第17章 用VMProtect保护代码 |
17.1 安装VMProtect |
17.2 使用VMProtect |
17.3 查看VMProtect效果 |
参考文献 |
链接:http://pan.baidu.com/s/1kUKTWEj
页:
[1]