《Python灰帽子》是由知名安全机构Immunity Inc的资深黑帽Justin Seitz主笔撰写的一本关于编程语言Python如何被广泛应用于黑客与逆向工程领域的书籍。老牌黑客,同时也是Immunity Inc的创始人兼首席技术执行官(CTO)Dave Aitel为这本书担任了技术编辑一职。书中绝大部分篇幅着眼于黑客技术领域中的两大经久不衰的话题:逆向工程与漏洞挖掘,并向读者呈现了几乎每个逆向工程师或安全研究人员在日常工作中所面临的各种场景,其中包括:如何设计与构建自己的调试工具,如何自动化实现烦琐的逆向分析任务,如何设计与构建自己的fuzzing工具,如何利用fuzzing 测试来找出存在于软件产品中的安全漏洞,一些小技巧诸如钩子与注入技术的应用,以及对一些主流Python安全工具如PyDbg、 Immunity Debugger、Sulley、IDAPython、PyEmu等的深入介绍。作者借助于如今黑客社区中备受青睐的编程语言 Python引领读者构建出精悍的脚本程序来一一应对上述这些问题。出现在书中的相当一部分Python代码实例借鉴或直接来源于一些优秀的开源安全项目,诸如Pedram Amini的Paimei,由此读者可以领略到安全研究者们是如何将黑客艺术与工程技术优雅融合来解决那些棘手问题的。
第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 内存断点 55
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.3.2 “坏”字符过滤 80
5.3.3 绕过Windows 下的DEP机制 82
5.4 破除恶意软件中的反调试例程 87
5.4.1 IsDebuugerPresent 87
5.4.2 破除进程枚举例程 88
第6章 钩子的艺术 90
6.1 使用PyDbg部署软钩子 90
6.2 使用Immunity Debugger部署硬钩子 95
第7章 DLL注入与代码注入技术 101
7.1 创建远程线程 101
7.1.1 DLL注入 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的Web界面 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 PyMemory 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
《戴世光学术年谱》内容简介:本书全面而详实地记述我国著名的经济统计学家、人口统计学家、首批经济统计学博士生导师戴世光先生学
《软件困局》内容简介:软件工程其实并没有多少“工程”的成分,这已经是公开的秘密了。自计算机诞生以来,特别是20世纪60年代大批
《SRE:Google运维解密》内容简介:大型软件系统生命周期的绝大部分都处于“使用”阶段,而非“设计”或“实现”阶段。那么为什么我
《文化的江山03:中国风雅颂》内容简介:公元前1000—前500年,文化中国的《诗经》时代,自由的时代咏唱出自由的诗歌。“中国”这个
《二十四节气七十二候》内容简介:二十四节气七十二候不仅是一套关于时令、气候、物候变化规律的知识体系,更是属于中国人的时间哲
《对不起,我操控了你的大脑》内容简介:2018年3月,脸书(Facebook)被曝出泄露数据丑闻,一家在2016年帮助特朗普赢得美国总统大选
《C语言程序设计》内容简介:C语言是国内外广泛使用的计算机语言,是理工类专业人员应掌握的一种程序设计工具。本书以能力培养为目
《大话数据结构》内容简介:本书为超级畅销书《大话设计模式》作者程杰潜心三年推出的扛鼎之作!以一个计算机教师教学为场景,讲解
在计算机发展的历史上,没有哪一种程序设计语言像C语言这样应用广泛。本书是C语言的设计者之一DennisM.Ritchie和著名计算机科学家
《水运与国运》内容简介:本书从大禹治水锻造中华民族早期统一体开篇,以“一带一路”战略打造中国连接大陆大洋、构建人类命运共同
1作者为德国红点设计大奖得主。2书中独有作者自创的图形创作模式,即“理性—直觉—手—电脑”的结合运用。3本书包含40种颠覆惯性
《教育3.0》内容简介:科技的发展、时代的巨变给当下的教育行业带来了巨大的挑战,工业时代的教育方式早已过 时,未来的教育如何发
《Head First Go语言程序设计》内容简介:Go是为高性能网络和多处理而设计的,但与python和javascript一样,该语言易于阅读和使用。
本书内容包括:背景、DNS是如何工作的、建立BIND、DNS和电子邮件、培植主机、维护BIND、扩展你的域、用解析器和名字服务器的库例
Thisnew,expandedtextbookdescribesallphasesofamoderncompiler:lexicalanalysis,pars...
从零开始学习Cocoa的首选图书.涵盖了最新的Mac编程技术高级MacOSX开发者们联手强烈推荐..MacOSX编程图书的标杆AaronHillegass多年
《图解室内设计分析》:建筑师和室内设计师在今天这个读图时代,每天与大量的视觉信息打交道,图像的瞬时显示成了设计师看图的主
《远去的都市:1950年代的上海》内容简介:有人说上海史是历史学界的“宠儿”,一直受到特别的关注,确实如此。魏斐德、李欧梵、叶
你可曾疑惑為何便宜的葡萄酒倒在別緻的玻璃酒杯中,品嘗起來就特別美味?或是為什麼洗過的車或打過蠟的車感覺特別好開?新的研究
在刚过去的十年我们见证了共享Web和社会媒体的诞生,它们用各种富有创意的方式将人们联系在一起。目前,成千上万的用户忙着在线玩