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

2022-02-02 玄魂工作室

收錄於話題 #黑客編程 35個

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

我使用的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 (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.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 小結

  本節課程依然簡單,但是是你必須要掌握的。之後的開發課程中,我們會不厭其煩的使用包管理工具來安裝我們需要的模塊。

方便大家在PC端查看本文,原文連結為本文在知乎上的連結。

 

1.4  本節對應視頻教程獲取方法

1.點擊下面的打賞,>=5元,本訂閱號截圖,回復即可。

2.免費獲取方法,朋友圈轉發此文,截圖回復即可。

 

 

由於教程仍在創作過程中,在整套教程完結前,感興趣的同學請關注我的微信訂閱號(xuanhun521,下方二維碼),我會第一時間在訂閱號推送圖文教程和視頻教程。問題討論請加qq群:Hacking (1群):303242737   Hacking (2群):147098303。

關注之後,回復請回復「Python」,獲取更多內容。

 

相關焦點

  • Python黑帽編程1.2 基於VS Code構建Python開發環境
    0.1  本系列教程說明本系列教程,採用的大綱母本為《Understanding Network Hacks
  • Python黑帽編程2.9 面向對象編程
    科學家們在這個方向上努力良久,在程式語言領域「面向對象」的思想和方法被廣泛接受。事物是不斷變化的,人類在變化中尋找相對靜止的時空來思考世界,來描述世界,文字、繪畫都是語言,都需要在靜止中呈現。生命尊重並表現自我,認同個體,於是世間有了物的概念。在靜止中,如果還只是思考數據,那麼就是混沌,觀察個體才有意義,才有血肉。世間萬物,物就是對象。
  • Python黑帽編程2.6 模塊
    我們可以觀察到sys.path的第一個字符串是空的——這個空的字符串表示當前目錄也是sys.path的一部分,這與PYTHONPATH環境變量是相同的。這意味著你可以直接輸入位於當前目錄的模塊。否則,你得把你的模塊放在sys.path所列的目錄之一。
  • Python編程:開發工具(IDE)大匯總(附官方下載)
    最近有多位讀者留言,諮詢更便捷、高效的python編程開發工具(IDE),本文就給大家介紹四款業內常用的python軟體開發工具,並簡單介紹下每款軟體的特點,便於讀者按需選擇合適的學習軟體!二、VS Code IDE簡介—四星推薦VS Code全寫為Visual Studio Code,是微軟開發的現代Web和雲應用的跨平臺原始碼編輯器,在安裝相應的擴展包後可具備強大的編程開發能力!VS Code運行界面:
  • 程式設計師Python編程必備5大工具,你用過幾個?
    Python是編程入門不錯的選擇,現在也有不少的程式設計師業餘時間會研究這門程式語言。學習Python有時候沒有第一時間找到好工具,會吃不少的苦頭。畢竟好的工具能將工作效率多倍速提升。1、AnacondaAnaconda堪稱是數據分析的利器,附帶了一大批常用數據科學包,簡直是數據分析的標配。它包含了一個包管理工具和一個 Python管理環境。
  • Python軟體包、運行環境管理神器 - Conda!
    我們在使用的時候,可能會遇到不同的Python版本問題或者是Python工作環境切換問題,因此我們需要一個環境管理工具,而我要推薦的是Conda!CondaConda是一個開源的軟體包管理系統和環境管理系統,用於安裝多個版本的軟體包及其依賴關係,並在它們之間輕鬆切換,目前Conda為最流行的Python環境管理工具!
  • Python 第三方庫大全看這一篇就夠了(1000+工具包)
    /vinta/awesome-python資源列表環境管理管理 Python 版本和環境的工具p:非常簡單的交互式 python 版本管理工具。virtualenv:創建獨立 Python 環境的工具。virtualenvwrapper:virtualenv 的一組擴展。buildout:在隔離環境初始化後使用聲明性配置管理。包管理管理包和依賴的工具。pip-tools:保證 Python 包依賴關係更新的一組工具。PyPI:Python 正式的第三方包軟體存儲庫。
  • python包管理之pip,其實很簡單!
    前言pip 是一個Python包管理工具,主要是用於安裝 PyPI 上的軟體包,可以替代 easy_install 工具。官方地址:https://pypi.python.org/pypi/pip下載解壓後,進入目錄直接運行python安裝就可以了python setup.py install(PS:Python3編譯安裝就默認帶了pip了)
  • 運行你的第一句 Python 代碼
    簡單來說,Anaconda 就是一個python傻瓜式捆綁包,自帶了很多常用的功能庫,直接導入就可使用,如果單獨安裝python,需要一條條安裝功能庫,比較麻煩。從名字上看,python是蟒蛇,Anaconda 是大蟒蛇,大就是好用!
  • Python工具整合,為程式設計師和新手準備的 8 大 Python 工具
    安裝 Python 時,默認情況下也會安裝 IDLE。這是比較好的Python工具之一。這使得在 Python 中入門變得非常簡單。在不同的應用領域中,已經大展出為數眾多的基於Scipy的工具包,他們統稱為Scikits。而在所有的分支版本中,scikit-learn是最有名的,是開源的,任何人都可以免費地使用這個庫或者進行二次開發。這是小編準備的python基礎學習資料,關注,轉發,私信小編「01」即可免費領取!
  • Python 1 day | 初識Phthon
    Windows環境可以在Python官方網站下載到Python的Windows安裝程序(exe文件),需要注意的是如果在Windows 7環境下安裝Python 3.x,需要先安裝Service Pack 1補丁包(可以通過一些工具軟體自動安裝系統補丁的功能來安裝),安裝過程建議勾選「Add Python 3.x to PATH」(將Python 3.x添加到PATH環境變量
  • 《Python語言程序設計基礎》:走進編程世界
    我的python學習歷程1.下載想要學習python,首先需要到python的官方網站下載python的安裝包。python官網的連結地址:https://www.python.org 打開官方網站,光標移到Downloads,選擇windows根據不同的作業系統,選擇不同版本的安裝包。
  • 如何編寫和運行Python程序
    第一種方式是進入Pyhton的安裝目錄,直接運行python.exe程序;第二種方式是進入Windows命令行窗口,在命令行窗口啟動python.exe。在Windows命令行窗口啟動Python交互式解釋器,首先需要將Python安裝目錄的路徑,添加到Path系統環境變量。否則,只能進入Python安裝目錄啟動交互式解釋器。
  • Python編程:Python3+PyCharm+PyQt5開發環境詳細配置,建議收藏
    Python + PyQt + PyCharm 架構編程簡介先簡單說下為什麼要使用這樣的程序開發架構,原因如下:Python:一種面向對象的高級動態程式語言,相比於其它如C/C++語言,具有上手快、代碼少、開發效率高的特點PyQt:Qt在Python下的綁定庫,而Qt是跨平臺的C++圖形用戶界面應用程式開發框架,是當前主流的GUI開發工具之一PyCharm:
  • python初學者必看的學習路線 Python是近幾年比較火的程式語言
    python語言基礎 (1)Python3入門,數據類型,字符串 (2)判斷/循環語句,函數,命名空間,作用域 (3)類與對象,繼承,多態 (4)tkinter界面編程 (5)文件與異常,數據處理簡介
  • 初識Python
    x,需要先安裝Service Pack 1補丁包(可以通過一些工具軟體自動安裝系統補丁的功能來安裝),安裝過程建議勾選「Add Python 3.x to PATH」(將Python 3.x添加到PATH環境變量)並選擇自定義安裝,在設置「Optional Features」界面最好將「pip」、「tcl/tk」、「Python test suite」等項全部勾選上。
  • 零基礎Python入門教程 - 第三節 搭建Python開發環境
    1.安裝Python運行環境首先,我們要去Python官網(https://www.python.org/downloads/windows/)下載Python安裝包,注意選擇Windows版本。下載好了以後直接雙擊運行安裝即可。
  • 【程序原始碼】《零基礎學編程-python》源碼包1
    01 —【為什麼要學習編程】為什麼要學習編程?1、培養邏輯思維能力2、培養發現問題和解決問題的能力3、促進其他學科的學習4、找份好工作  02  —【python簡介】程式語言有很多種:java / C / JS /GO 等。python的代碼簡潔、短小很容易掌握。這是他流行的一個主要原因之一。
  • Python零基礎編程——起步並搭建環境
    少看點抖音、快手,每天多花1個小時學習。適合本文,將從零介紹講解編程入門,已有基礎的同學當溫故而知新,未知編程為何物的同學開啟技術之旅。一 編程技術簡介1-程序是什麼?程序就是你使用的電子產品內部的數據+邏輯算法。你手機的微信、頭條、抖音、快手、QQ等,你能看到的一切,都是程序。都是人造的科學。你也可以寫這些程序,只要你掌握了編程技術。
  • Python環境搭建指南
    Python能做太多有趣使用的事了,不僅可以做現在火熱的人工智慧、數據分析,還可以做爬蟲、Web開發、自動化運維的事情。