对matlab以及python代码进行加密,分别进行exe打包及pyd汇编操作
说明
- 以下操作均经过实测
- 部分术语及描述性语句可能会存在错误,但不影响使用
- 所选择的两种加密方法破解难度都非常非常高,但是并非完全不可破解
- 环境为win, py3, MatlabR2021b
Python代码的加密:汇编为pyd
需求/环境/说明
需要被加密的代码段引用了很多库,如果打包整个程序加上各种依赖库体积非常大,所以最好进行原地加密
为什么选择汇编成pyd
Python代码的打包方式一般分为三种:
- 编译成 .pyc 文件
这是最简单的方式,在python文件运行过程中会产生pyc文件用以加速程序运行速度,直接将pyc文件替换掉原来的py文件即可。但是这种方法不安全,pyc二进制文件很容易被反编译,并且有现成的工具可以一键破解。
- 汇编成 .pyd 文件
将python这种解释性语言转为c语言,之后再转为汇编语言。破解难度非常非常高。但是理论上可以通过反汇编来一点点分析程序并逆向运行逻辑之类,但是非常难,可以参考这两个帖子[1,2]
- 使用pyinstaller打包成 exe 可运行
将python代码打包成程序,当然就将代码封装进去了,但是生成的exe文件相比以上两种方法体积大很多。前两种方法可以直接使用生成的 pyc/pyd 文件来替代 .py 文件,所以体积非常小。
加密步骤
- 安装Cpython
直接conda或者pip安装即可
- 配置C++运行环境
由于我之前配置过,不做概述,之前这篇文章可能有介绍: