# 序
曾经我花了很长的时间,寻找一门适合 hacking 和逆向工程的语言。几年前,终于让我 发现了 Python,而如今它已经成为了黑客编程的首选。不过对于 Python 的在 hacking 应用 方面一直缺少一本详实的手册。当我们用到问题的时候,不得不花很多时间和精力去阅读论 坛或者用户手册,然后让我们的代码运行起来。这本书的目标就是提供给各位一本强大的 Python Hack 手册,让大家在 hacking 和逆向工程中更加得心应手。
在阅读此书之前,假设大家已经对各种黑客工具,技术(调试器,后门,fuzzer,仿真器, 代码注入)都有一个理论上的认识。我们的目的是不仅仅会使用各种基于 Python 编写的工具, 还要能够自定和编写自己的工具。一本书是不可能介绍完所有的的工具和技术的,但我们是 对一些常用的技术,进行详细的解说,而这些技术都是一通百通的,在以后的安全开发中, 大家只要灵活应用就行了。
这是本手册类的书籍,所以阅读的时候不一定从头到尾。如果你是一个 Python 新手, 建议把全书都阅览一遍,因为你会学到很多必要的 hack 原理和编程技巧,便于以后的完成 各种复杂的任务。如果你已经对 Python 很熟悉,并且对 ctypes 库也很了解了,那就可以跳 过第二章。当然,你也可以只是当当看其中感兴趣的一章,每章的代码都做了详实的解释。
我花了很多事件讲解调试器,因为调试器就似乎 hacker 的手术刀:从第二章调试原理, 第五章 Immunity 的应用和扩展,到第六章和第七章的 hooking 以及注入技术的介绍(用于内 存的控制和处理)。
本书的第二部分就是对 fuzzers 的介绍。第八章会讲解基础的 fuzzer 原理,并且构建一 个简单的 file fuzzer。第九章,介绍强大的 Sulley fuzzing 框架,并且使用它 fuzz 一个真正 的 FTP 服务器。第十章,学习构建一个 Windows 驱动 fuzzer。
第十一章,介绍 IDA(最常用的静态反汇编工具)的 Python 扩展。十二章,详细讲解 PyEmu,一个基于 Python 的仿真器。
本书的所有代码都尽量保持简短,在关键的地方都做了详细的解说。学习一门新的语言 或一个新的库,都需要花费事件和精力。所以建议各位自己手写代码。所有的源码可以在 [http://www.nostarch.com/ghpython.htm](http://www.nostarch.com/ghpython.htm) 找到。
Now let’s get coding!
陆陆续续花了两个月时间,终于初步完成了 gray python 的翻译。对自己的英文和技术 的提高是最让我欣慰的。还有还有很多需要改进的地方,不过苦于时间不许,遂无法进一步 完成。
将此书献给我的家人,尤其是我的母亲,是她的坚韧和聪慧,让我的人生变得不同。我 的伙伴们---自由之光的所有队员(眉宇间,codeblue,小龙,。。。),以及曾经教育和指引过我 的老师,还有那些默默奉献分享自己技术的 hacker 们。
岁月如梭,那些在学生时代的激情岁月,那些永远不知疲倦的夜晚,无数的汗水和青春 已经消逝在岁月的长河里。只有对技术和极限的自由追求,不曾变过。
为自由和理想而战----天国之翼[自由之光]
个人简介:
网名:天国之翼[自由之光] , winger
年龄:20-30
编程语言:asm,c,python
就读过的学校:集美大学
专业:网络系统管理
工作:自由安全工作者,secoder(security coder)
网址:hi.baidu.com/freewinge
联系方式:free.winger at gmail.com
爱好:搏击,修禅,音乐,电影
最爱吃的东西:老爹的手擀面
自由之光----一个追求技术自由和个人极限的安全团队。起源于集美大学。
- 序
- 1 搭建开发环境
- 1.1 操作系统准备
- 1.2 获取和安装 Python2.5
- 1.3 配置 Eclipse 和 PyDev
- 2 调试器设计
- 2.1 通用 CPU 寄存器
- 2.2 栈
- 2.3 调试事件
- 2.4 断点
- 3 自己动手写一个 windows 调试器
- 3.2 获得 CPU 寄存器状态
- 3.3 实现调试事件处理
- 3.4 全能的断点
- 4 PyDBG---纯 PYTHON 调试器
- 4.1 扩展断点处理
- 4.2 处理访问违例
- 4.3 进程快照
- 5 IMMUNITY----最好的调试器
- 5.1 安装 Immunity 调试器
- 5.2 Immunity Debugger 101
- 5.3 Exploit 开发
- 5.4 搞定反调试机制
- 6 HOOKING
- 6.1 用 PyDbg 实现 Soft Hooking
- 6.2 Hard Hooking
- 7 Dll 和代码注入
- 7.1 创建远线程
- 7.2 邪恶的代码
- 8 FUZZING
- 8.1 Bug 的分类
- 8.2 File Fuzzer
- 8.3 改进你的 Fuzzer
- 9 SULLEY
- 9.1 安装 Sulley
- 9.2 Sulley primitives
- 9.3 猎杀 WarFTPD
- 10 Fuzzing Windows 驱动
- 10.1 驱动通信
- 10.2 用 Immunity fuzzing 驱动
- 10.4 构建 Driver Fuzzer
- 11 IDAPYTHON --- IDA 脚本
- 11.1 安装 IDAPython
- 11.2 IDAPython 函数
- 11.3 脚本例子
- 12 PyEmu
- 12.1 安装 PyEmu
- 12.2 PyEmu 一览
- 12.3 IDAPyEmu