使用:

pyarmor obfuscate main.py

参考:Python代码加密方案_python加密代码_wgr_1009的博客-CSDN博客

中文文档:1. 使用教程 — Pyarmor 8.3.6 文档


一 简介

PyArmor是用于保护Python代码的工具,它可以将Python脚本编译成加密的字节码,以增加代码的保护性。它的主要目的是防止未经授权的访问、复制或修改您的Python代码。使用PyArmor,您可以将您的Python代码转换为不易阅读的字节码形式,并且需要在运行时提供授权文件才能解密和运行。这有助于防止普通用户直接查看您的源代码,但请注意,这并不能阻止所有可能的攻击。

知乎解读:PyArmor原理调研 - 知乎

github: GitHub - dashingsoft/pyarmor

二 使用

进入要加密的目录,假设main.py是要加密的文件。则

pyarmor obfuscate main.py

PyArmor 会加密 main.py 和相同目录下面的所有 *.py 文件:

并创建输出子目录 dist

之后按加密前的调用方法使用即可。

2.1 安装

pip install pyarmor

# 验证是否安装成功, 7.0 以下版本为稳定版
pyarmor --version

三 PyArmor新版本

只有三个命令:gen、reg 和 cfg

3.1 混淆一个脚本

三个命令都可以:gen, g, generate

pyarmor gen foo.py
pyarmor g foo.py
pyarmor generate foo.py

该命令 生成一个混淆的脚本dist/foo.py,这是一个有效的Python脚本,通过Python解释器运行它:

python dist/foo.py

检查默认输出路径中所有生成的文件:

ls dist/
...    foo.py
...    pyarmor_runtime_000000

有一个额外的 Python 包pyarmor_runtime_000000,需要它来运行混淆的脚本

3.2 分发脚本

仅仅复制dist/foo.py到另一台机器是行不通的,而是复制 dist/.

请在相同Python版本、相同平台的机器上运行此混淆代码,否则无法运行。因为pyarmor_runtime_000000扩展模块,所以它是平台相关的并且绑定到Python版本。

3.3 混淆包

pyarmor gen -O dist2 src/mypkg

检查输出格式是否正确:

$ ls dist2/
...    mypkg
...    pyarmor_runtime_000000

$ ls dist2/mypkg/
...          __init__.py

中的所有混淆脚本dist2/mypkg,测试一下:

cd dist2/
python -C 'import mypkg'

如果有子包,使用-r启用递归模式:

pyarmor gen -O dist2 -r src/mypkg

四 直接加密文件夹

pyarmor gen .

五 生成跨平台版本

pyarmor gen --platform windows.x86_64
              --platform linux.x86_64 \
              --platform darwin.x86_64 \
              foo.py

pyarmor gen --platform linux.x86_64 .

六 需要进一步执行的命令

6.1 生成加密文件

pyarmor gen main.py

6.2 拷贝文件到上级目录执行覆盖

xcopy /Y /E dist\*.* .

6.3 测试执行代码

python main.py

七 docker命令使用

# 6.1 生成加密文件
RUN pyarmor gen main.py
# 查看文件夹文件
RUN ls -a

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐