基於pyinstaller超級加密操作(加殼和轉c)
1.首先安裝上必須的包
pip install Cython pip install pyinstaller
2.最好是安裝vs 版本的話
我安裝的是最新的2019,選擇安裝界面的時候選如下圖這個和python的
python應該是可選的,但是我怕麻煩就直接選上瞭
3.然後接下來就是寫setup.py文件瞭
from distutils.core import setup from Cython.Build import cythonize setup( ext_modules = cythonize(["main8_2.py"]), # add.py 為需要打包的文件名,不能包含中文 ) #python setup.py build_ext --inplace #在把.cp36-win_amd64刪掉
這個是固定的
裡面是自己要加密轉c的的py文件,我是把所有功能都封裝在這個裡面瞭,到時候引入包直接調用他
命令行運行
python setup.py build_ext --inplace
結束後會在當前路徑下生成一個main8_2.cp36-win_amd64的文件,他的後綴名就不用管它瞭,直接把你要加密的那個包額外的部分刪除掉就行瞭,我刪除的部分就是.cp36-win_amd64,這裡地的確的確是有一個點號的
然後把相應的py文件換個路徑,好像可以不換,優先級不一樣,為瞭避免麻煩,我也懶得查資料,所以我就換瞭他的路徑
4.接下來就是主程序進行調用瞭
這個py現在變成瞭一個pyd文件,還有一個c文件,可以把它理解成一個包,跟py的包一樣去調用就行瞭
5.還有很重要的一點
要把所有調用的包都導入一次
我用的pycharm雖然想報錯,但是運行是沒有錯誤的
6.再用key進行加密
雖然這種法幾乎沒多大用處,但是由總比沒有要好
pyinstaller -i fa.ico xxx.py -F --key hsakdhiia8 --clean
最終成成功打包exe,在當前路徑下的dist可以找到可執行文件
補充:python程序的加密和打包
在程序發佈時,有時會有程序加密和打包的需求,SO:
用CYTHON編譯加密:
build.py
#!/usr/bin/python #encoding: gb2312 filename="client_missions.py" print"--------------------------------------" print" python build.py build_ext --inplace" print"--------------------------------------" from distutils.coreimportsetup from distutils.extensionimportExtension from Cython.Distutilsimportbuild_ext importsys efile=filename.split('.')[0] setup( cmdclass = {'build_ext': build_ext}, ext_modules =[Extension("%s"%efile , ["%s"%filename])] )
開始編譯加密:
python build.py build_ext --inplace
打包成一個文件
pyinstaller --onefile MoonServer.py
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- pyx文件 生成pyd 文件用於 cython調用的實現
- Python .py生成.pyd文件並打包.exe 的註意事項說明
- 能讓Python提速超40倍的神器Cython詳解
- 如何將Python編譯成C語言
- Windows系統下cython_bbox庫的正確安裝步驟