Python 黑帽編程 1.3 Python 運行時與包管理工具

0.1 本系列教程說明

本系列教程,採用的大綱母本爲《Understanding Network Hacks Attack and Defense with Python》一書,爲了解決不少同窗對英文書的恐懼,解決看書以後實戰過程當中遇到的問題而做。因爲原書不少地方過於簡略,筆者根據實際測試狀況和最新的技術發展對內容作了大量的變動,固然最重要的是我的偏好。教程同時提供圖文和視頻教程兩種方式,供不一樣喜愛的同窗選擇。javascript

0.2 前言

前兩節裏,咱們完成了操做系統和工具的安裝。事實上能夠進入到正式開發階段了,Kali Linux系統自帶了Python運行時及easy_install 和pip等基礎組件,包括咱們以後的課程裏要用到的pypcap等網絡包也都一併存在了。php

這是Kali帶來的好處,可是對初學Python的同窗來講,我想有必要把Python運行時和模塊安裝的基礎知識講解清楚。html

1.1 安裝PYTHON

首先到Python官方網站www.python.org/下載python的安裝…java

轉到下載頁面。python

下載頁面會自動識別咱們使用的操做系統,上面的下載按鈕下載下來的就是識別以後的對應系統的軟件包,在下面有其餘系統的連接。這裏須要注意的是python的兩個主要 版本分支,一個是2.7.一個是3..*版本。咱們的系列課程推薦使用2.7,全部代碼在3.0以上版本的環境中運行結果未知。你也能夠選擇使用最新的Python版原本編寫程序,可是也必定要單獨安裝2.7版本,保證學習進度。linux

下載並保存文件。下面咱們說說在不一樣系統下如何安裝python,固然安裝Python的方法也不少,恕我不能一一道來。git

1.1.0 Kali Linux下安裝Python

Kali Linux系統自帶,無需安裝,略。github

1.1.1 windows下安裝Python

瀏覽器打開www.python.org/downloads/w…redis

找到咱們要下載的2.7.12下載安裝包。shell

下載以後,點擊安裝。安裝過程當中,能夠選擇講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

# wgethttps://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@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 Linux中Python setuptools默認已經被安裝,其餘Linux系統中使用apt-get或者yum均可以安裝。

apt-get 安裝命令爲:

sudo apt-get install python-setuptools複製代碼

yum 安裝命令爲:

yum install setuptool複製代碼

考慮到windows,這裏再介紹一個通用的方法,適合全部操做系統。

首先下載ez_setup.py (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.x和3.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」,獲取更多內容。

訂閱號雙11(11月10號到12號)將有活動,贈送價值萬元的 圖書,視頻,圖文教程,歡迎關注參與。

相關文章
相關標籤/搜索