序
曾经我花了很长的时间,寻找一门适合 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 找到。