zoukankan      html  css  js  c++  java
  • 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的速度也不是不可能的

  • 相关阅读:
    云原生学习笔记(4)——Pod和容器设计模式
    云原生学习笔记(3)——Kubernetes基本概念
    云原生学习笔记(2)——容器基本概念
    云原生学习笔记(1)——云原生
    JAVA基础系列:JDK目录结构
    Mac 接手步骤
    JAVA基础系列:运行环境
    软件测试系列——Web界面检查点和测试原则
    软件测试系列——白盒测试
    软件测试系列——性能指标
  • 原文地址:https://www.cnblogs.com/darkspr/p/9982597.html
Copyright © 2011-2022 走看看