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的速度也不是不可能的

 

posted @ 2018-11-19 13:14  darkspr  阅读(6383)  评论(0编辑  收藏  举报