混淆代码,我准备使用pyminifier。而加密处理,就比较麻烦。

Python有py、pyc、pyw、pyo、pyd等文件格式。

其中,pyc是二进制文件。但很容易被反编译。

pyw也不行,只是隐藏命令行界面而已,可以作为入口脚本。

pyo和pyc差不多,也容易被反编译。

最后剩下pyd格式。pyd格式是D语言(C/C++综合进化版本)生成的二进制文件,实际也会是dll文件。该文件目前位置没找到可以被反编译的消息,只能被反汇编。Sublime text编辑器也是使用该格式。

Python的py文件生成pyd文件步骤如下。

1、安装Cython

可以使用pip命令安装Cython。

pip install cython

2、处理vcvarsall.bat

若不处理,可能会出现“Unable to find vcvarsall.bat”错误。

安装Cython之后,还需要指定vcvarsall.bat的位置。

vcvarsall.bat是VC编译Python环境的文件之一。而vcvarsall.bat需要安装VC For Python2.7。我的Python是2.7,刚好可以使用这个。至于3.x版本不知道微软更新了没有。

安装成功之后,再修改设置。让Cython可以找到vcarsall.bat。此处有两种方案。

我采用方案1,亲测可用。方案2未测试,看似可用。

3、创建工作目录并生成pyd文件

这里有一个坑。程序所在的目录路径不能包含中文文字。所以我在E盘下创建一个test文件夹,用于放置要处理的python文件。

简单写了一个测试文件(命名为test.py):

#coding:utf-8

defhello():

print("Hello world")

input("")

在该目录下,再新建一个py文件(命名为setup.py):

fromdistutils.core importsetup

fromCython.Buildimportcythonize

setup(

name ='Hello world app',

ext_modules =cythonize("test.py"),

)

接着,再打开cmd,跳到该目录并执行如下命令:

python setup.py build_ext --inplace

最终生成pyd文件

其中,build是生成过程使用到的临时文件。test.c也是临时文件,可以打开看看传说中的D语言代码。

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

pyd文件可以像平常一样使用import引入模块的方式正常使用。

后来,我尝试使用py2exe打包pyd文件。还需要创建一个入口脚本(命名为index.py):

importtest

if__name__=="__main__":

test.hello()

为了方便打包,我重新创建一个目录。把index.py和test.pyd复制到该目录。

如何安装和使用py2exe这里我就不说了,自行百度一下。

分别用test.pyd和未处理的test.py打包效果如下:

1)用test.pyd

直接可以在index.exe对应的位置找到该文件。

2)用test.py

在该目录下没有test.py文件。该文件在library.zip中。

测试结果,用py2exe可以正常使用pyd文件。

ps:若用Cython出现如下错误,说明文件的编号和python脚本设置 #coding设置的编码不一致。保存一致编码即可解决该问题。

Decoding error, missing or incorrect coding= at top of source (cannot decode with encoding 'utf8': invalid start byte)

python的pyd文件_Python 加密之 生成pyd文件相关推荐

  1. 用python生成excel文件_python通过openpyxl生成Excel文件的方法

    本文实例讲述了python通过openpyxl生成Excel文件的方法.分享给大家供大家参考.具体如下: 使用前请先安装openpyxl: easy_install openpyxl 通过这个模块可以 ...

  2. python生成表格文件_python读取和生成excel文件

    1.用python读取csv文件: csv是逗号分隔符格式 一般我们用的execl生成的格式是xls和xlsx 直接重命名为csv的话会报错: Error: line contains NULL by ...

  3. GDCM:提取DICOM文件的加密内容到der文件的测试程序

    GDCM:提取DICOM文件的加密内容到der文件 GDCM:提取DICOM文件的加密内容到der文件 GDCM:提取DICOM文件的加密内容到der文件 #include "gdcmRea ...

  4. matlab打包多个m文件,MATLAB GUI多个m文件和fig如何生成exe文件

    MATLAB GUI多个m文件和fig如何生成exe文件 方法一: 已有gui.m文件和gui.fig文件 1 在matlab的command窗口中输入 mcc -B sgl GUI.m 2.将上步生 ...

  5. C++ dll库只生成dll文件,而未生成lib文件的问题

    C++ dll库只生成dll文件,而未生成lib文件的问题 逐项检查 逐项检查 新建项目时,选择应用程序类型为dll,并勾选"Export Symbols": 属性->链接器 ...

  6. 给计算机文件加密用什么软件,有没有好用的电脑文件夹加密软件?电脑文件加密软件推荐...

    原标题:有没有好用的电脑文件夹加密软件?电脑文件加密软件推荐 如何保护电脑上的文件安全呢?在众多的解决方案中,电脑文件加密软件很有性价比.很多小伙伴在问,有没有好用的电脑文件夹加密软件?答案是肯定的. ...

  7. python tempfile自动删除_Python tempfile模块生成临时文件和临时目录

    tempfile 模块专门用于创建临时文件和临时目录,它既可以在 UNIX 平台上运行良好,也可以在 Windows 平台上运行良好. tempfile 模块中常用的函数,如表 1 所示. 表 1 t ...

  8. python导入mat文件_python读取并写入mat文件的方法

    先给大家介绍下python读取并写入mat文件的方法 用matlab生成一个示例mat文件: clear;clc matrix1 = magic(5); matrix2 = magic(6); sav ...

  9. 用python的pandas打开csv文件_python读写数据读写csv文件(pandas用法)

    python中数据处理是比较方便的,经常用的就是读写文件,提取数据等,本博客主要介绍其中的一些用法.Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用 ...

最新文章

  1. python爬虫吧-python爬虫-爬取百度贴吧帖子加图片
  2. Webservice入门教程_编写天气预报的webservice
  3. cmake 入门学习
  4. bash特性以及shell脚本简介
  5. 由一次代码优化想到的Js 数据类型
  6. 韩顺平php视频笔记51-52 数组的概念 创建 遍历
  7. 厉害了!同事请假参加冬奥会顺手得了铜牌:系知名涂料公司员工
  8. jquery IE中同一个url第二次AJAX调用无法触发
  9. IntelliJ IDEA多屏后窗口不显示问题解决(用工具一键解决)
  10. 计算机论文的写作方法有哪些,计算机专业毕业论文的写作方法指导
  11. 移动开发之微信小程序——资料集合
  12. python开发微信点餐_微信点餐平台开发 (一)
  13. 【CPRI协议v7.0】CPRI 8b/10b编码Scrambling功能
  14. 北京邮电大学计算机学院2020复试,预览北京邮电大学计算机学院2020研究生复试流程...
  15. 引用限定符 reference qualifiers
  16. 学习周记 CSS合集
  17. 计算机硕士伊利诺伊大学排名,2020年伊利诺伊大学芝加哥分校排名TFE Times美国最佳计算机科学硕士专业排名第71...
  18. 虚幻4地形怎么增加层_虚幻周报20200602 | 我等的东西还没来……
  19. 为什么中国程序员不如外国程序员有创造性?
  20. 人生不需要什么大道理,一点常识就够了

热门文章

  1. 点球大战——python入门练习
  2. Zynq学习_____以太网三部曲(二)LWip_初始化过程
  3. 第六章 Android应用的资源
  4. 眼图观测实验报告_眼图观测实验报告
  5. 这位在做游戏的前电影导演,希望能变着法子讲故事,并给予玩家会心一击
  6. 数据库服务器物理架构,DM7 达梦数据库 物理结构 说明
  7. 别拦我,我要撞豆腐 ----- for循环中进行异常抛出,for循环还能继续循环吗?
  8. 【动作识别相关,第一篇】skeleton骨骼点数据类型介绍
  9. Houdini SHOP学习笔记3 制作简单山体模型并制作简单材质
  10. 【插画】开头场景绘制