灰帽 Python
Python
Python
Python 之旅
序
曾经我花了很长的时间 , 寻找一门适合 hacking 和逆向工程的语言 。 几年前 , 终于让我
发现了 Python ,而如今它已经成为了黑客编程的首选。不过对于 Python 的在 hacking 应用
方面一直缺少一本详实的手册 。 当我们用到问题的时候 , 不得不花很多时间和精力去阅读论
坛或者用户手册,然后让我们的代码运行起来。这本书的目标就是提供给各位一本强大 的
Python Hack 手册,让大家在 hacking 和逆向工程中更加得心应手。
在阅读此书之前 , 假设大家已经对各种黑客工具 , 技术 ( 调试器 , 后门 , fuzzer , 仿真器
,
代码注入 ) 都有一个理论上的认识 。 我们的目的是不仅仅会使用各种基 于 Pytho n 编写的工具
,
还要能够自定和编写自己的工具 。 一本书是不可能介绍完所有的的工具和技术的 , 但我们是
对一些常用的技术,进行详细的解说,而这些技术都是一通百通的,在以后的安全开发中
,
大家只要灵活应用就行了。
这是本手册类的书籍,所以阅读的时候不一定从头到尾。如果你是一个 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 找到。
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
搭建开发环境
在即将开始令人兴奋的
Python
Python
Python
Python Hack
Hack
Hack
Hack
之前 , 让我们先花一
点点事件准备好自己的工具 。 相信我这样做是值得的 , 它会让你
玩的更快乐。
这章我们会简单的讲解 , Python2.5 的安装 , Eclipse 配置 , 以及如何编写 C 兼容的 Pytho n
代码。
1.1
1.1
1.1
1.1 操作系统准备
就逆向的趣味性而言 , Windows 是最好的目标 。 无数的工具和广泛的使用人群 , 使得代
码开发和 Crack 都变得更容易,所以本书的大部分代码都基于 Windows( 任何你能搞的到 的
Windows 版本 ) 。
少部分例子也能运行在 32 位的 Linux 上。无论是安装在 VMware(VMware 提供免费版
本 , 不同为版权担心 ) 上还是实机上 , 都行 。 Linux 版本众多 , 本书推荐基于 Red Hat 的发布平
台 :Fedora Core 7 or Centos 5 。
免费的
VMWARE
VMWARE
VMWARE
VMWARE
镜像
VMware 在网站上提供了免费的版本。这些虚拟机用于逆工程,漏洞分析,或者任何
程序的调试,同时和主机完全独立开来。
主程序下载链接 :http://www.vmware.com/appliances/ ,
Pyayer 程序下载链接 :http://www.vmware.com/products/player/ 。
1.2
1.2
1.2
1.2 获取和安装 Python2.5
Python2.5
Python2.5
Python2.5
Linuxer 可以跳过这个步骤,大部分 Linux 都内置了 Python 。 Windows 下可以通过独立
的安装包进行安装。
1.2.1
1.2.1
1.2.1
1.2.1 在 Windows
Windows
Windows
Windows 上安装 Python
Python
Python
Python
Windows 的安装版本可以从 Python 主页上下载 http://
python.org/ftp/python/2.5.1/python-2.5.1.msi 。双击,一步一步的按指示安装就行。在默认的
主目录 C:/Python25/ 下,安装了 python.exe 和默认的库。
提示 建议大家安装 Immunity 调试器,其包含了很多必须的附加程序,其中就有 Python
2.5 。在后面的章节中,我们也会使用到 Immunity 。下载页 面
http://debugger.immunityinc.com/( 要用代理还要填写些资料 ) 。
1.2.2
1.2.2
1.2.2
1.2.2 在 Linux
Linux
Linux
Linux 上安装 Python
Python
Python
Python
如果需要在 Linux 上手工安装 Python 的话 , 可以按如下的步骤进行 。 这里使用 Red Ha t
的衍生版,并且这个过程使用 root 权限。
第一步,下载 Python 2.5 源码并解压 :
_______________________________________________________________________________
# cd /usr/local/
# wget http://python.org/ftp/python/2.5.1/Python-2.5.1.tgz
# tar – zxvf Python-2.5.1.tgz
# mv Python-2.5.1 Python25
# cd Python25
_______________________________________________________________________________
代码解压到 /usr/local/Python25 之后,就要编译安装了 :
_______________________________________________________________________________
# ./configure – -prefix=/usr/local/Python25
# make && make install
# pwd
/usr/local/Python25
# python
Python 2.5.1 (r251:54863, Mar 14 2012, 07:39:18)
[GCC 3.4.6 20060404 (Red Hat 3.4.6-8)] on Linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
_______________________________________________________________________________