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