跳到主要内容

精锐5-Python程序加密流程

加密流程概述

深盾对 .pyc 文件的加密方式是使用 Virbox Protector 加壳工具对 python 安装目录下的 python.exe进行加壳,再使用 DS Protector 对 .pyc 进行加密。整体流程:

  1. 将python.exe拖入加壳工具
  2. 选择开发锁及填写api密码
  3. 设置许可选项
  4. 设置加密选项
  5. 设置函数选择
  6. 设置消息选项
  7. 执行保护项目
  8. 打开DSProtector加密pyc
  9. 替换加密后文件

3.1 打开加壳工具

启动 Virbox 开发者工具盒 -> 点击 "加壳工具" ->点击 "启动加壳工具".

img

将Python.exe拖入到加壳工具中。

image-20220727160817910

3.2 选择开发锁及填写API密码

插入控制锁或者登录开发者账号(二选一即可)

如果使用控制锁,则需要验证PIN

img

或者登录开发者账号(需要联网)

img

填写API密码

img

从VirboxLM获取API密码

登录 Virbox LM 平台 在【概览】页面,点击【查看开发者信息】,将API密码复制到加壳工具对应位置。

image-20230403152612363

3.3 许可选项配置

许可类型

勾选硬件锁-本地许可

许可设置

  • 许可ID:此处填写的许可ID要与发授权码时创建产品时的ID一致。
  • 锁芯片号:不设置
  • 后台检测间隔(秒):表示每隔多少秒对运行程序进行检测是否存在对应许可,如果没有那么就会提示错误,或者退出。如果后台检测时间设为0s,那么后台就不会进行检测许可的操作
  • 检测锁插拔消息:软锁不勾选此设置。表示程序运行过程中拔掉用户锁时,直接进行许可查找,若找不到对应许可,则弹框提示信息。

许可运行时库

  • 可调试:仅可在开发过程勾选,对外发布时不能勾选。如果勾选此选项,使用可调试版(开发版)许可运行时库,禁用许可反调试功能,仅可在开发过程勾选,对外发布时请勿勾选
  • 外置:默认不勾选,会将Runtime库和程序打包一起,若勾选会根据程序的系统及架构在同目录下生成Runtim库:slm_runtime.dll,运行加密后程序时,需要将slm_runtime.dll与程序放在同一个目录下。注意:勾选外置会降低安全性,请根据实际情况选择
  • 兼容Electron:若您的程序为 Electron 开发,请勾选,python程序请勿勾选

image-20220727160933233

3.4 函数选项

函数选项无需设置

3.5 加密选项

导入表保护、压缩、资源保护不选,**DS按钮打开,设置密码**。

image-20220727161129060

3.6 消息选项

当程序被加密后,程序就与我们 之前创建的许可进行关联,当用户在使用我们的加密的程序时如果触发了一些限制时,会以该界面上的消息进行显示。

img

3.7 执行保护项目

按照上面步骤配置好加壳工具后,点击 "【保护选中项目】" 即可完成程序的加壳操作。

image-20220727161148213

注意

python.exe.ssp 是配置文件,在后面对 .pyc 加密时会用到;

protected文件夹里的 python.exe 是加壳后的 python.exe 文件,替换到环境中的python.exe 即可。

如果是linux程序,会在protected文件夹下生成python,就是加密后的python,将其替换到linux环境

python.ssp是配置文件,下一步加密py文件使用。

3.8 打开dsProtector加密pyc

在加密选项界面,点击打开DSProtector即可打开DSProtector工具

img

img

1.设置ssp文件和输出目录

ssp文件选择上一步生成的python.exe.ssp

输出目录:设置输出目录后,会将加密后的文件输出到该目录下。如果未设置输出目录,会将源文件保存成 .bak文件。

2.添加文件/目录开始保护

设置完输出目录,可点击【添加文件】或者【添加目录】,将py或者pyc文件添加进来,点击【开始保护】提示成功即可打开输出目录查看加密后的pyc文件。

img

3.9 替换文件

将加密后的python.ssp.exe,重命名为python.exe,替换环境里的python.exe

部署加密后的py和pyc文件。

建议

建议将核心代码编译为 cython模式后再做加密更安全,cython使用方式: https://cython.org/

至此,软件加密操作已经完成,接下来可参考:快速上手4-使用加密后程序