基於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。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: