Pyinstaller加密打包成反編譯可執(zhí)行文件
前言
了解 Python 的都知道 Pyinstaller 可以將 .py 文件打包成 windows 下可執(zhí)行的 .exe 文件, 但是在我們不想讓他人反編譯獲取源碼的時(shí)候就顯得無能為力, 此時(shí)我們可以了解 .pdy 文件。
PYD
pyc 是二進(jìn)制文件, 是由 Python 編譯器進(jìn)行編譯后生成的文件, 加載速度快。pyo 是優(yōu)化編譯后的二進(jìn)制文件, 可以通過 python -O file.py 生成。pyd 則是 Python 的動態(tài)鏈接庫, 由其他語言編寫。
那 .pyd 可不可以反編譯呢?
這是文檔上的一段描述, .pyd 由 C 或者 C++ 編譯組成, 至于它是否完全不可反編譯, 我相信是不可能的, 僅是加大了反編譯的難度。
打包
你需要安裝 Cython 以及 pyinstaller 兩個(gè)擴(kuò)展包作為依賴。 Docs
將主要代理編寫至 main_code.py 文件中, 建議提供入口函數(shù) main()
編寫 build.py 代理并鍵入以下內(nèi)容:
from distutils.core import setup from Cython.Build import cythonize setup( name='隨你寫什么', ext_modules=cythonize([ "main_code.py", # 你的主要代碼封裝文件名 ]) )
執(zhí)行 python3 build.py build_ext --inplace 生成 .pyd 文件
重命名生成的 .pyd 為 main_code.pyd
新建執(zhí)行腳本文件 run.py 并鍵入以下內(nèi)容:
from main_code import * if __name__ == '__main__': main()
此時(shí)你可以嘗試修改 main_code.py 成別的名字, 并運(yùn)行 run.py 文件, 你會發(fā)現(xiàn)運(yùn)行正常。
執(zhí)行 pyinstaller -D -i xxx.ico -w run.py
最后你會發(fā)現(xiàn)你的代碼中沒有 .pyc 的主要邏輯代碼。
說明
為了使用打包的時(shí)候使用 -D 而不使用 -F?
在生成唯一 .exe 文件后執(zhí)行速度過慢, 當(dāng)然我僅僅是推薦, 你可以使用任何自定義的方式編譯你想要的效果。
以上就是Pyinstaller加密打包成反編譯可執(zhí)行文件的詳細(xì)內(nèi)容,更多關(guān)于Pyinstaller加密打包反編譯的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
jupyter notebook參數(shù)化運(yùn)行python方式
這篇文章主要介紹了jupyter notebook參數(shù)化運(yùn)行python方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04圖文講解選擇排序算法的原理及在Python中的實(shí)現(xiàn)
這篇文章主要介紹了選擇排序的原理及在Python中的實(shí)現(xiàn),選擇排序的時(shí)間復(fù)雜度為О(n²),需要的朋友可以參考下2016-05-05Python 給下載文件顯示進(jìn)度條和下載時(shí)間的實(shí)現(xiàn)
這篇文章主要介紹了Python 給下載文件顯示進(jìn)度條和下載時(shí)間的代碼,本文通過實(shí)例代碼截圖相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04python讀取pdf格式文檔的實(shí)現(xiàn)代碼
這篇文章主要給大家介紹了關(guān)于python讀取pdf格式文檔的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Python學(xué)習(xí)之.iloc與.loc的區(qū)別、聯(lián)系和用法
loc和iloc都是pandas工具中定位某一行的函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python學(xué)習(xí)之.iloc與.loc的區(qū)別、聯(lián)系和用法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05Python 實(shí)現(xiàn)Numpy中找出array中最大值所對應(yīng)的行和列
今天小編就為大家分享一篇Python 實(shí)現(xiàn)Numpy中找出array中最大值所對應(yīng)的行和列,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11