python的pyd文件_Python 加密之 生成pyd文件
混淆代码,我准备使用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文件相关推荐
- 用python生成excel文件_python通过openpyxl生成Excel文件的方法
本文实例讲述了python通过openpyxl生成Excel文件的方法.分享给大家供大家参考.具体如下: 使用前请先安装openpyxl: easy_install openpyxl 通过这个模块可以 ...
- python生成表格文件_python读取和生成excel文件
1.用python读取csv文件: csv是逗号分隔符格式 一般我们用的execl生成的格式是xls和xlsx 直接重命名为csv的话会报错: Error: line contains NULL by ...
- GDCM:提取DICOM文件的加密内容到der文件的测试程序
GDCM:提取DICOM文件的加密内容到der文件 GDCM:提取DICOM文件的加密内容到der文件 GDCM:提取DICOM文件的加密内容到der文件 #include "gdcmRea ...
- 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.将上步生 ...
- C++ dll库只生成dll文件,而未生成lib文件的问题
C++ dll库只生成dll文件,而未生成lib文件的问题 逐项检查 逐项检查 新建项目时,选择应用程序类型为dll,并勾选"Export Symbols": 属性->链接器 ...
- 给计算机文件加密用什么软件,有没有好用的电脑文件夹加密软件?电脑文件加密软件推荐...
原标题:有没有好用的电脑文件夹加密软件?电脑文件加密软件推荐 如何保护电脑上的文件安全呢?在众多的解决方案中,电脑文件加密软件很有性价比.很多小伙伴在问,有没有好用的电脑文件夹加密软件?答案是肯定的. ...
- python tempfile自动删除_Python tempfile模块生成临时文件和临时目录
tempfile 模块专门用于创建临时文件和临时目录,它既可以在 UNIX 平台上运行良好,也可以在 Windows 平台上运行良好. tempfile 模块中常用的函数,如表 1 所示. 表 1 t ...
- python导入mat文件_python读取并写入mat文件的方法
先给大家介绍下python读取并写入mat文件的方法 用matlab生成一个示例mat文件: clear;clc matrix1 = magic(5); matrix2 = magic(6); sav ...
- 用python的pandas打开csv文件_python读写数据读写csv文件(pandas用法)
python中数据处理是比较方便的,经常用的就是读写文件,提取数据等,本博客主要介绍其中的一些用法.Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用 ...
最新文章
- python爬虫吧-python爬虫-爬取百度贴吧帖子加图片
- Webservice入门教程_编写天气预报的webservice
- cmake 入门学习
- bash特性以及shell脚本简介
- 由一次代码优化想到的Js 数据类型
- 韩顺平php视频笔记51-52 数组的概念 创建 遍历
- 厉害了!同事请假参加冬奥会顺手得了铜牌:系知名涂料公司员工
- jquery IE中同一个url第二次AJAX调用无法触发
- IntelliJ IDEA多屏后窗口不显示问题解决(用工具一键解决)
- 计算机论文的写作方法有哪些,计算机专业毕业论文的写作方法指导
- 移动开发之微信小程序——资料集合
- python开发微信点餐_微信点餐平台开发 (一)
- 【CPRI协议v7.0】CPRI 8b/10b编码Scrambling功能
- 北京邮电大学计算机学院2020复试,预览北京邮电大学计算机学院2020研究生复试流程...
- 引用限定符 reference qualifiers
- 学习周记 CSS合集
- 计算机硕士伊利诺伊大学排名,2020年伊利诺伊大学芝加哥分校排名TFE Times美国最佳计算机科学硕士专业排名第71...
- 虚幻4地形怎么增加层_虚幻周报20200602 | 我等的东西还没来……
- 为什么中国程序员不如外国程序员有创造性?
- 人生不需要什么大道理,一点常识就够了
热门文章
- 点球大战——python入门练习
- Zynq学习_____以太网三部曲(二)LWip_初始化过程
- 第六章 Android应用的资源
- 眼图观测实验报告_眼图观测实验报告
- 这位在做游戏的前电影导演,希望能变着法子讲故事,并给予玩家会心一击
- 数据库服务器物理架构,DM7 达梦数据库 物理结构 说明
- 别拦我,我要撞豆腐 ----- for循环中进行异常抛出,for循环还能继续循环吗?
- 【动作识别相关,第一篇】skeleton骨骼点数据类型介绍
- Houdini SHOP学习笔记3 制作简单山体模型并制作简单材质
- 【插画】开头场景绘制