Python黑帽编程1.3 Python运行时与包管理工具

简介:

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下安装Python

Kali 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

我使用的LinuxCentOS,安装方法为源码安装(任何系统都能采用源码安装的方式,Linux上这种方式更常见,不过在windows上源码安装要更麻烦一些),其他Linux操作系统方法类似。

CentOS下安装Python,根据你所使用的系统的环境不同,需要安装的内容也许会不一样,主要的区别在需要的依赖项。不过解决方法也很简单,就是缺什么装什么了。下面的过程是在我的测试机上完成的。

首先确认是否安装了GCC,如果没有的话,使用yum进行安装。

# yum install gcc

GCC安装完成之后,我们新建一个目录,用来下载Python源码,命令如下。

下载完成之后,解压,依次执行configuremakeinstall进行安装。

# 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 黑客编程开发环境初始化》)介绍过Python里安装模块的三种方法,这里再拿出来重新讲解下。

1.2.1  手动安装

第一种方法是手动下载软件包,运行安装程序来安装。

比如我们想要使用Python-nmap组件去解析nmap的扫描结果,我们先手动下载安装包。

 

解压:

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

root@kali:~# ls

paros          python-nmap-0.6.0         公共  视频  文档  音乐

phpmyadmin.sh  python-nmap-0.6.0.tar.gz  模板  图片  下载  桌面

root@kali:~# cd python-nmap-0.6.0/

root@kali:~/python-nmap-0.6.0# ls

CHANGELOG   gpl-3.0.txt  MANIFEST.in  nmap.html  README.txt        setup.py

example.py  Makefile     nmap         PKG-INFO   requirements.txt

root@kali:~/python-nmap-0.6.0#

运行setup.py,执行安装。

python setup.py install

 

root@kali:~/python-nmap-0.6.0# python setup.py install

/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'

  warnings.warn(msg)

running install

running build

running build_py

creating build

creating build/lib.linux-x86_64-2.7

creating build/lib.linux-x86_64-2.7/nmap

copying nmap/__init__.py -> build/lib.linux-x86_64-2.7/nmap

copying nmap/test_nmap.py -> build/lib.linux-x86_64-2.7/nmap

copying nmap/nmap.py -> build/lib.linux-x86_64-2.7/nmap

running install_lib

creating /usr/local/lib/python2.7/dist-packages/nmap

copying build/lib.linux-x86_64-2.7/nmap/__init__.py -> /usr/local/lib/python2.7/dist-packages/nmap

copying build/lib.linux-x86_64-2.7/nmap/test_nmap.py -> /usr/local/lib/python2.7/dist-packages/nmap

copying build/lib.linux-x86_64-2.7/nmap/nmap.py -> /usr/local/lib/python2.7/dist-packages/nmap

byte-compiling /usr/local/lib/python2.7/dist-packages/nmap/__init__.py to __init__.pyc

byte-compiling /usr/local/lib/python2.7/dist-packages/nmap/test_nmap.py to test_nmap.pyc

byte-compiling /usr/local/lib/python2.7/dist-packages/nmap/nmap.py to nmap.pyc

running install_egg_info

Writing /usr/local/lib/python2.7/dist-packages/python_nmap-0.6.0.egg-info

1.2.2 easy_intall

easy_install Python setuptools系列工具的中的一个工具,可以用来自动查找、下载、安装、升级依赖包。

Kali LinuxPython setuptools默认已经被安装,其他Linux系统中使用apt-get或者yum都可以安装。

apt-get 安装命令为:

sudo apt-get install python-setuptools

yum 安装命令为:

yum install setuptool

考虑到windows,这里再介绍一个通用的方法,适合所有操作系统。

首先下载ez_setup.py https://bootstrap.pypa.io/ez_setup.py)文件,然后执行下面的命令即可:

python ez_setup.py

下面我们使用easy_install 来安装Python的一个模块,可以用来对dpf进行解析和安全测试的pyPdf

easy_install pyPdf

easy_install当然也提供了卸载模块/包的功能。但是必须要注意的是,该模块/包必须要在easy-install.pth 有相关信息,换句话说,也就是要使用easy_install安装的,才可进行卸载。比如命令:

 easy_install -m redis

这样就会将Python中的redis模块卸载。

其他命令参数,这里就不详细介绍了,请各位同学自行查看。

1.2.3  pip

好消息是,最新版的Python2.x3.x都已经集成了python-pip

下面我们通过 pip 来安装github3模块。

pip install github3.py

root@kali:~/python-nmap-0.6.0# pip install github3.py

Downloading/unpacking github3.py

  Downloading github3.py-0.9.5-py2.py3-none-any.whl (109kB): 109kB downloaded

Downloading/unpacking uritemplate.py>=0.2.0 (from github3.py)

  Downloading uritemplate.py-0.3.0.tar.gz

  Running setup.py (path:/tmp/pip-build-LRgVNm/uritemplate.py/setup.py) egg_info for package uritemplate.py

   

Requirement already satisfied (use --upgrade to upgrade): requests>=2.0 in /usr/lib/python2.7/dist-packages (from github3.py)

Installing collected packages: github3.py, uritemplate.py

  Running setup.py install for uritemplate.py

   

Successfully installed github3.py uritemplate.py

Cleaning up...

下面再列举一些其他的常用功能,同样的更详细的用法留给各位同学自学。

如果要安装特定版本的package,通过使用==, >=, <=, >, <来指定一个版本号。例如:

pip install 'Markdown<2.0'

pip install 'Markdown>2.0,<2.0.3

如果有requirement的话,直接pip install -r requirements.txt就可以安装所有的了。

卸载软件,使用uninstall参数:

pip uninstall SomePackage 

更新软件:

pip install --upgrade SomePackage 

显示已经安装的文件:

pip show --files SomePackage

显示过期的安装包:

pip list --outdated 

 

1.3 小结

  本节课程依然简单,但是是你必须要掌握的。之后的开发课程中,我们会不厌其烦的使用包管理工具来安装我们需要的模块。

 

1.4  本节对应视频教程获取方法

在微信订阅号(xuanhun521)依次打开“网络安全”—>”Python黑客编程,找到对应的本篇文章的1.4节,有具体获取视频教程的方法。

 

 

由于教程仍在创作过程中,在整套教程完结前,感兴趣的同学请关注我的微信订阅号(xuanhun521,下方二维码),我会第一时间在订阅号推送图文教程和视频教程。问题讨论请加qq群:Hacking 1群):303242737   Hacking 2群):147098303

关注之后,回复请回复“Python”,获取更多内容。

 



本文转自玄魂博客园博客,原文链接:http://www.cnblogs.com/xuanhun/p/5703064.html,如需转载请自行联系原作者
目录
相关文章
|
2天前
|
数据采集 机器学习/深度学习 数据挖掘
探索Python编程之美:从基础到进阶
【9月更文挑战第4天】在数字时代的浪潮中,编程已成为一种新兴的“超能力”。Python,作为一门易于上手且功能强大的编程语言,正吸引着越来越多的学习者。本文将带领读者走进Python的世界,从零基础出发,逐步深入,探索这门语言的独特魅力和广泛应用。通过具体代码示例,我们将一起解锁编程的乐趣,并理解如何利用Python解决实际问题。无论你是编程新手还是希望提升技能的开发者,这篇文章都将为你打开一扇通往高效编程的大门。
|
4天前
|
Python
Python的编辑工具-Jupyter notebook实战案例
这篇博客介绍了Jupyter Notebook的安装和使用方法,包括如何在本地安装Jupyter、启动和使用Jupyter Notebook进行编程、文档编写和数据分析,以及如何执行和管理代码单元(Cell)的快捷键操作。
15 4
Python的编辑工具-Jupyter notebook实战案例
|
3天前
|
数据采集 机器学习/深度学习 数据挖掘
探索Python编程之美:从基础到实战
【9月更文挑战第3天】本文旨在通过深入浅出的方式,带领读者领略Python编程语言的魅力。我们将从基本语法入手,逐步深入至高级特性,最终通过实战案例将理论知识与实践操作相结合。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的见解和技巧。
|
1天前
|
存储 开发者 Python
探索Python编程之美
【9月更文挑战第5天】在这篇文章中,我们将一起踏上一场Python编程的奇妙之旅。从基础语法到高级特性,我们将一步步揭开Python语言的神秘面纱。你将学习如何编写清晰、高效的代码,掌握函数、类和模块的使用,以及理解面向对象编程的核心概念。此外,我们还将探讨异常处理、文件操作等实用技能。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供宝贵的知识和技巧,让你在编程的道路上更加从容自信。
|
2天前
|
API C语言 开发者
Python如何成为跨平台编程的超级巨星:系统调用深度探索
【9月更文挑战第5天】Python 作为一种高级编程语言,凭借简洁的语法、丰富的库支持和强大的社区,迅速在编程界崭露头角。尤其在跨平台编程方面表现卓越,这得益于其解释器设计和对系统调用的深度整合。CPython 采用 C 语言编写,可为不同操作系统编译,使 Python 程序无需修改即可运行。Python 标准库提供了操作系统功能的抽象,如文件操作、进程控制等,隐藏了底层差异,实现了代码的统一。
18 7
|
3天前
|
存储 人工智能 数据挖掘
探索Python编程:从基础到进阶的旅程
【9月更文挑战第3天】在编程的世界里,Python以其简洁明了的语法和强大的功能库赢得了无数开发者的青睐。本文将带你走进Python的世界,从基础的数据类型和控制结构开始,逐步深入到面向对象编程(OOP)和异常处理等高级主题。无论你是初学者还是有一定经验的开发者,这篇文章都能为你提供新的视角和思考。
13 8
|
1天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到精通
【9月更文挑战第5天】本文将带你进入Python编程的世界,无论你是编程新手还是有一定基础的开发者,都可以通过本文快速掌握Python编程的基础知识和技能。我们将从Python的基本语法开始,逐步深入到面向对象编程、文件操作、网络编程等高级主题,最后还将介绍一些实用的Python库和框架,帮助你在实际项目中应用Python编程。通过阅读本文,你将能够编写出高效、简洁的Python代码,解决实际问题。
|
2天前
|
算法 程序员 Linux
Python编程入门:构建你的第一个程序
【9月更文挑战第4天】编程是现代技术发展的基石,而Python作为一门简洁、易学且功能强大的编程语言,已成为众多初学者的首选。本文将引导你通过一个简单的Python程序,探索编程世界的奥秘,并了解如何利用Python实现基本的算法逻辑。无论你是完全的新手还是希望巩固基础的开发者,这篇文章都将为你提供一个清晰的学习路径。从安装Python环境开始,到编写第一个程序,我们将一步步揭开编程的神秘面纱。
|
5天前
|
存储 人工智能 开发者
探索Python编程:从基础到高级
【8月更文挑战第33天】本文将带你进入Python的世界,从基础语法开始,逐步深入到高级特性。我们将通过实际代码示例,展示Python的强大功能和灵活性。无论你是初学者还是有经验的开发者,这篇文章都将帮助你提升Python编程技能。
|
2天前
|
Linux iOS开发 MacOS
Python系统编程高手进阶:跨平台兼容性?小菜一碟💪
【9月更文挑战第6天】当我们探讨Python系统编程时,跨平台兼容性至关重要。Python凭借其解释型语言特性和多平台解释器,确保了代码能够在Windows、Linux、macOS等多种环境中顺畅运行。本文将介绍Python跨平台运行的基本原理,以及如何处理文件路径差异和系统调用等问题,助你轻松应对跨平台挑战。
8 1
下一篇
DDNS