防止Python源代码被阅读、修改或破解,加密Python脚本.py文件一直是工程师头疼的问题,我们升级了新的版本,可以对Python脚本script进些外壳加密保护,下面进行图例讲解。
在加密狗LDK10.0的安装包下边,sample/envelope/Python/script envelope的这个目录下,我们多了一个叫sample.sprjx是我们提供的一个这个基于这个script envelope的一个,Python脚本的这个配置文件,这个.py文件的加密,是通过这种脚本的方式,调用一个命令行的工具来去做加密的,所以都是需要通过这个脚本,来去做加密.
同时也提供了一个,供加密测试用的Python的sample,一个主函数加三个模块,那这个就是咱们写的一个小的一个示例,那我今天演示,也是拿这个示例来给大家去去演示.
首先给大家看一下这个,这个这个示例比较简单,就直接调用Python,然后这个main.py,里边就写了几个循环,循环去调用这三个脚本模块,然后里边会计算了一些值,然后打印了一个时间,这个AB模块的话呢,是去统计了一下一些数据啊,然后c模块的话呢,把这当前的这个系统时间打出来了,然后里边做了一个循环,这个这个循环了十秒循环了十次,大家可以看到这是一个运行结果啊,比较比较简单的一个一个代码.
那么外壳工具,我们是在这个安装目录下这个Windows tools,Vendortools/vendorSuite目录下有一个叫scriptenv.exe,有一个命令行的一个EXE文件,那这个scriptenv.exe它不能直接双击它来运行,必须要到命令行里边去运行。给大家看一下这个,这个运行我之前做了一个加密了,因为这个目录比较长,我就直接把它放在这儿了,那么大家可以看一下这个命令是这样去写的,直接去调用我这个目录下的这个scriptenv.exe,然后后边去加了这个script_envelope.sprjx,就是刚才咱们看到的那个sample,一个这个工程文件啊,大家可以看到这个工程文件里面大概是这么一个情况,要加密的文件在哪个目录下,大家可以看到我指定了一个,当前的这个Python_demo,我这个目录下会有这么一个文件,在这个temp目录下,会有一个叫,Python sample demo source就是没加密的一个目录,里边的话呢,就是刚才我这几个文件我拷拷贝过来的,放在这儿了,这是原始目录,
然后加密后的目录的话呢,我放到了这个protected APP,就放到了这个,加密后的这个目录里面,那这个是我刚才加密的,我可以把它先删掉,哎放到这儿了啊.
这里边我加密了,一共加密了四个文件,主程序这个模块a模块b模块c,那么这个模块a模块b,模块c的话呢,我分别用了三个不同的这个feature,大家可以看到,呃,模块a我用了feature100模块b200模块c300,这个大家可以,这个这个自自行定义啊,这个就是都可以分模块去,去加这个都没有问题,比如说这个main.py,我没写这个feature ID,那么它就用了底下的一个默认的,咱们可以看到叫global phid,就如果我有很多的这个这个.py,有很多的这个程序要加,那我有一些可以不写不字的这个单独定义,那就可以用这个默认的,默认的话我用的是999,那我就是加密了main.py啊,模块a模块b,模块c,那我在这儿,
调用的这个就是script_envelope.exe,然后后边空格,加这个工程文件的名字,这个script_envumlop.prgx,然后直接点回车啊,它提示就是加密成功,
一共加密了四个文件啊,放在一个目录里边,那我们会看到这个,呃protect的这个APP里边下面它生成了一些文件,不光是是一个啊,这里边的话呢,会生成了八个文件,就相当于是,你会看到原来这个main.py,还在这,但是它也不是被加密了,而是变成另外一个索引文件,它会告诉你,你原来这个文件我们已经把它替换成另外一个文件了,替换成了一个叫main_r.py的一个文件,
那么大家会看到底下会生成了一个新的,_r的一个文件.
这个_r是它原始的那个py文件文件,main_r.py但是已经加密了,main_r.py这里边完全是看不懂的一个东西,全全部是乱的,但是这个原来这个main.py,这个同名这个文件还在里边,东西可以看,实际上它只是一个索引,main_r.py同时被加密了,每一个文件目前都是这样,呃,比较可能会比较罗嗦,大家可能看起来比较罗嗦,但是目前这个版本,目前必须是这样,每一个文件是有两个,一个是一个索引文件,一个是一个加密的文件,
同时的话大家会看到有一个runtime,这个runtime的话就是,替代了原来这个数据文件的中间的这个这个桥啊,那当你去调用这个,这个真正的Python这个环境的时候,那么它会去调用我们这边这个runtime,由这个run time来去解析这个加过密的这个程序,然后呢再去正常运行,这个目录不能动,必须要放在这儿,不可以改名,不可以改这个目录,不可以改这个这个,比如说我在这又新建了一个什么什么东西,把这个目录扔到别地去了也不可以,目前的话必须要把它放在,这个程序的当前目录下,这个不能改.
这个加密已经成功了,那我们可以看一下我这个,这个运行这个加密后的这个这个结果,
那我可以先把这个锁拔掉啊,现在大家可以看到现在我这没有锁了,这个当前机器上没有锁,我运行这个程序,嗯,弹了这个我用demo号加密的,弹了这个的窗口,说明已经被加密成功了,那现在它提示没有锁,找不到锁
那我把这个锁插回来了,大家可以看一下这个锁现在有了,再运行一下啊,大家可以看到跟刚才那运行结果是一样,正常的这个访问啊,这个大家可以看到,这个session已经连上来了,这个正在使用,这个这个进程正在用.
这个配置文件里边的话呢,主要要写这个输入路径,输出路径,要加密的这个文件和你要用到的这个feature,这里边我们可以支持通配符,比如说我去加密所有的这个ty,比如我*.py,但我有某些我不想加密,比如这个model a,我不想加密,那么这个地方这个第二行,这个叫ignore的,这个里边我可以写 a.py,那这个文件不加密,我把这个目录里边所有的py都加密了,但是这个不加密,除了这个不加密,我可以去把这个,呃,文件这样来写就可以,通过这种配置文件的方式啊,来去设置这个加密的模型,这个模型,那么里边还有一些这个跟加密相关的设置,
比如说我用多长时间去查询一次,我可以设为零,我后期后台不查询,但是建议的话呢,会设一个这种周期性检测,让它这个程序代码在运行的时候的话呢,一直去跟这个所有一个关联,那么这个弹这个窗,是弹这个WINDOWS,呃这个刚才弹的那对话框,还是谈到这个系统的,这个日志里边,那下边的话呢,就是这个错误的提示,我这个错误提示的文字可以去去编辑。
这些主要就是如何加密Python脚本.py文件的一个大概的使用过程演示。
对于圣天诺加密狗硬件锁的授权,或者软锁对计算机授权生成软锁过程,请咨询我们金雅特加密狗工程师。