Python灰帽子黑客与逆向工程师的Python编程之道pdf下载电子书下载|百度网盘下载
编辑评论:
Python Grey Hat - 黑客和逆向工程师的 Python 编程之道 本书由知名安全机构 ImmunityInc 的高级黑帽 Justin Seitz 先生撰写编程语言 Python 是被广泛使用的关于黑客和逆向工程的书籍。资深黑客和 Immunity\nInc Dave\nAitel 的创始人兼 CTO (CT0) 担任本书的技术编辑。
简介
本书的大部分内容侧重于黑客领域的两个经久不衰的主题:逆向工程和漏洞挖掘,并让读者深入了解几乎每个逆向工程师或安全研究人员在日常工作中所做的事情。面对各种场景,包括:如何设计?构建自己的调试工具,如何自动化繁琐的逆向分析任务,如何设计和构建自己的 fuzzing 工具,如何使用 fuzzing 测试找出软件产品中存在的安全漏洞,钩子的应用等一些技巧和注入技术,并深入介绍了一些主流的 Python 安全工具,如 PyDbg、Immunity\nDebugger、Sulley、IDAPython、PyEmu 等。作者在当今流行编程语言的读者的帮助下,通过构建强大的脚本来解决这些问题黑客社区中的 Python。本书中出现的Python代码示例有相当一部分是借用或直接来源于一些开源安全项目,例如Pedram\nAmini的Paimei,让读者可以体会到安全研究人员如何?如何优雅地融合黑客艺术和工程技术来解决那些棘手的问题。
本书适合热衷于黑客技术的读者,尤其是逆向工程和漏洞挖掘相关的读者,以及所有对Python编程感兴趣的读者。
调用约定
调用约定特指函数的调用方法。其中包括传递函数参数的方法、顺序(压栈或传给寄存器)、函数返回时栈的平衡处理。下面两个约定是最常用的:edecl和stdcall.cdecl调用约定,函数的参数从右到左压入栈中,函数的调用者负责函数调用后的平衡功能被执行。此约定通常用于 x86 架构的 C 语言中。
定义结构和联合
结构和联合是非常重要的数据类型,被大量用于 WIN32 和 Linux libc 的 API 使用。结构变量是简单变量的集合(所有变量都占用空间)。这些结构体中的变量在类型上没有限制,点击变量名即可访问。例如 beer recipe.amt barley,就是访问 beer recipe 结构中的 amt barley 变量。
目录
第 1 章构建开发环境 1
1.1 操作系统要求 1
1.2 获取和安装 Python 2.52
1.2.1 Windows下安装Python2
1.2.2 Linux下安装Python2
1.3 安装 Eclipse 和 PyDev4
1.3.1 黑客最好的朋友:ctype library 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 被调试者,敢问你在哪里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 60 的纯 Python 调试器
4.1 扩展断点处理例程 60
4.2 非法内存操作处理例程63
4.3 进程快照 66
4.3.1 获取进程快照 67
4.3.2 聚合与集成 70
第 5 章免疫调试器 - 双极世界的最佳选择 74
5.1 安装 Immunity Debugger74
5.2 免疫调试器 10175
5.2.1 PyCommand 76
5.2.2 PyHooks76
5.3 漏洞利用开发 78
5.3.1 搜索漏洞利用友好命令 78
5.3.2 “坏”字符过滤 80
5.3.3 Windows 82下绕过DEP机制
5.4 破坏恶意软件 87 中的反调试程序
5.4.1 IsDebuugerPresent87
5.4.2 中断进程枚举例程 88
第 6 章钩子的艺术 90
6.1 使用 PyDbg 部署软钩子 90
6.2 使用 Immunity Debugger 部署 Hard Hooks 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 章 Fuzzing117
8.1 几种常见的错误类型 118
8.1.1 缓冲区溢出 118
8.1.2 整数溢出 119
8.1.3 格式化字符串攻击121
8.2 文件 Fuzzer122
8.3 后续改进策略 129
8.3.1 代码覆盖率 129
8.3.2 自动静态分析 130
第 9 章 Sulley131
9.1 安装 Sulley132
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 突击战FTPD136
9.3.1 FTP 101137
9.3.2 创建 FTP 协议描述框架 138
9.3.3 Sulley 会话 139
9.3.4 网络和进程监控 140
9.3.5 模糊测试和 Sulley 的 Web 界面 141
第 10 章 Windows 驱动程序的模糊测试技术 145
10.1 驱动程序通信基础 146
10.2 使用 Immunity Debugger 进行驱动程序级模糊测试 147
10.3 Driverlib——面向驱动的静态分析工具 151
10.3.1 查找设备名称152
10.3.2 查找 IOCTL 调度例程 153
10.3.3 搜索有效的 IOCTL 控制码 155
10.4 构建驱动程序 Fuzzer157
第 11 章 IDAPython——IDA PRO 环境中的 Python 脚本编程 162
11.1 安装IDAPython163
11.2 IDAPython 函数 164
11.2.1 两个效用函数 164
11.2.2 段 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 安装 PyEmu174
12.2 PyEmu 概述 175
12.2.1 PyCPU175
12.2.2 PyMemory176
12.2.3 PyEmu176
12.2.4 指令执行 176
12.2.5 内存修饰符和寄存器修饰符 177
12.2.6 处理程序 177
12.3 IDAPyEmu182
12.3.1 功能模拟 184
12.3.2 PEPyEmu187
12.3.3 可执行打包程序 188
12.3.4 UPX 打包器 188
12.3.5 使用 PEPyEmu 189 移除 UPX 外壳