第1章 搭建开发环境
1.1 操作系统要求
1.2 获取和安装Python 2.5
1.2.1 在Windows下安装Python
1.2.2 在Linux下安装Python
1.3 安装Eclipse和PyDev
1.3.1 黑客挚友:ctype库
1.3.2 使用动态链接库
1.3.3 构建C数据类型
1.3.4 按引用传参
1.3.5 定义结构体和联合体
第2章 调试器原理和设计
2.1 通用寄存器
2.2 栈
2.3 调试事件
2.4 断点
2.4.1 软断点
2.4.2 硬件断点
2.4.3 内存断点
第3章 构建自己的Windows调试器
3.1 Debugee,敢问你在何处
3.2 获取寄存器状态信息
3.2.1 线程枚举
3.2.2 功能整合
3.3 实现调试事件处理例程
3.4 无所不能的断点
3.4.1 软断点
3.4.2 硬件断点
3.4.3 内存断点
3.5 总结
第4章 PyDbg——Windows下的纯Python调试器
4.1 扩展断点处理例程
4.2 非法内存操作处理例程
4.3 进程快照
4.3.1 获取进程快照
4.3.2 汇总与整合
第5章 Immunity Debugger——两极世界的最佳选择
5.1 安装Immunity Debugger
5.2 Immunity Debugger
5.2.1 PyCommand命令
5.2.2 PyHooks
5.3 Exploit(漏洞利用程序)开发
5.3.1 搜寻exploit友好指令
5.3.2 “坏”字符过滤
5.3.3 绕过Windows 下的DEP机制
5.4 破除恶意软件中的反调试例程
5.4.1 IsDebuugerPresent
5.4.2 破除进程枚举例程
第6章 钩子的艺术
6.1 使用PyDbg部署软钩子
6.2 使用Immunity Debugger部署硬钩子
第7章 DLL注入与代码注入技术
7.1 创建远程线程
7.1.1 DLL注入
7.1.2 代码注入
7.2 遁入黑暗
7.2.1 文件隐藏
7.2.2 构建后门
7.2.3 使用py2exe编译Python代码
第8章 Fuzzing
8.1 几种常见的bug类型
8.1.1 缓冲区溢出
8.1.2 整数溢出
8.1.3 格式化串攻击
8.2 文件Fuzzer
8.3 后续改进策略
8.3.1 代码覆盖率
8.3.2 自动化静态分析
第9章 Sulley
9.1 安装Sulley
9.2 Sulley中的基本数据类型
9.2.1 字符串
9.2.2 分隔符
9.2.3 静态和随机数据类型
9.2.4 二进制数据
9.2.5 整数
9.2.6 块与组
9.3 行刺WarFTPD
9.3.1 FTP 101
9.3.2 创建FTP协议描述框架
9.3.3 Sulley会话
9.3.4 网络和进程监控
9.3.5 Fuzzing测试以及Sulley的Web界面
第10章 面向Windows驱动的Fuzzing测试技术
10.1 驱动通信基础
10.2 使用Immunity Debugger进行驱动级的Fuzzing测试
10.3 Driverlib——面向驱动的静态分析工具
10.3.1 寻找设备名称
10.3.2 寻找IOCTL分派例程
10.3.3 搜寻有效的IOCTL控制码
10.4 构建一个驱动Fuzzer
第11章 IDAPython——IDA PRO环境下的Python脚本编程
11.1 安装IDAPython
11.2 IDAPython函数
11.2.1 两个工具函数
11.2.2 段(Segment)
11.2.3 函数
11.2.4 交叉引用
11.2.5 调试器钩子
11.3 脚本实例
11.3.1 搜寻危险函数的交叉代码
11.3.2 函数覆盖检测
11.3.3 检测栈变量大小
第12章 PYEmu——脚本驱动式仿真器
12.1 安装PyEmu
12.2 PyEmu概览
12.2.1 PyCPU
12.2.2 PyMemory
12.2.3 PyEmu
12.2.4 指令执行
12.2.5 内存修改器与寄存器修改器
12.2.6 处理例程(Handler)
12.3 IDAPyEmu
12.3.1 函数仿真
12.3.2 PEPyEmu
12.3.3 可执行文件加壳器
12.3.4 UPX加壳器
12.3.5 利用PEPyEmu脱UPX壳
^ 收 起