欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中exe文件解包方法詳解

 更新時間:2023年06月26日 08:53:30   作者:波波的私人筆記  
這篇文章主要給大家介紹了關(guān)于python中exe文件解包方法的相關(guān)資料,文中通過圖文以及實例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

技術(shù)背景

目前針對Python中主流的加密方案有以下幾種:

序號工具方法描述優(yōu)缺點
1Nuitka.py 文件先被轉(zhuǎn)成了 .c 文件,然后被編譯成 .o 文件,最后合并成 .bin 可執(zhí)行文件,從 bin 到 C 是不可逆的,從 C 到 Python 也是不可逆的,因此代碼是安全的工作量小,安全性高,使用加密之后的Python便捷;編譯時間長,過程復(fù)雜
2發(fā)行.pyc文件通過compileall模塊將.py文件轉(zhuǎn)為.pyc文件,該文件是二進(jìn)制,無法直接看源代碼,而python解釋器可以直接執(zhí)行.pyc文件臺兼容性好,.py 能在哪里運行,.pyc 就能在哪里運行;解釋器兼容性差,.pyc 只能在特定版本的解釋器上運行。有現(xiàn)成的反編譯工具,破解成本低
3代碼混淆(oxyry,pyobfuscate)讓人看不懂代碼,移除注釋和文檔,改變縮進(jìn),在tokens中間加入一定空格,重命名函數(shù)、類、變量,在空白行插入無效代碼提高了一點源碼破解門檻。兼容性好,只要源碼邏輯能做到兼容,混淆代碼亦能;只能對單個文件混淆,無法做到多個互相有聯(lián)系的源碼文件的聯(lián)動混淆
4py2exe將源碼編譯為 .pyc 文件,加之必要的依賴文件,一起打包成一個可執(zhí)行文件。最終 py2exe 打包出的是二進(jìn)制文件。直接打包成 exe,方便分發(fā)和執(zhí)行。破解門檻比 .pyc 更高一些;兼容性差,只能運行在 Windows 系統(tǒng)上。生成的可執(zhí)行文件內(nèi)的布局是明確、公開的,可以找到源碼對應(yīng)的 .pyc 文件,進(jìn)而反編譯出源碼。
5Cython將 .py/.pyx 編譯為 .c 文件,再將 .c 文件編譯為 .so(Unix) 或 .pyd(Windows)生成的二進(jìn)制 .so 或 .pyd 文件難以破解。同時帶來了性能提升;兼容性稍差,對于不同版本的操作系統(tǒng),可能需要重新編譯。雖然支持大多數(shù) Python 代碼,但如果一旦發(fā)現(xiàn)部分代碼不支持,完善成本較高。
6Pyinstaller打包為exe文件,將Python文件轉(zhuǎn)換為exe文件,以及dist文件夾和build文件夾,如果要移植到其他電腦上運行,也是只需要將這兩個文件夾復(fù)制到對方電腦上,即使對方?jīng)]有python環(huán)境,也可以運行程序,具有較好的兼容性;pyinstxtractor.py可以進(jìn)行反編譯

對于上述這些加密,在工作中,常見將一些Python寫的腳本、程序使用Pyinstaller打包為exe文件的居多,因為即使對方?jīng)]有python環(huán)境,也可以運行程序,具有較好的兼容性。

想要了解這些腳本、程序的邏輯、對其功能進(jìn)行分析,最好的方法是其進(jìn)行反編譯解包。

解包思路

1.對exe文件進(jìn)行解包

方法1:使用pyinstxtractor.py

執(zhí)行python pyinstxtractor.py <待解包文件名> ,如果成功,即可獲得<待解包文件名>_extracted 文件夾。

方法2:使用archive_viewer.py

執(zhí)行python archive_viewer.py <待解包文件名> ,會打印EXE文件中包含的所有文件信息

使用x <文件名>命令將想要提取出的文件提取出來,q 命令退出。

區(qū)別:

方法1 可以一次性提取出所有文件,方法2只能逐個提取文件。但是在個人使用時,同時執(zhí)行時會提示python版本問題,想要正常解包必須使用正確的python版本。

方法2 的成功率相對較高??梢韵葒L試用方法1,失敗后用方法2。

2.構(gòu)建pyc文件

從步驟1中獲得的文件是pyc文件,我們還需要進(jìn)一步反編譯獲得py文件。在將Python文件打包成exe文件的過程中,會抹去pyc文件前面的部分信息,所以我們在反編譯之前需要檢查并添加上這部分信息。抹去的信息內(nèi)容可以從struct文件中獲?。?/p>

 可能會出現(xiàn)兩種情況:

 情況一struct 文件中, E3 前 有內(nèi)容

 這種情況將struct 文件中,E3 之前的 所有內(nèi)容,復(fù)制到目標(biāo)文件 E3 之前。

 情況二struct 文件中, E3 前 無內(nèi)容

 遇到這種情況后,在前面步驟1中,找到PYZ-00.pyz_extracted文件夾中任意一個pyc文件,記住前面的4個字節(jié),在目標(biāo)文件第一行輸入前4個字節(jié),后續(xù)補(bǔ)0。

 將目標(biāo)文件后綴名改為“.pyc”

3.對pyc文件進(jìn)行反編譯

安裝uncompyle6后,去dos界面,輸入uncompyle6 路徑+文件名.pyc > 文件名.py

沒有報錯就表示成功了。

其他問題

q1:提示PYZ文件加密

在解包exe過程中會提示會出現(xiàn)PYZ中的文件無法正常提取(archive_viewer.py),或者提取出來后顯示encrypted(pyinstxtractor.py)的問題

 針對這個問題,可以使用上述方法,重新反編譯PYZ文件的加密密鑰pyimod00_crypto_key.pyc文件,就可以獲得秘鑰。

Pyinstxtractor不支持加密的pyz檔案。目前,可以使用下面的代碼片段來解密pyz提取目錄中的加密pyc。請注意,下面的腳本是為在Python 2.7上運行而編寫的,可以在PyInstaller之前的版本上運行

該腳本可以從任何Python版本反編譯加密的pyc。但是,您需要從下面的列表中適當(dāng)?shù)馗膒yc頭。具體的事項可以去訪問pyinstxtractor說明文檔:Frequently Asked Questions · extremecoders-re/pyinstxtractor Wiki · GitHub

總結(jié)

到此這篇關(guān)于python中exe文件解包方法的文章就介紹到這了,更多相關(guān)python exe文件解包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中的協(xié)程深入理解

    python中的協(xié)程深入理解

    這篇文章主要給大家介紹了關(guān)于python中協(xié)程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Python3多進(jìn)程 multiprocessing 模塊實例詳解

    Python3多進(jìn)程 multiprocessing 模塊實例詳解

    這篇文章主要介紹了Python3多進(jìn)程 multiprocessing 模塊,結(jié)合實例形式詳細(xì)分析了Python3多進(jìn)程 multiprocessing 模塊的概念、原理、相關(guān)方法使用技巧與注意事項,需要的朋友可以參考下
    2018-06-06
  • python如何實現(xiàn)質(zhì)數(shù)求和

    python如何實現(xiàn)質(zhì)數(shù)求和

    這篇文章主要介紹了python如何實現(xiàn)質(zhì)數(shù)求和,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python繪圖中的?四個繪圖技巧

    python繪圖中的?四個繪圖技巧

    在可視化數(shù)據(jù)時,通常需要在單個圖形中繪制多個圖形。?例如,如果您想從不同的角度可視化相同的變量如:數(shù)字變量的并排直方圖和箱線圖,則多個圖形很有用。?在這篇文章中,我分享了繪制多個圖形的?4?個簡單但實用的技巧,具有一定的參考價值,需要的小伙伴可以參考一下
    2021-12-12
  • filter使用python3代碼進(jìn)行迭代元素的實例詳解

    filter使用python3代碼進(jìn)行迭代元素的實例詳解

    在本篇文章里小編給大家整理了關(guān)于filter使用python3代碼進(jìn)行迭代元素的實例詳解內(nèi)容,有興趣的朋友們可以參考下。
    2020-12-12
  • python中的腳本性能分析

    python中的腳本性能分析

    這篇文章主要介紹了python中的腳本性能分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 如何利用python批量提取txt文本中所需文本并寫入excel

    如何利用python批量提取txt文本中所需文本并寫入excel

    最近幫人寫了幾個小程序,所以記錄下,下面這篇文章主要給大家介紹了關(guān)于如何利用python批量提取txt文本中所需文本并寫入excel的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • windows上徹底刪除jupyter notebook的實現(xiàn)

    windows上徹底刪除jupyter notebook的實現(xiàn)

    這篇文章主要介紹了windows上徹底刪除jupyter notebook的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python實現(xiàn)websocket的客戶端壓力測試

    python實現(xiàn)websocket的客戶端壓力測試

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)websocket的客戶端壓力測試,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • virtualenv 指定 python 解釋器的版本方法

    virtualenv 指定 python 解釋器的版本方法

    今天小編就為大家分享一篇virtualenv 指定 python 解釋器的版本方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10

最新評論