python 腳本防破解-pyd編譯-python27+win7-64環境


操作環境-python2.7.15,win7-64

由於某些原因,不想或者不能用python3,所以腳本都是在python27下開發的

最近有了一個需求,需要把重要的部分加密,防止破解,然后找了各種方法,pyc這種最簡單的,但是也是最容易被破解

然后看到了pyd,這個是開發cython生成的二進制腳本,可以直接當庫導入,安全性來說,pyd是二進制文件,只能被反編譯

 

安裝:

首先安裝cython:pip install Cython

然后安裝:VCForPython27.msi

不要看網上那些cython的教程帖,搞什么wingw,GCC啥的,折騰了老半天,弄出來的pyd還不能加載

也不要去裝什么VS2015,安裝包都要好幾個G,裝了半天也沒動靜

安裝好后按照如下帖子進行配置:http://www.cnblogs.com/lazyboy/p/4017567.html

這樣就完成了cython環境的配置,接下去就是實際使用

 

 

 

下面的內容從 http://yshblog.com/blog/117 拷貝,這里感謝下這個博主

創建工作目錄並生成pyd文件

這里有一個坑。程序所在的目錄路徑不能包含中文文字。所以我在E盤下創建一個test文件夾,用於放置要處理的python文件。

簡單寫了一個測試文件(命名為test.py):

  1. #coding:utf-8
  2. def hello():
  3.     print("Hello world")
  4.     input("<press ENTER to quit>")

在該目錄下,再新建一個py文件(命名為setup.py):

  1. from distutils.core import setup
  2. from Cython.Build import cythonize
  3.  
  4. setup(
  5.   name = 'Hello world app',
  6.   ext_modules = cythonize("test.py"),
  7. )

接着,再打開cmd,跳到該目錄並執行如下命令:

  1. python setup.py build_ext --inplace

 

 

最終生成如下文件:

 

其中,build是生成過程使用到的臨時文件。test.c也是臨時文件,可以打開看看傳說中的D語言代碼。

test.pyd是我們所需的文件。

pyd文件可以像平常一樣使用。例如,我進入python,如下代碼:

 

 

 

當然還有打包exe:

使用pyinstaller也是沒問題的,實際測試通過

 

 生成exe

 

 

 

至此,pyd的加密完成了,當然,這只是借用了cython的編譯,python腳本沒有做任何c優化

下一步做一些cython的優化,比如固定變量的類型,這樣可以加速腳本,優化的好的話,擁有c的速度也不是不可能的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM