
python 黑帽编程 1.3 Python 运行时与 包管理工具 0.1 本系列教程说明
本系列教程,采用的大纲母本为《 Understanding Network Hacks Attack and Defense with Python 》一书,为了解决很多同学对英文书的恐惧,解决看书之后实战过程中遇到的问题 而作。由于原书很多地方过于简略,笔者根据实际测试情况和最新的技术发展对内容做了大量的变更,当然最重要的是个人偏好。教程同时提供图文和视频教程两种方式,供不同喜好的同学选择。
0.2 前言前两节里,我们完成了操作系统和工具的安装。事实上可以进入到正式开发阶段了, Kali linux 系统自带了 Python 运行时及 easy_install 和 pip 等基础组件,包括我们之后的课程里要用到的 pypcap 等网络包也都一并存在了。
这是 Kali 带来的好处,但是对初学 Python 的同学来说,我想有必要把 Python 运行时和模块安装的基础知识讲解清楚。
1.1 安装 Python首先到 Python 官方网站 https://www.python.org/ 下载 python 的安装包。

转到下载页面。

下载页面会自动识别我们使用的操作系统,上面的下载按钮下载下来的就是识别之后的对应系统的软件包,在下面有其他系统的链接。这里需要注意的是 python 的两个主要 版本分支,一个是 2.7.* 一个是 3.*.* 版本。我们的系列课程推荐使用 2.7 ,所有代码在 3.0 以上版本的环境中运行结果未知。你也可以选择使用最新的 Python 版本来编写程序,但是也一定要单独安装 2.7 版本,保证学习进度。
下载并保存文件。下面我们说说在不同系统下如何安装 python, 当然安装 Python 的方法也很多,恕我不能一一道来。
1.1.0 Kali Linux 下安装 PythonKali Linux 系统自带,无需安装,略。
1.1.1 windows 下安装 Python浏览器打开 https://www.python.org/downloads/windows/ ,来到 windows 安装包的下载页面。

找到我们要下载的 2.7.12 下载安装包。

下载之后,点击安装。安装过程中,可以选择讲 Python 写到系统 Path 变量里,方便在任何地方访问 Python 。

安装完成后,测试。

1.1.2 Mac 下安装 Python
Mac 下安装和 Windows 上差不多,先到 Mac 安装包的下载页,找到安装包,下载。

下载之后进行安装。

安装成功之后,启动终端进行校验。

1.1.4 Linux 下安装 Python
我使用的 Linux 为 CentOS ,安装方法为源码安装(任何系统都能采用源码安装的方式, Linux 上这种方式更常见,不过在 windows 上源码安装要更麻烦一些),其他 Linux 操作系统方法类似。
在 CentOS 下安装 Python ,根据你所使用的系统的环境不同,需要安装的内容也许会不一样,主要的区别在需要的依赖项。不过解决方法也很简单,就是缺什么装什么了。下面的过程是在我的测试机上完成的。
首先确认是否安装了 GCC ,如果没有的话,使用 yum 进行安装。
# yum install gcc

GCC 安装完成之后,我们新建一个目录,用来下载 Python 源码,命令如下。
# mkdir src
# cd src
# wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz
下载完成之后,解压,依次执行 configure 、 make 和 install 进行安装。
# tar xzf Python-2.7.10.tgz # cd Python-2.7.10 # ./configure# make install
安装完成之后,启动终端输入下面的命令,看是否安装成功
# python version 1.2 模块的安装Python 的模块( module )在概念层面和其他语言并无太大的区别,都是为了逻辑上划分代码功能,将概念上高内聚的代码放在一起组成一个模块。在表现形式上, python 的模块是以文件作为分割的,简单讲, 模块是包括 Python 定义和声明的文件。文件名就是模块名加上 .py 后缀。模块的模块名(做为一个字符串)可以由全局变量 __name__ 得到。
关于模块的编写、导入、加载机制等内容,在后面的课程会详细介绍。
使用 Python 编程来解决实际问题的便利性,很大程度上得益于众多的 Python 模块,这些模块由官方、社区或者其他第三方开发者提供。我在之前的非本系列的一篇博文中(《 kali linux Python 黑客编程 1 开发环境初始化 》)介绍过 Python 里安装模块的三种方法,这里再拿出来重新讲解下。
1.2.1 手动安装第一种方法是手动下载软件包,运行安装程序来安装。
比如我们想要使用 Python-nmap 组件去解析 nmap 的扫描结果,我们先手动下载安装包。
wget http://xael.org/pages/python-nmap-0.6.0.tar.gz

解压:
root@kali:~# tar xzf python-nmap-0.6.0.tar.gz
root@k